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"填入<your-supabase-url>,本步的"实例EIP"填入<your-db-url>,别填反。

⚠️ 安全提示:绑定后实例暴露在公网,请同步配置安全组,仅放行运行MCP的机器的IP与端口,勿开放0.0.0.0/0。

Part 04 — 对接实战:在Claude中接入Supabase MCP#

以公网环境下在Claude中接入Supabase MCP为例,三步配置 + 一步演示,你的Claude就能用自然语言操作Supabase了。

配置前先自检连通性:在运行Claude的机器上,curl能访问到"应用EIP:应用访问端口"(即<your-supabase-url>);若配了<your-db-url>,还需telnet通"实例EIP:实例端口"。连不通先查安全组和网络ACL。

第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 <stable-tag> # 生产环境务必锁定稳定版本,勿直接拉取最新代码
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",
"<path-to-mcp-code-dist>/selfhosted-supabase-mcp/src/index.js",
"--url",
"<your-supabase-url>",
"--anon-key",
"<your-anon-key>",
"--service-key",
"<your-service-role-key>",
"--db-url",
"<your-db-url>"
]
}
}
}

⚠️ 配置文件含API Key、数据库密码等敏感信息,为明文存储,请妥善保管。避免提交到公共代码仓库(建议加入.gitignore),并按需限制文件访问权限。生产环境建议改用环境变量或密管服务(如华为云DEW)注入,避免硬编码。

参数填写说明如下。把尖括号占位符整体替换为真实值,如 <your-anon-key> 整体换成你的真实Key。--service-key 与 --db-url 为选填,不用请连同参数名整行从 args 删除(勿留空值,否则MCP Server启动可能报错):

参数

填写说明

<path-to-mcp-code-dist>

必填。指上面git clone时selfhosted-supabase-mcp的父目录,如 D:/workspace/rds-supabase/mcp/。

<your-supabase-url>

必填。填写Supabase应用的公网访问地址。按应用详情页网关地址信息所示的协议填写:已开启SSL为 https://应用EIP:应用访问端口(推荐);未开启SSL为 http://应用EIP:应用访问端口。示例:https://198.51.100.10:8443。确保本地能访问该地址。

<your-anon-key>

必填。填写Supabase应用的Anon Key。示例:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.***(已脱敏签名)。如Anon Key已重置,请填写最新生效的值。

<your-service-role-key>

选填。填写Supabase应用的Service Role Key。示例:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.***(已脱敏签名)。如Service Role Key已重置,请填写最新生效的值。该Key会绕过RLS、拥有管理员级权限,请妥善保管;不填则建/删用户等管理类工具不可用。

<your-db-url>

选填。填写数据库实例直连地址,格式: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个。

华为云RDS Supabase把工具铺得更全,38个覆盖库表、SQL、执行计划、日志,能直连数据库做深度操作,适合要完整管理后端的团队;现已支持MCP接入,公测期间即可体验。

公测 Region:华北-北京四、华东-上海一、华南-广州-友好用户环境、华南-广州、西南-贵阳一、中国-香港。其他局点暂处邀测阶段,可提交申请。

原文来自 华为 技术团队,版权归原作者。

正文采集于 ,内容更新以原文为准。