/ 目录 / 演练场 / supabase-mcp-server
● 社区 alexander-zuev ⚡ 即开即用

supabase-mcp-server

作者 alexander-zuev · alexander-zuev/supabase-mcp-server

一个社区版 Supabase MCP,具有三层安全措施(safe / write / destructive),自动迁移和 Management + Auth API 覆盖——现已被官方 Supabase MCP 取代。

alexander-zuev/supabase-mcp-server 早于官方 Supabase MCP 推出。它提供丰富的覆盖:SQL(具有风险等级)、自动迁移跟踪、Management API 直通、Auth Admin SDK 操作和 9+ 个 Supabase 服务的日志。维护者已宣布,既然 Supabase 推出了官方 MCP,他们将不再积极维护它——建议考虑迁移。

为什么要用

核心特性

实时演示

实际使用效果

supabase-2.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "supabase-2": {
      "command": "uvx",
      "args": [
        "supabase-mcp-server"
      ],
      "_inferred": true
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "supabase-2": {
      "command": "uvx",
      "args": [
        "supabase-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "supabase-2": {
      "command": "uvx",
      "args": [
        "supabase-mcp-server"
      ],
      "_inferred": true
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "supabase-2": {
      "command": "uvx",
      "args": [
        "supabase-mcp-server"
      ],
      "_inferred": true
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "supabase-2",
      "command": "uvx",
      "args": [
        "supabase-mcp-server"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "supabase-2": {
      "command": {
        "path": "uvx",
        "args": [
          "supabase-mcp-server"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add supabase-2 -- uvx supabase-mcp-server

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: supabase-mcp-server

查询你的 Supabase 应用数据

👤 基于 Supabase 的应用的创始人、PM ⏱ ~10 min beginner

何时使用: 你想获得使用量/留存数据,而不需要打开 Supabase SQL 编辑器。

前置条件
  • QUERY_API_KEY(可在 thequery.dev 免费获取) — 注册,复制密钥
  • SUPABASE_PROJECT_REF + 数据库密码 — Supabase 仪表盘 > 项目设置
步骤
  1. 保持 safe 模式
    将模式设置为 safe。上周有多少用户注册了?✓ 已复制
    → 只读结果;无法修改数据
  2. 深入探查
    其中,有多少用户完成了入门过程(在 profiles 表中有至少一行)?✓ 已复制
    → 留存率类型的数字

结果: 快速获得答案,并有绝对的只读保证。

注意事项
  • 为了'只是这一个查询'而切换到 write 模式,然后忘记切换回去 — 明确告诉 Claude:'完成此查询后返回 safe 模式。'

以真实迁移的形式创建和跟踪架构更改

👤 使用 Supabase 的开发者 ⏱ ~15 min intermediate

何时使用: 你需要添加列或索引,并希望作为迁移文件跟踪,而不是即时 ALTER。

前置条件
  • Management API 的 SUPABASE_ACCESS_TOKEN — 仪表盘 > 账户 > 访问令牌
步骤
  1. 切换到 write 模式
    将模式设置为 write。向 users 表添加列 plan(text,默认值 'free')。✓ 已复制
    → ALTER 已执行;迁移文件已创建
  2. 审查并提交
    显示生成的迁移文件。我会将其提交到我们的仓库。✓ 已复制
    → SQL 文件路径和内容

结果: 一步完成架构更改和迁移跟踪。

注意事项
  • 当团队成员也进行更改时,迁移与 CI 发生冲突 — 通过分支迁移进行协调;不要在团队工作时间在 main 上这样做
搭配使用: github

通过 Auth Admin SDK 为开发/staging 环境配置测试用户

👤 QA 工程师、开发者 ⏱ ~10 min intermediate

何时使用: 你需要 20 个具有特定元数据的测试账户来演练某个功能。

前置条件
  • SUPABASE_SERVICE_ROLE_KEY — 仪表盘 > API 设置(保持机密!)
步骤
  1. 批量创建用户
    创建 20 个测试用户:[email protected][email protected],密码 'Test12345!',元数据 {role: 'qa', plan: 'free'}。✓ 已复制
    → 返回 20 个用户 UUID
  2. 生成魔法链接
    为每个用户生成魔法登录链接并保存到 /tmp/qa-users.tsv。✓ 已复制
    → 包含邮箱和链接的 TSV 文件

结果: QA 准备好的账户在一分钟内配置完成。

注意事项
  • Service role key 拥有最高权限——永远不要在用户面前的提示上下文中放入 — 保存在环境变量中;永远不要输出
搭配使用: filesystem

组合

与其他 MCP 搭配,撬动十倍杠杆

supabase-2 + github

通过 MCP 生成迁移文件,通过 git MCP 提交

通过 write 模式添加列,然后用消息 'feat: add users.plan' 提交生成的迁移文件。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
execute_sql query: str, mode: 'safe'|'write'|'destructive' 任意 SQL 的主要入口,由当前模式限制 1 DB query
set_mode mode: 'safe'|'write'|'destructive' 改变安全等级;默认为 safe free
management_api_request path, method, body? 通过 Management API 管理项目设置、扩展、bucket 1 API call
auth_admin_create_user email, password?, user_metadata? 为测试或入门配置用户 1 Auth call
auth_admin_generate_link user_id, type: 'magiclink'|'recovery' 为用户生成登录或恢复链接 1 Auth call
get_logs service: 'api'|'auth'|'db'|..., since, until 按服务调试 1 API call

成本与限制

运行它的成本

API 配额
由 Supabase 计划限制(DB 连接、Management API 速率限制)
每次调用 Token 数
SQL 结果:取决于 LIMIT;始终需要设置上限
费用
免费(Apache 2.0)。Supabase 成本是你现有的账单。
提示
默认保持 safe 模式。仅当你明确打算修改数据时才提升权限。

安全

权限、密钥、影响范围

最小权限: safe 模式为 SELECT;write 为 INSERT/UPDATE;destructive 为全部
凭据存储: 环境变量。Service role key 特别敏感。
数据出站: 查询发送到你的 Supabase 项目;LLM 看到结果行
切勿授予: 不要将 Service role key 授予任何可通过不受信任传输访问的东西

故障排查

常见错误与修复

QUERY_API_KEY 无效

在 thequery.dev 重新生成。注意:这是一个包装 Supabase 的单独服务,需要自己注册。

Write 工具在 safe 模式下拒绝执行

先调用 set_mode write。完成后记得设置回 safe。

Transaction pool 已耗尽

这里仅支持 transaction pooling。减少并发或升级 Supabase 计划。

验证: Supabase dashboard > DB > Connection Pooling

替代方案

supabase-mcp-server 对比其他方案

替代方案何时用它替代权衡
官方 Supabase MCP你是新开始——首先使用官方的由 Supabase 维护;此社区版已被其作者弃用
postgres MCP你只需要 SQL,不需要 Auth/Management API只读、通用;没有 Supabase 特定功能
Neon MCP你在 Neon,不是 Supabase为安全迁移测试添加 DB 分支

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills