Supabase MCP对接使用
操作场景
RDS Supabase MCP充当了AI编码工具以及智能体与Supabase后端生态(PostgreSQL数据库、SQL执行、Auth认证、RLS、Storage、Realtime、监控统计等)之间的标准化桥梁。通过MCP,AI工具及代理(Agents)可以直接理解、管理和操作整个后端项目,彻底改变了传统的全栈开发流程。
您可以在编程IDE(如CodeArts Agent)、AI工具(如Claude)中添加RDS Supabase MCP(Model Context Protocol)工具集,即可通过自然语言方式直接与华为云RDS Supabase应用交互对话,实现对Supabase应用本身及其托管数据库的自动化操作与运维,从而大幅降低使用门槛,简化操作流程,并显著提升开发效率。
MCP使用优势
- AI Agent通过MCP直接调用Data API,无需额外开发接口层。
- Agent操作受RLS策略约束,确保数据安全隔离。
- 结合pgvector,Agent可实现语义检索驱动的智能决策。
前提条件
- 已创建Supabase应用,且应用及其托管实例运行状态正常。
- Supabase已绑定DNAT网关,关联了EIP和访问端口。详细操作,请参见绑定和解绑DNAT网关地址。
针对公网访问场景,必须给Supabase应用绑定EIP,否则网络不通。
- 托管的数据库实例已绑定了EIP,支持公网环境下访问。
- 已安装AI 编码工具或相关Agent智能体,能正常调用AI大模型能力,模型算力资源充足。
例如:已安装华为云码道(CodeArts)代码智能体,且大模型的Token额度充足。
MCP工具清单
以下为RDS已支持的Supabase MCP的核心工具列表。
| 工具 | 功能简介 | 注意事项 |
|---|---|---|
| list_tables | 列出所有可访问的表(按schema分组)。 | - |
| list_table_columns | 列出表的列及元数据(类型/默认值/约束)。 | - |
| list_constraints | 列出所有约束(PK/FK/UNIQUE/CHECK/EXCLUDE)。 | 可按schema/表/类型过滤。 |
| list_foreign_keys | 列出所有外键关系。 | 可按schema/表过滤。 |
| list_indexes | 列出所有索引及定义和大小。 | 可按schema/表过滤。 |
| list_migrations | 列出已应用的数据库迁移记录。 | - |
| list_extensions | 列出已安装的PostgreSQL扩展。 | - |
| list_available_extensions | 列出所有可安装的扩展(含已安装)。 | - |
| 工具 | 功能简介 | 注意事项 |
|---|---|---|
| list_triggers | 列出所有触发器。 | 可按schema/表过滤。 |
| get_trigger_definition | 获取触发器完整定义(含函数源码)。 | - |
| list_database_functions | 列出用户自定义数据库函数。 | 可识别SECURITY DEFINER函数。 |
| get_function_definition | 获取数据库函数完整源码定义。 | 重载函数需指定argument_types。 |
| 工具 | 功能简介 | 注意事项 |
|---|---|---|
| list_rls_policies | 列出所有RLS策略。 | 可按schema/表过滤。 |
| get_rls_status | 检查表是否启用RLS及策略数量。 | 可按schema/表过滤。 |
| get_advisors | 获取安全/性能建议(基于Splinter规则)。 | 可识别缺失RLS等问题。 |
| 工具 | 功能简介 | 注意事项 |
|---|---|---|
| list_auth_users | 列出auth.users中的用户。 | - |
| get_auth_user | 按ID获取指定用户详情。 | - |
| create_auth_user | 直接在auth.users创建用户。 | - |
| update_auth_user | 更新auth.users用户字段。 | 密码处理不安全,需service_role角色。 |
| delete_auth_user | 按ID删除auth.users用户。 | 需Service Role Key和直连DB。 |
| 工具 | 功能简介 | 注意事项 |
|---|---|---|
| list_storage_buckets | 列出所有存储桶。 | - |
| list_storage_objects | 列出指定存储桶中的对象。 | 可按前缀过滤。 |
| get_storage_config | 获取存储桶配置(大小限制/MIME/公开性)。 | - |
| update_storage_config | 更新存储桶配置。 | - |
| 工具 | 功能简介 | 注意事项 |
|---|---|---|
| execute_sql | 执行任意SQL查询。 | 需service_role密钥或直连DB。 |
| apply_migration | 应用SQL迁移脚本并记录到迁移表。 | 在事务中执行,确保原子性。 |
| explain_query | 获取SQL执行计划。 | ANALYZE模式会实际执行写操作。 |
| 工具 | 功能简介 | 注意事项 |
|---|---|---|
| list_vector_indexes | 列出pgvector索引(ivfflat/hnsw)。 | pgvector未安装时返回空数组。 |
| get_vector_index_stats | 获取pgvector索引使用统计和大小。 | - |
| 工具 | 功能简介 | 注意事项 |
|---|---|---|
| list_realtime_publications | 列出PostgreSQL发布(用于Realtime)。 | - |
| 工具 | 功能简介 | 注意事项 |
|---|---|---|
| get_database_connections | 获取活跃数据库连接信息(pg_stat_activity)。 | - |
| get_database_stats | 获取数据库活动统计和后台写入器统计。 | - |
| get_index_stats | 获取指定索引的详细使用统计。 | - |
| get_logs | 获取Supabase服务日志。 | 默认最近24小时,优先查分析栈。 |
| 工具 | 功能简介 | 注意事项 |
|---|---|---|
| get_project_url | 获取当前Supabase项目URL。 | - |
| verify_jwt_secret | 检查JWT密钥是否已配置。 | - |
| generate_typescript_types | 从数据库Schema生成TypeScript类型。 | 使用supabase gen types CLI。 |
| rebuild_hooks | 重启pg_net worker。 | 需要安装pg_net扩展插件。 |
对接并使用Supabase MCP
以下步骤介绍公网环境下如何通过Claude对接并使用Supabase MCP。
- 参考查看API Key,获取API Key,包含Anon Key和Service Role Key。 图1 Supabase应用API Key列表
- 开启Supabase应用公网访问,为其绑定一个连通外部网络的弹性公网IP。
- 方式一:参考绑定和解绑DNAT网关地址,绑定DNAT网关,并在应用详情页获取绑定的EIP和访问端口。 图2 Supabase应用网络信息页面
- 方式二:参考绑定和解绑弹性公网IP,直接绑定EIP,并在应用详情页获取绑定的EIP地址。 图3 Supabase应用网络信息页面(弹性公网IP信息)
- 方式一:参考绑定和解绑DNAT网关地址,绑定DNAT网关,并在应用详情页获取绑定的EIP和访问端口。
- 在Supabase应用详情页,单击托管实例名称,进入实例详情页。
- 在左侧导航栏,选择“连接管理”,参考绑定和解绑弹性公网IP,为托管的数据库实例绑定EIP。 图4 托管数据库实例连接信息
如上图所示,获取实例的公网地址和数据库端口。
- 本地安装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"
- Linux & MacOS
- 下载Supabase MCP Server开源项目源码到本地目录,并通过Bun来安装相关依赖。 执行前请再次检查,确保已安装Git工具。详细安装操作,请参见Git官网。
git clone https://github.com/HenkDz/selfhosted-supabase-mcp.git cd selfhosted-supabase-mcp bun install
- 打开Claude的配置文件(.claude.json),在mcpServers中添加Supabase MCP Server相关配置,模板如下所示。
{ "mcpServers": { "selfhosted-supabase": { "command": "bun", "args": [ "run", "<path-to-mcp-code-dist>/selfhosted-supabase-mcp/src/index.ts", "--url", "<your-supabase-url>", "--anon-key", "<your-anon-key>", "--service-key", "<your-service-role-key>", "--db-url", "<your-db-url>" ] } } }配置参数填写说明如表11,请结合实际的应用和托管实例相关配置信息,进行正确填写,替换掉<xxx>的整个内容(包含<和>符号)。
表11 Supabase MCP对接配置参数填写规则 参数项
是否必填
取值说明
取值示例
注意事项
<path-to-mcp-code-dist>
是
填写本地下载的Supabase源码的根目录。
D:/workspace/rds-supabase/mcp/
确保其目录下已下载selfhosted-supabase-mcp git项目,文件夹存在。
<your-supabase-url>
是
填写Supabase应用的公网访问地址。格式为:
- 已开启SSL:http(s)://Supabase应用的EIP:Supabase应用的访问端口
- 未开启SSL:http://Supabase应用的EIP:Supabase应用的访问端口
http://10.0.0.0:8443
确保本地能访问该IP地址。
<your-anon-key>
是
填写Supabase应用的Anon Key。
**********
如果Anon Key进行了重置操作,请填写最新生效的API Key的取值。
<your-service-role-key>
否
填写Supabase应用的Service Role Key。
**********
如果Service Role Key进行了重置操作,请填写最新生效的API Key的取值。
<your-db-url>
否
填写Supabase应用托管的PostgreSQL数据库实例的直连地址。
格式为:
postgresql://root:<登录密码>@<实例EIP>:<实例访问端口>/<数据库名称>
- <登录密码>:填写托管的数据库实例root账号的密码。
- <实例EIP>:填写托管的数据实例的EIP。
- <实例访问端口>:填写托管的数据实例的访问端口,一般默认为5432。
- <数据库名称>:填写实例上Database的名称,当前仅支持填写supabase_db。
postgresql://root:xxx@10.0.0.0:5432/supabase_db
请注意,如果数据库实例的登录密码包含特殊字符,必须使用URLEncode编码,如'@'编码为'%40',否则功能不可用。
- 命令行窗口输入如下命令,查看Supabase MCP是否已正常连接。
claude mcp get supabase
图5 RDS Supabase MCP的连接状态检查
- RDS Supabase MCP工具配置完成后,您可以在Claude的对话框中,通过自然语言去访问、操作及管理Supabase应用及其托管的数据库服务。
以下步骤介绍公网环境下如何通过CodeArts Agent对接并使用Supabase MCP。
- 参考查看API Key,获取API Key,包含Anon Key和Service Role Key。 图8 Supabase应用API Key列表
- 参考绑定和解绑DNAT网关地址,绑定DNAT网关,并获取绑定的EIP和访问端口。 图9 Supabase应用详情页面
- 在Supabase应用详情页,单击托管实例名称,进入实例详情页。
- 在左侧导航栏,选择“连接管理”,参考绑定和解绑弹性公网IP,为托管的数据库实例绑定EIP。 图10 托管数据库实例连接信息
如上图所示,获取实例的公网访问IP和端口号。
- 本地安装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"
- Linux & MacOS
- 下载Supabase MCP Server开源项目源码到本地目录,并通过Bun来安装相关依赖。 执行前请再次检查,确保已安装Git工具。详细安装操作,请参见Git官网。
git clone https://github.com/HenkDz/selfhosted-supabase-mcp.git cd selfhosted-supabase-mcp bun install
- 打开本地CodeArts Agent IDE,选择“设置 > MCP工具 > 配置MCP”,进入MCP配置文件(mcp_settings.json)编辑页面。 在mcpServers中添加Supabase MCP Server相关配置,模板如下所示。
{ "mcpServers": { "selfhosted-supabase": { "command": "bun", "args": [ "run", "<path-to-mcp-code-dist>/selfhosted-supabase-mcp/src/index.ts", "--url", "<your-supabase-url>", "--anon-key", "<your-anon-key>", "--service-key", "<your-service-role-key>", "--db-url", "<your-db-url>" ] } } }配置参数填写说明如表12,请结合实际的应用和托管实例相关配置信息,进行正确填写,替换掉<xxx>的整个内容(包含<和>符号)。
表12 Supabase MCP对接配置参数填写规则 参数项
是否必填
取值说明
取值示例
注意事项
<path-to-mcp-code-dist>
是
填写本地下载的Supabase源码的根目录。
D:/workspace/rds-supabase/mcp/
确保其目录下已下载selfhosted-supabase-mcp git项目,文件夹存在。
<your-supabase-url>
是
填写Supabase应用的公网访问地址。格式为:
- 已开启SSL:http(s)://Supabase应用的EIP:Supabase应用的访问端口
- 未开启SSL:http://Supabase应用的EIP:Supabase应用的访问端口
http://10.0.0.0:8443
确保本地能访问该IP地址。
<your-anon-key>
是
填写Supabase应用的Anon Key。
**********
如果Anon Key进行了重置操作,请填写最新生效的API Key的取值。
<your-service-role-key>
否
填写Supabase应用的Service Role Key。
**********
如果Service Role Key进行了重置操作,请填写最新生效的API Key的取值。
<your-db-url>
否
填写Supabase应用托管的PostgreSQL数据库实例的直连地址。
格式为:
postgresql://root:<登录密码>@<实例EIP>:<实例访问端口>/<数据库名称>
- <登录密码>:填写托管的数据库实例root账号的密码。
- <实例EIP>:填写托管的数据实例的EIP。
- <实例访问端口>:填写托管的数据实例的访问端口,一般默认为5432。
- <数据库名称>:填写实例上Database的名称,当前仅支持填写supabase_db。
postgresql://root:xxx@10.83.34.105:5432/supabase_db
请注意,如果数据库实例的登录密码包含特殊字符,必须使用URLEncode编码,如'@'编码为'%40',否则功能不可用。
- 配置完成后,返回MCP工具页面。检查Supabase MCP连接状态和工具集信息。 图11 CodeArts Agent 已安装MCP Server列表
- 您可以在CodeArts Agent的对话框中,通过自然语言去访问、操作及管理Supabase应用及其托管的数据库服务。



