AI Agent如何通过MCP连接到华为云RDS Supabase应用平台
认证、存储、实时推送、数据库操作,AI Agent想管后端,传统方式要开发接口、写SQL、用数据库客户端;今天一句话就能直驱数据库,前提是先接上MCP。
小张是AI创业公司的全栈工程师。上周老板甩来一句"让AI Agent直接管数据库,别再让人写接口了"。可Agent要查表、改数据、管用户,每新增一个操作,小张就得手写一个API、配一次权限、测一轮联调。接口越写越多,Agent能做的却还是那么点,小张盯着一堆CRUD接口发呆:这哪是AI驱动开发,分明是给人当接口搬运工。
直到小张给Agent接上华为云RDS Supabase的MCP。一句"查下当前业务库表",Agent直接列出全部表结构;再说"建个用户",auth.users里就多了记录。开发这件事,回到了写提示词。
装上MCP工具集,Claude、CodeArts Agent等AI工具即可用自然语言直管你的整个后端项目。
Part 01 — 为什么AI Agent需要MCP
RDS Supabase MCP接入了Supabase后端全套能力(数据库、认证、存储、实时、安全、监控),Agent均可调用。
安全上,两把Key权限不同:默认用Anon Key时,操作受RLS策略约束(前提:业务表已启用RLS,否则无行级隔离);换用Service Role Key则绕过RLS、拥有管理员级权限(需谨慎)。
Part 02 — MCP能做什么:工具能力清单
💡 按场景对号入座:库表结构→查"数据与逻辑层"表;权限、语义搜索、存储或实时→查"安全·认证·存储·向量·实时"表;运行状态或项目配置→查"监控诊断·项目配置"表。
数据与逻辑层(Schema · 对象 · SQL · 迁移)
|
类别 |
工具 |
功能简介 |
注意事项 |
|
Schema元数据 |
list_tables |
列出所有可访问的表(按schema分组)。 |
|
|
Schema元数据 |
list_table_columns |
列出表的列及元数据(类型/默认值/约束)。 |
|
|
Schema元数据 |
list_constraints |
列出所有约束(PK/FK/UNIQUE/CHECK/EXCLUDE)。 |
可按schema/表/类型过滤。 |
|
Schema元数据 |
list_foreign_keys |
列出所有外键关系。 |
可按schema/表过滤。 |
|
Schema元数据 |
list_indexes |
列出所有索引及定义和大小。 |
可按schema/表过滤。 |
|
Schema元数据 |
list_migrations |
列出已应用的数据库迁移记录。 |
|
|
Schema元数据 |
list_extensions |
列出已安装的PostgreSQL扩展。 |
|
|
Schema元数据 |
list_available_extensions |
列出所有可安装的扩展(含已安装)。 |
|
|
对象逻辑 |
list_triggers |
列出所有触发器。 |
可按schema/表过滤。 |
|
对象逻辑 |
get_trigger_definition |
获取触发器完整定义(含函数源码)。 |
|
|
对象逻辑 |
list_database_functions |
列出用户自定义数据库函数。 |
可识别SECURITY DEFINER函数。 |
|
对象逻辑 |
get_function_definition |
获取数据库函数完整源码定义。 |
重载函数需指定argument_types。 |
|
SQL迁移 |
execute_sql |
执行任意SQL查询。 |
需配置数据库直连地址(db-url),经直连执行。 |
|
SQL迁移 |
apply_migration |
应用SQL迁移脚本并记录到迁移表。 |
需配置数据库直连地址(db-url);在事务中执行,确保原子性。 |
|
SQL迁移 |
explain_query |
获取SQL执行计划。 |
需配置数据库直连地址(db-url);ANALYZE模式会实际执行写操作。 |
安全 · 认证 · 存储 · 向量 · 实时
|
类别 |
工具 |
功能简介 |
注意事项 |
|
安全RLS |
list_rls_policies |
列出所有RLS策略。 |
可按schema/表过滤。 |
|
安全RLS |
get_rls_status |
检查表是否启用RLS及策略数量。 |
可按schema/表过滤。 |
|
安全RLS |
get_advisors |
获取安全/性能建议(基于Splinter规则)。 |
可识别缺失RLS等问题。 |
|
认证用户 |
list_auth_users |
列出auth.users中的用户。 |
|
|
认证用户 |
get_auth_user |
按ID获取指定用户详情。 |
|
|
认证用户 |
create_auth_user |
直接在auth.users创建用户。 |
需Service Role Key;需明文密码,不安全,谨慎使用。 |
|
认证用户 |
update_auth_user |
更新auth.users用户字段。 |
密码处理不安全,需Service Role Key。 |
|
认证用户 |
delete_auth_user |
按ID删除auth.users用户。 |
需Service Role Key和直连DB。 |
|
对象存储 |
list_storage_buckets |
列出所有存储桶。 |
|
|
对象存储 |
list_storage_objects |
列出指定存储桶中的对象。 |
可按前缀过滤。 |
|
对象存储 |
get_storage_config |
获取存储桶配置(大小限制/MIME/公开性)。 |
|
|
对象存储 |
update_storage_config |
更新存储桶配置。 |
|
|
向量索引 |
list_vector_indexes |
列出pgvector索引(ivfflat/hnsw)。 |
pgvector未安装时返回空数组。 |
|
向量索引 |
get_vector_index_stats |
获取pgvector索引使用统计和大小。 |
|
|
实时订阅 |
list_realtime_publications |
列出PostgreSQL发布(用于Realtime)。 |
监控诊断 · 项目配置
|
类别 |
工具 |
功能简介 |
注意事项 |
|
监控诊断 |
get_database_connections |
获取活跃数据库连接信息(pg_stat_activity)。 |
需配置数据库直连地址(db-url)。 |
|
监控诊断 |
get_database_stats |
获取数据库活动统计和后台写入器统计。 |
需配置数据库直连地址(db-url)。 |
|
监控诊断 |
get_index_stats |
获取指定索引的详细使用统计。 |
需配置数据库直连地址(db-url)。 |
|
监控诊断 |
get_logs |
获取Supabase服务日志。 |
默认最近24小时,优先查分析栈。 |
|
项目配置 |
get_project_url |
获取当前Supabase项目URL。 |
|
|
项目配置 |
verify_jwt_secret |
检查JWT密钥是否已配置。 |
|
|
项目配置 |
generate_typescript_types |
从数据库Schema生成TypeScript类型。 |
使用supabase gen types CLI,须预装Supabase CLI。 |
|
项目配置 |
rebuild_hooks |
重启pg_net worker。 |
需要安装pg_net扩展插件。 |
38个工具、10大类能力,覆盖后端主要操作,全程自然语言。
Part 03 — 前期准备:打通Supabase公网访问
MCP要连上Supabase,得先把"路"修通:API Key、应用EIP、实例EIP,三件事缺一不可。
前提条件
已创建Supabase应用,且应用及其托管实例运行状态正常
已安装AI编码工具或Agent智能体(如华为云CodeArts Agent),且大模型的Token额度充足
网络可正常安装Bun与Git
第1步 获取API Key
进入Supabase应用详情页,点击"API Key"视图,获取Anon Key和Service Role Key,这两个Key用于Agent鉴权。
第2步 通过DNAT网关开启Supabase应用公网访问
绑定DNAT网关,进入应用详情页获取绑定的弹性公网EIP和访问端口。
第3步 为托管数据库实例绑定公网EIP
在应用详情页单击托管实例名称进入实例详情页,左侧"连接管理"中为数据库实例绑定公网EIP,并记下公网IP与端口(配置MCP时要用)。
⚠️ 注意区分两个公网地址:第2步的"应用EIP"填入
⚠️ 安全提示:绑定后实例暴露在公网,请同步配置安全组,仅放行运行MCP的机器的IP与端口,勿开放0.0.0.0/0。
Part 04 — 对接实战:在Claude中接入Supabase MCP
以公网环境下在Claude中接入Supabase MCP为例,三步配置 + 一步演示,你的Claude就能用自然语言操作Supabase了。
配置前先自检连通性:在运行Claude的机器上,curl能访问到"应用EIP:应用访问端口"(即
第1步 安装Bun工具
Bun是一体化JavaScript、TypeScript与JSX工具包,用来部署Supabase MCP Server。
# Linux & MacOS
curl -fsSL https://bun.sh/install | bash
# Windows
powershell -c "irm bun.sh/install.ps1 | iex"
💡 安装后若命令行找不到bun命令,多半是PATH未刷新:Linux/MacOS新开一个终端窗口,或执行 source ~/.bashrc;Windows重新打开终端即可。
第2步 下载Supabase MCP Server源码
下载Supabase MCP Server开源项目源码到本地,再用Bun安装依赖。
git clone https://github.com/HenkDz/selfhosted-supabase-mcp.git
cd selfhosted-supabase-mcp
git checkout # 生产环境务必锁定稳定版本,勿直接拉取最新代码
bun install
该MCP Server来自第三方开源项目(selfhosted-supabase-mcp),非华为云官方维护。
第3步 配置并验证
在Claude中接入MCP,需编辑各自的MCP配置文件:Claude Code(CLI版)编辑 ~/.claude.json;Claude Desktop(桌面版,macOS/Windows)编辑对应平台的 claude_desktop_config.json。在mcpServers中添加Supabase MCP Server相关配置,模板如下。
{
"mcpServers": {
"supabase": {
"command": "bun",
"args": [
"run",
"/selfhosted-supabase-mcp/src/index.js",
"--url",
"",
"--anon-key",
"",
"--service-key",
"",
"--db-url",
""
]
}
}
}
⚠️ 配置文件含API Key、数据库密码等敏感信息,为明文存储,请妥善保管。避免提交到公共代码仓库(建议加入.gitignore),并按需限制文件访问权限。生产环境建议改用环境变量或密管服务(如华为云DEW)注入,避免硬编码。
参数填写说明如下。把尖括号占位符整体替换为真实值,如
|
参数 |
填写说明 |
|
|
必填。指上面git clone时selfhosted-supabase-mcp的父目录,如 D:/workspace/rds-supabase/mcp/。 |
|
|
必填。填写Supabase应用的公网访问地址。按应用详情页网关地址信息所示的协议填写:已开启SSL为 https://应用EIP:应用访问端口(推荐);未开启SSL为 http://应用EIP:应用访问端口。示例:https://198.51.100.10:8443。确保本地能访问该地址。 |
|
|
必填。填写Supabase应用的Anon Key。示例:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.***(已脱敏签名)。如Anon Key已重置,请填写最新生效的值。 |
|
|
选填。填写Supabase应用的Service Role Key。示例:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.***(已脱敏签名)。如Service Role Key已重置,请填写最新生效的值。该Key会绕过RLS、拥有管理员级权限,请妥善保管;不填则建/删用户等管理类工具不可用。 |
|
|
选填。填写数据库实例直连地址,格式:postgresql://root:<密码>@<实例EIP>:<实例端口>/supabase_db。示例:postgresql://root:xxx@203.0.113.10:5432/supabase_db。密码含特殊字符须URLEncode(如'@'→'%40'),否则功能不可用。公网环境建议为实例开启SSL并在连接串追加 ?sslmode=require。其中 root 为托管数据库实例的默认管理员账号;不填此项则 execute_sql、apply_migration 等直连数据库的工具不可用,Agent只能通过Data API访问,部分能力受限。 |
配置完成后,在命令行输入如下命令,验证Supabase MCP是否正常连接。
claude mcp get supabase
第4步 效果演示
接入就绪后,你可以在Claude对话框中用自然语言操作Supabase应用及其托管的数据库。
🔹 查询Supabase项目基础信息(未配置数据库直连)
🗣️ 开发者:查询Supabase项目基础信息
🤖 AI Agent:调用Supabase MCP工具,扫描项目基础信息
🔹 查询PostgreSQL实例当前库表信息(已配置数据库直连)
🗣️ 开发者:查询Supabase当前业务库表概览
🤖 AI Agent:调用工具,列出当前业务库表
配置就绪,即可查到项目信息与库表结构。
Part 05 — 对接实战:在CodeArts Agent中接入
如果你的主力IDE是华为云CodeArts Agent,公网准备与Part 03一致,直接看配置。
第1步 配置mcp_settings.json
打开本地CodeArts Agent IDE,选择"设置 > MCP工具 > 配置MCP",进入MCP配置文件(mcp_settings.json)编辑页面,在mcpServers中添加Supabase MCP Server相关配置。
配置模板与Claude一致,详见Part 04第3步。
第2步 查看工具集
配置完成后,返回MCP工具页面,查看已安装的Supabase MCP Server及其工具集信息。
第3步 效果演示
效果与Claude一致,两句自然语言查到项目信息和库表结构。
Part 06 — 从对话到落地
故事回到小张。自从给Agent接上MCP,老板新提的"加个用户、看看RLS、查下连接数",小张不再碰接口,一句话丢给Agent就办了。从前当接口搬运工,如今写提示词就是写后端。
对话演示:一句话完成全链路操作
以下是一次真实对话还原,开发者提问、Agent调用工具操作直达数据库,且是跨工具、跨域的组合操作:
⚠️ 本演示为完整能力展示:create_auth_user 需 Service Role Key、get_database_connections 需数据库直连地址(均见Part 04第3步参数说明),最小配置(仅Anon Key)下无法复现。其中 create_auth_user 涉及明文密码处理,工具表已标注"不安全,谨慎使用",生产环境请评估更安全的替代方案。
🗣️ 开发者:帮我创建一个测试用户,然后检查业务表users的RLS策略是否生效,顺便看看最近的数据库连接情况
🤖 AI Agent:依次调用 create_auth_user 创建用户、get_rls_status 检查RLS策略、get_database_connections 查看连接状态
✅ 返回结果:用户已创建(id: a3f8...),业务表users已启用RLS并含2条策略,当前活跃连接12个。
原文地址: https://www.cveoy.top/t/topic/qHQv 著作权归作者所有。请勿转载和采集!