# 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网关地址](https://support.huaweicloud.com/usermanual-rds-pg/rds_supabase_15.html)。
  针对公网访问场景，必须给Supabase应用绑定EIP，否则网络不通。
  
- 托管的数据库实例已绑定了EIP，支持公网环境下访问。
- 已安装AI 编码工具或相关Agent智能体，能正常调用AI大模型能力，模型算力资源充足。 例如：已安装[华为云码道（CodeArts）代码智能体](https://codearts.huaweicloud.com/)，且大模型的Token额度充足。
  

- 已安装[Bun工具](https://bun.com/)。
- 已安装[Git工具](https://git-scm.com/)。
 
#### MCP工具清单
以下为RDS已支持的Supabase MCP的核心工具列表。
表1数据库Schema与元数据 
| 工具                         | 功能简介                                | 注意事项               |
|:---|:---|:---|
| 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 | 列出所有可安装的扩展（含已安装）。                  | -                 |
   
表2数据库对象与逻辑 
| 工具                        | 功能简介              | 注意事项                    |
|:---|:---|:---|
| list_triggers             | 列出所有触发器。            | 可按schema/表过滤。            |
| get_trigger_definition | 获取触发器完整定义（含函数源码）。 | -                      |
| list_database_functions | 列出用户自定义数据库函数。    | 可识别SECURITY DEFINER函数。 |
| get_function_definition  | 获取数据库函数完整源码定义。   | 重载函数需指定argument_types。   |
   
表3安全与RLS 
| 工具                 | 功能简介                       | 注意事项            |
|:---|:---|:---|
| list_rls_policies | 列出所有RLS策略。                | 可按schema/表过滤。 |
| get_rls_status    | 检查表是否启用RLS及策略数量。            | 可按schema/表过滤。  |
| get_advisors       | 获取安全/性能建议（基于Splinter规则）。 | 可识别缺失RLS等问题。  |
   
表4认证与用户管理 
| 工具               | 功能简介               | 注意事项                    |
|:---|:---|:---|
| 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。  |
   
表5对象存储 
| 工具                   | 功能简介                   | 注意事项     |
|:---|:---|:---|
| list_storage_buckets  | 列出所有存储桶。                | -      |
| list_storage_objects   | 列出指定存储桶中的对象。             | 可按前缀过滤。 |
| get_storage_config    | 获取存储桶配置（大小限制/MIME/公开性）。 | -      |
| update_storage_config | 更新存储桶配置。                 | -    |
   
表6SQL执行与迁移 
| 工具                | 功能简介              | 注意事项                  |
|:---|:---|:---|
| execute_sql      | 执行任意SQL查询。        | 需service_role密钥或直连DB。 |
| apply_migration | 应用SQL迁移脚本并记录到迁移表。 | 在事务中执行，确保原子性。        |
| explain_query      | 获取SQL执行计划。     | ANALYZE模式会实际执行写操作。   |
   
表7向量索引（pgvector） 
| 工具                     | 功能简介                          | 注意事项                |
|:---|:---|:---|
| list_vector_indexes  | 列出pgvector索引（ivfflat/hnsw）。 | pgvector未安装时返回空数组。 |
| get_vector_index_stats | 获取pgvector索引使用统计和大小。       | -                  |
   
表8实时订阅 
| 工具                          | 功能简介                     | 注意事项 |
|:---|:---|:---|
| list_realtime_publications | 列出PostgreSQL发布（用于Realtime）。 | -      |
   
表9监控与诊断 
| 工具                         | 功能简介                           | 注意事项              |
|:---|:---|:---|
| get_database_connections | 获取活跃数据库连接信息（pg_stat_activity）。 | -                 |
| get_database_stats       | 获取数据库活动统计和后台写入器统计。             | -                 |
| get_index_stats           | 获取指定索引的详细使用统计。                   | -                |
| get_logs                   | 获取Supabase服务日志。                 | 默认最近24小时，优先查分析栈。 |
   
表10项目配置与工具 
| 工具                        | 功能简介                     | 注意事项                      |
|:---|:---|:---|
| 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
以下步骤介绍公网环境下如何通过Claude对接并使用Supabase MCP。
1. 参考[查看API Key](https://support.huaweicloud.com/usermanual-rds-pg/rds_supabase_13.html)，获取API Key，包含Anon Key和Service Role Key。
   
   图1Supabase应用API Key列表   
   ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002749727217.png "点击放大")
   
   
2. 开启Supabase应用公网访问，为其绑定一个连通外部网络的弹性公网IP。 
   参考[绑定和解绑DNAT网关地址](https://support.huaweicloud.com/usermanual-rds-pg/rds_supabase_15.html)，绑定DNAT网关，并获取绑定的EIP和访问端口。
   图2Supabase应用网络信息页面   
   ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002720327346.png "点击放大")
   
   
3. 在Supabase应用详情页，单击托管实例名称，进入实例详情页。
4. 在左侧导航栏，选择"连接管理"，参考[绑定和解绑弹性公网IP](https://support.huaweicloud.com/usermanual-rds-pg/rds_pg_public_accessibility.html)，为托管的数据库实例绑定EIP。
   
   图3托管数据库实例连接信息   
   ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002720167438.png "点击放大")
   如上图所示，获取实例的公网访问IP和端口号。
   
   
5. 本地安装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"
     ```
     
   
   
   
   
6. 下载[Supabase MCP Server开源项目源码](https://github.com/HenkDz/selfhosted-supabase-mcp)到本地目录，并通过Bun来安装相关依赖。
   
   执行前请再次检查，确保已安装Git工具。详细安装操作，请参见[Git官网](https://git-scm.com/)。
   ```
   git clone https://github.com/HenkDz/selfhosted-supabase-mcp.git
   cd selfhosted-supabase-mcp
   bun install
   ```
   
   
7. 打开Claude的配置文件（.claude.json），在mcpServers中添加Supabase MCP Server相关配置，模板如下所示。 
   ```
   {
     "mcpServers": {
       "selfhosted-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>"
       }
     }
   }
   ```
   配置参数填写说明如[表11]，请结合实际的应用和托管实例相关配置信息，进行正确填写，替换掉\<xxx\>的整个内容（包含\<和\>符号）。
    表11Supabase 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。  - \<实例EIP\>：填写托管的数据实例的访问端口，一般默认为5432。  - \<数据库名称\>：填写实例上Database的名称，当前仅支持填写supabase_db。   | postgresql://root:xxx@10.0.0.0:5432/supabase_db | 请注意，如果数据库实例的登录密码包含特殊字符，必须使用URLEncode编码，如'@'编码为'%40'，否则功能不可用。 |
      
   
   
8. 命令行窗口输入如下命令，查看Supabase MCP是否已正常连接。 
   ```
   claude mcp get supabase
   ```
   图4RDS Supabase MCP的连接状态检查   
   ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002749807297.png "点击放大")
   
   
9. RDS Supabase MCP工具配置完成后，您可以在Claude的对话框中，通过自然语言去访问、操作及管理Supabase应用及其托管的数据库服务。 
   - 查询Supabase项目基础信息（MCP对接中未配置数据库实例的直连信息） 交互输入以下信息：
     ```
     查询Supabase项目基础信息
     ```
     Agent回复如下：
     图5Agent回复   
     ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002749727221.png "点击放大") 
   
   - 查询PostgreSQL实例当前库表信息（MCP对接中已配置数据库实例的直连信息） 交互输入以下信息：
     ```
     查询Supabase当前业务库表概览
     ```
     Agent回复如下：
     图6Agent回复   
     ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002720327352.png "点击放大") 
   
   
   
   
 
#### 通过CodeArts Agent对接并使用Supabase MCP
以下步骤介绍公网环境下如何通过CodeArts Agent对接并使用Supabase MCP。
1. 参考[查看API Key](https://support.huaweicloud.com/usermanual-rds-pg/rds_supabase_13.html)，获取API Key，包含Anon Key和Service Role Key。
   
   图7Supabase应用API Key列表   
   ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002720167442.png "点击放大")
   
   
2. 参考[绑定和解绑DNAT网关地址](https://support.huaweicloud.com/usermanual-rds-pg/rds_supabase_15.html)，绑定DNAT网关，并获取绑定的EIP和访问端口。
   
   图8Supabase应用详情页面   
   ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002749807301.png "点击放大")
   
   
3. 在Supabase应用详情页，单击托管实例名称，进入实例详情页。
4. 在左侧导航栏，选择"连接管理"，参考[绑定和解绑弹性公网IP](https://support.huaweicloud.com/usermanual-rds-pg/rds_pg_public_accessibility.html)，为托管的数据库实例绑定EIP。
   
   图9托管数据库实例连接信息   
   ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002749727225.png "点击放大")
   如上图所示，获取实例的公网访问IP和端口号。
   
   
5. 本地安装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"
     ```
     
   
   
   
   
6. 下载Supabase MCP Server开源项目源码到本地目录，并通过Bun来安装相关依赖。 
   执行前请再次检查，确保已安装Git工具。详细安装操作，请参见[Git官网](https://git-scm.com/)。
   ```
   git clone https://github.com/HenkDz/selfhosted-supabase-mcp.git
   cd selfhosted-supabase-mcp
   bun install
   ```
   
   
7. 打开本地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.js",
           "--url",
           "<your-supabase-url>",
           "--anon-key",
           "<your-anon-key>",
           "--service-key",
           "<your-service-role-key>",
           "--db-url",
           "<your-db-url>"
       }
     }
   }
   ```
   配置参数填写说明如[表12]，请结合实际的应用和托管实例相关配置信息，进行正确填写，替换掉\<xxx\>的整个内容（包含\<和\>符号）。
    表12Supabase 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。  - \<实例EIP\>：填写托管的数据实例的访问端口，一般默认为5432。  - \<数据库名称\>：填写实例上Database的名称，当前仅支持填写supabase_db。   | postgresql://root:xxx@10.83.34.105:5432/supabase_db | 请注意，如果数据库实例的登录密码包含特殊字符，必须使用URLEncode编码，如'@'编码为'%40'，否则功能不可用。 如果需要查询 |
      
   
   
8. 配置完成后，返回MCP工具页面。检查Supabase MCP连接状态和工具集信息。 
   图10CodeArts Agent 已安装MCP Server列表   
   ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002720327358.png "点击放大")
   
   
9. 您可以在CodeArts Agent的对话框中，通过自然语言去访问、操作及管理Supabase应用及其托管的数据库服务。 
   - 查询Supabase项目基础信息（MCP对接中已配置数据库实例的直连信息） 交互输入以下信息：
     ```
     查询Supabase项目基础信息
     ```
     Agent回复如下：
     图11Agent回复   
     ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002720167446.png "点击放大") 
   
   - 查询PostgreSQL实例当前库表信息（MCP对接中已配置数据库实例的直连信息） 交互输入以下信息：
     ```
     查询Supabase当前业务库表概览
     ```
     Agent回复如下：
     图12Agent回复   
     ![](https://support.huaweicloud.com/usermanual-rds-pg/zh-cn_image_0000002749807311.png "点击放大") 
   
   
   
   
 
