更新时间:2026-11-02 GMT+08:00
分享

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的核心工具列表。

表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

更新存储桶配置。

-

表6 SQL执行与迁移

工具

功能简介

注意事项

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。

  1. 参考查看API Key,获取API Key,包含Anon Key和Service Role Key。

    图1 Supabase应用API Key列表

  2. 开启Supabase应用公网访问,为其绑定一个连通外部网络的弹性公网IP。

    • 方式一:参考绑定和解绑DNAT网关地址,绑定DNAT网关,并在应用详情页获取绑定的EIP和访问端口。
      图2 Supabase应用网络信息页面
    • 方式二:参考绑定和解绑弹性公网IP,直接绑定EIP,并在应用详情页获取绑定的EIP地址。
      图3 Supabase应用网络信息页面(弹性公网IP信息)

  3. 在Supabase应用详情页,单击托管实例名称,进入实例详情页。
  4. 在左侧导航栏,选择“连接管理”,参考绑定和解绑弹性公网IP,为托管的数据库实例绑定EIP。

    图4 托管数据库实例连接信息

    如上图所示,获取实例的公网地址和数据库端口。

  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官网。
    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.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',否则功能不可用。

  8. 命令行窗口输入如下命令,查看Supabase MCP是否已正常连接。

    claude mcp get supabase
    图5 RDS Supabase MCP的连接状态检查

  9. RDS Supabase MCP工具配置完成后,您可以在Claude的对话框中,通过自然语言去访问、操作及管理Supabase应用及其托管的数据库服务。

    • 查询Supabase项目基础信息(MCP对接中未配置数据库实例的直连信息)

      交互输入以下信息:

      查询Supabase项目基础信息

      Agent回复如下:

      图6 Agent回复
    • 查询PostgreSQL实例当前库表信息(MCP对接中已配置数据库实例的直连信息)

      交互输入以下信息:

      查询Supabase当前业务库表概览

      Agent回复如下:

      图7 Agent回复

以下步骤介绍公网环境下如何通过CodeArts Agent对接并使用Supabase MCP。

  1. 参考查看API Key,获取API Key,包含Anon Key和Service Role Key。

    图8 Supabase应用API Key列表

  2. 参考绑定和解绑DNAT网关地址,绑定DNAT网关,并获取绑定的EIP和访问端口。

    图9 Supabase应用详情页面

  3. 在Supabase应用详情页,单击托管实例名称,进入实例详情页。
  4. 在左侧导航栏,选择“连接管理”,参考绑定和解绑弹性公网IP,为托管的数据库实例绑定EIP。

    图10 托管数据库实例连接信息

    如上图所示,获取实例的公网访问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官网。
    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.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',否则功能不可用。

  8. 配置完成后,返回MCP工具页面。检查Supabase MCP连接状态和工具集信息。

    图11 CodeArts Agent 已安装MCP Server列表

  9. 您可以在CodeArts Agent的对话框中,通过自然语言去访问、操作及管理Supabase应用及其托管的数据库服务。

    • 查询Supabase项目基础信息(MCP对接中已配置数据库实例的直连信息)

      交互输入以下信息:

      查询Supabase项目基础信息

      Agent回复如下:

      图12 Agent回复
    • 查询PostgreSQL实例当前库表信息(MCP对接中已配置数据库实例的直连信息)

      交互输入以下信息:

      查询Supabase当前业务库表概览

      Agent回复如下:

      图13 Agent回复

相关文档