Token导航 LogoToken导航

MCP Server · 开发工具

Supabase MCP Gateway

将自托管的Supabase暴露为MCP服务器,供Claude Code、Claude.ai和其他MCP客户端使用。

stdio官方级别未说明来源级核验工具 40
开发工具JavaScriptClaude

快速开始

作者 / 组织
mrzadexinho
提供方
mrzadexinho
运行时
Docker

工具数量

40

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Supabase MCP Gateway 属于开发工具类 MCP Server,公开资料标注 40 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

开发工具

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

docker run -d \

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Docker,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 40 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

Supabase MCP网关

将您的自托管Supabase公开为Claude Code、Claude.ai和其他MCP客户端的MCP服务器。

建筑

┌──────────────────────────────────────────────────────────────┐
│  Claude Code (local machine)                                 │
│  └── mcp-sse-bridge.mjs (stdio ↔ SSE)                       │
│          ↓ HTTPS                                             │
├──────────────────────────────────────────────────────────────┤
│  Cloudflare DNS (DNS only — no proxy)                        │
│  mcp-supabase.yourdomain.com → VPS public IP                 │
│          ↓                                                   │
├──────────────────────────────────────────────────────────────┤
│  VPS                                                         │
│  ├── Traefik (TLS termination, Let's Encrypt)                │
│  │       ↓ HTTP                                              │
│  ├── Supergateway (this container, port 3000)                │
│  │   ├── GET  /sse      → SSE subscription                  │
│  │   ├── POST /message  → JSON-RPC messages                 │
│  │   └── GET  /health   → health check                      │
│  │       ↓ stdio                                             │
│  └── selfhosted-supabase-mcp                                 │
│          ↓ PostgreSQL                                        │
│      Supabase Database                                       │
└──────────────────────────────────────────────────────────────┘

可用工具(41+)

类别工具
数据库execute_sql, list_tables, list_table_columns, list_extensions, explain_query
模式list_indexes, list_constraints, list_foreign_keys, list_triggers, get_function_definition
迁移apply_migration, list_migrations
安全list_rls_policies, get_rls_status, get_advisors (安全/性能)
认证list_auth_users, get_auth_user, create_auth_user, update_auth_user, delete_auth_user
存储list_storage_buckets, list_storage_objects, get_storage_config, update_storage_config
函数list_database_functions, get_function_definition, list_edge_functions, get_edge_function_details
监控get_logs, get_database_connections, get_database_stats, get_index_stats
矢量list_vector_indexes, get_vector_index_stats
克龙list_cron_jobs, get_cron_job_history
其他get_project_url, verify_jwt_secret, rebuild_hooks, generate_typescript_types

先决条件

  • 自托管Supabase实例(由Coolify、Docker Compose等管理)
  • 带有TLS反向代理(Traefik、Nginx、Caddy)的VPS
  • 指向您的VPS的DNS记录(Cloudflare推荐)
  • 本地计算机上的Node.js 18+(用于Claude Code桥)

环境变量

变量必填描述
SUPABASE_URL是您的Supabase项目URL(例如。, https://supabase.yourdomain.com)
SUPABASE_ANON_KEY是提供匿名/可发布密钥(JWT)
SUPABASE_SERVICE_ROLE_KEY是支持服务角色密钥(JWT)
DATABASE_URL是直接PostgreSQL连接字符串
PORT无服务器端口(默认值: 3000)

数据库URL

容器必须位于 相同的Docker网络 作为你的Supabase堆栈。使用内部容器主机名 DATABASE_URL:

postgresql://postgres:YOUR_PASSWORD@supabase-db-CONTAINER_ID:5432/postgres

使用以下命令查找容器主机名:

docker ps --filter "name=supabase-db" --format "{{.Names}}"

部署

选项1:冷却(推荐)

  1. 从此Git存储库创建新应用程序
  2. 设置环境变量(见上文)
  3. 配置域: mcp-supabase.yourdomain.com
  4. 将暴露端口设置为 3000
  5. 重要:禁用基本身份验证(如果启用)(它会阻止MCP客户端)
  6. 部署

选项2:Docker编写

services:
  supabase-mcp:
    build: .
    ports:
      - "3000:3000"
    environment:
      SUPABASE_URL: https://supabase.yourdomain.com
      SUPABASE_ANON_KEY: eyJ...
      SUPABASE_SERVICE_ROLE_KEY: eyJ...
      DATABASE_URL: postgresql://postgres:PASSWORD@supabase-db:5432/postgres
    networks:
      - your-supabase-network

networks:
  your-supabase-network:
    external: true

选项3:Docker运行

docker build -t supabase-mcp-gateway .
docker run -d \
  --name supabase-mcp \
  --network your-supabase-network \
  -p 3000:3000 \
  -e SUPABASE_URL=https://supabase.yourdomain.com \
  -e SUPABASE_ANON_KEY=eyJ... \
  -e SUPABASE_SERVICE_ROLE_KEY=eyJ... \
  -e DATABASE_URL=postgresql://postgres:PASSWORD@supabase-db:5432/postgres \
  supabase-mcp-gateway

端点

方法路径描述
GET/sse上交所认购——回报 event: endpoint 具有会话特定的消息URL
POST/message?sessionId=...发送JSON-RPC消息(MCP协议)
GET/health健康检查-退货 ok

DNS和TLS设置

Cloudflare(推荐)

创建指向您的VPS公共IP的A记录:

类型名称内容代理
A. mcp-supabaseYOUR_VPS_IP仅DNS (灰云)

重要:Cloudflare代理(橙色云) 必须禁用Cloudflare缓冲服务器发送的事件,这会中断MCP所需的SSE流。

传输层安全

关闭Cloudflare代理后,您的反向代理将处理TLS:

  • 交通:使用 certresolver=letsencrypt (Coolify会自动进行配置)
  • Nginx:使用certbot
  • 卡迪:自动HTTPS

客户端配置

克劳德代码

Claude Code的内置SSE客户端有一个已知的问题:它在连接之前执行10秒的OAuth发现探测,这会导致未实现OAuth的服务器超时。

解决方案:使用附带的stdio到SSE桥接脚本。

1.安装桥架
# Copy the bridge script to your Claude config directory
cp mcp-sse-bridge.mjs ~/.claude/mcp-sse-bridge.mjs

或创建 ~/.claude/mcp-sse-bridge.mjs 使用此存储库中的内容。

2.配置克劳德代码
claude mcp add supabase-vps -s user -- \
  node ~/.claude/mcp-sse-bridge.mjs \
  https://mcp-supabase.yourdomain.com/sse
3.验证
claude mcp list
# Should show: supabase-vps: ... - ✓ Connected
备选方案:项目级配置

添加到您的项目 .mcp.json:

{
  "mcpServers": {
    "supabase-vps": {
      "command": "node",
      "args": [
        "/path/to/.claude/mcp-sse-bridge.mjs",
        "https://mcp-supabase.yourdomain.com/sse"
      ]
    }
  }
}

Claude.ai(桌面/网络)

添加为具有SSE传输的MCP服务器:

URL: https://mcp-supabase.yourdomain.com/sse

其他MCP客户端

任何支持SSE传输的MCP客户端都可以直接连接:

SSE endpoint: https://mcp-supabase.yourdomain.com/sse
Message endpoint: https://mcp-supabase.yourdomain.com/message

这座桥是如何工作的

Claude Code ←→ stdio ←→ mcp-sse-bridge.mjs ←→ HTTPS/SSE ←→ Supergateway ←→ stdio ←→ selfhosted-supabase-mcp

桥(mcp-sse-bridge.mjs):

  1. 打开与网关的SSE连接
  2. 接收特定会话 /message?sessionId=... 端点
  3. 从stdin读取JSON-RPC消息,将其POST到消息端点
  4. 通过SSE接收JSON-RPC响应 message 事件,将它们写入stdout
  5. 断开连接时自动重新连接

它避免了OAuth发现开销 mcp-remote Claude Code的本地SSE客户端速度慢/不可靠。

故障排除

claude mcp list 显示“连接失败”

原因:Claude Code的SSE客户端在尝试连接之前在OAuth发现上花费了10秒。

修复:使用stdio网桥而不是直接SSE。看 Claude代码配置 上面。

健康端点返回401

原因:反向代理已启用基本身份验证。

修复(冷却):基本身份验证作为Traefik标签存储在Coolify数据库中。要删除它:

  1. 检查当前标签: docker inspect CONTAINER --format '{{json .Config.Labels}}' | grep basic
  2. 移除 basicauth Coolify中Traefik标签生成的中间件 docker-compose.yaml
  3. 更新HTTPS路由器 middlewares 要排除的标签 http-basic-auth-*
  4. 重新创建容器: docker compose up -d --force-recreate
  5. 更新Coolify的数据库,以便在重新部署时保持更改:
   -- In coolify-db container
   -- Decode custom_labels, remove basic auth lines, re-encode, UPDATE

SSE不通过Cloudflare返回任何数据

原因:Cloudflare的代理缓冲SSE响应。

修复:将DNS记录设置为 仅DNS (灰色云图标,不是橙色)。SSE流协议要求无缓冲响应。

集装箱碰撞 __require is not a function

原因:MCP服务器是用 --target bun 但运行在Node.js上。

修复:Dockerfile使用 bun build src/index.ts --outdir dist --target node。如果修改构建,请确保 --target node 已设置。

容器无法连接到数据库

原因:容器与Supabase堆栈不在同一个Docker网络上。

修复:确保容器加入正确的网络(例如。, coolify Coolify部署中的网络)。通过以下方式进行验证:

docker exec CONTAINER node -e "
  const { Client } = require('pg');
  const c = new Client({ connectionString: process.env.DATABASE_URL });
  c.connect().then(() => { console.log('OK'); c.end(); }).catch(e => console.error(e.message));
"

mcp-remote 挂起10+秒

原因: mcp-remote 执行OAuth发现(探测+ .well-known/ 查找),然后再连接。初始探测在10秒后超时,因为SSE端点流式传输而不是返回。

修复:使用 mcp-sse-bridge.mjs 相反。它在不到1秒的时间内连接。

安全注意事项

  • MCP服务器可以通过服务角色密钥完全访问数据库
  • 在网络/反向代理级别限制访问(IP分配、VPN等)
  • 桥接脚本通过HTTPS连接——所有流量都是加密的
  • 考虑为生产使用添加Traefik级别的身份验证(API密钥头,mTLS)
  • 做 不 在没有TLS的情况下公开服务

许可证

麻省理工学院

工具与能力

工具数量

40

资源数量

0

提示词数量

0

能力标签

数据库网关JavaScript本地部署MCP协议SSE传输自托管服务开发工具

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 工具数量 40 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Docker,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Supabase MCP Gateway

MCP World · 本页

40stdio有1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Supabase MCP Gateway 怎么安装?

公开资料给出的安装命令是 docker run -d \,运行环境为 Docker。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Supabase MCP Gateway 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Docker;保存后完全退出客户端再打开,配置才会生效。

Supabase MCP Gateway 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Supabase MCP Gateway 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Supabase MCP Gateway 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP