用途
Supabase MCP Server 用于将 Supabase 项目连接到 AI 助手(如 Cursor、Claude、Windsurf 等)。它基于模型上下文协议(Model Context Protocol,MCP),该协议标准化了大语言模型(LLM)与 Supabase 等外部服务之间的通信方式。通过该服务器,AI 助手可以直接与 Supabase 项目交互,执行管理数据表、获取配置、查询数据等任务。
主要能力
- 连接 AI 助手与 Supabase 项目,使其能够执行管理数据表、获取配置、查询数据等操作。
- 提供完整的工具列表和配置选项,详见 Supabase MCP Server 文档。
- 文档中提供交互式 URL 构建器,可帮助生成配置选项。
- 支持通过 Supabase 仪表盘的 MCP 连接选项卡为项目生成自定义 MCP URL。
- 提供 @supabase/mcp-server-supabase 包,导出 createToolSchemas(),用于为 Vercel AI SDK 的 MCP 客户端填充输入和输出模式,使 Supabase MCP 工具可作为静态工具使用,并支持客户端验证和 TypeScript 类型推断。
- createToolSchemas() 接受与 MCP 服务器 URL 参数类似的过滤选项:features(限制特定功能组,如 ['database', 'docs'],默认为所有默认功能组)、projectScoped(为 true 时从工具输入模式中省略 project_id 并排除账户级工具,适用于连接配置了 project_ref 的服务器,默认为 false)、readOnly(为 true 时排除变更类工具,适用于连接配置了 read_only=true 的服务器,默认为 false)。
- 该服务器不在 MCP 工具结果中发送 structuredContent,AI SDK 会回退到从内容文本中解析 JSON。
- 支持自托管 MCP 端点:@supabase/mcp-server-supabase 包导出 createSupabaseMcpHandler(),用于从自有端点通过 HTTP 提供工具。它接受与 createSupabaseMcpServer() 相同的 SupabaseMcpServerOptions,其中最重要的是 platform。
- 该处理器仅支持当前协议修订版,创建时使用 legacy: 'reject',因此仅支持 2025 年代协议的客户端会收到 HTTP 400 而非被服务。
- 当 platform 携带每请求凭据时,应为每个请求创建处理器并在响应完成时关闭。处理器会闭包捕获所提供的 platform,因此共享的处理器会用该 platform 服务每个请求。
- 当 platform 旨在共享时(例如服务账户令牌),长期存活的处理器是合适的。应创建一次并在关闭时调用 close(),而非每个响应都关闭,因为 close() 会拆除订阅路由器并拒绝后续请求。
- toNodeHandler 来自 @modelcontextprotocol/node,它不是本包的依赖项,需一并安装。
- 可向 createSupabaseMcpServer 传递 observer 以收集请求生命周期结果和 Supabase 内置事实。服务器不会自动将请求或响应负载转发给 observer。Supabase 内置事实使用一组封闭的有界字段和值;自定义事实不会自动进行隐私验证。省略 observer 会跳过所有观察工作。Observer、classifier 和 sink 的失败不会改变请求行为,但同步的 observer 和 classifier 工作可能会阻塞请求。
- 其他 MCP 服务器:@supabase/mcp-server-postgrest 允许通过 REST API 将自己的用户连接到应用,详见其项目 README。
使用方式
- 阅读安全最佳实践:在设置 MCP 服务器之前,建议先阅读安全最佳实践,了解将 LLM 连接到 Supabase 项目的风险及缓解措施。
- 配置 MCP 客户端:访问设置文档配置 Supabase MCP 服务器。也可以访问 Supabase 仪表盘的 MCP 连接选项卡,为项目生成自定义 MCP URL。MCP 客户端会在设置过程中自动提示登录 Supabase,需选择包含目标项目的组织。大多数 MCP 客户端需要以下信息(原文未列出具体字段)。如果文档中未列出所用 MCP 客户端,请查阅该客户端的 MCP 文档,并将上述 MCP 信息复制为其期望的格式(json、yaml 等)。
- 本地环境:如果使用 Supabase CLI 在本地运行 Supabase,可通过 http://localhost:54321/mcp 访问 MCP 服务器。目前 CLI 环境中的 MCP 服务器仅提供部分工具,且不支持 OAuth 2.1。
- 自托管环境:对于自托管 Supabase,请查看“Enabling MCP server”页面。目前自托管环境中的 MCP 服务器仅提供部分工具,且不支持 OAuth 2.1。
适用场景
- 希望让 AI 助手直接操作 Supabase 项目(管理数据表、获取配置、查询数据)的开发者。
- 使用 Cursor、Claude、Windsurf 等支持 MCP 的 AI 助手的用户。
- 需要在 Vercel AI SDK 的 MCP 客户端中以静态工具方式使用 Supabase MCP 工具,并获得客户端验证和 TypeScript 类型推断的开发者。
- 需要自托管 MCP 端点,从自有端点通过 HTTP 提供工具的开发者。
- 希望通过 @supabase/mcp-server-postgrest 将自有用户通过 REST API 连接到应用的场景。
限制
- 本地 Supabase CLI 环境和自托管 Supabase 环境目前仅提供部分工具,且不支持 OAuth 2.1。
- 自托管处理器仅支持当前协议修订版,仅支持 2025 年代协议的客户端会收到 HTTP 400。
- 该服务器不在 MCP 工具结果中发送 structuredContent。
- 服务器不会自动将请求或响应负载转发给 observer;自定义事实不会自动进行隐私验证;同步的 observer 和 classifier 工作可能会阻塞请求。
- 使用前需阅读安全最佳实践,了解连接 LLM 到 Supabase 项目的风险。
- 项目采用 Apache 2.0 许可证,详见 LICENSE 文件。
其他信息
- 项目提供 CONTRIBUTING 文件,说明如何为项目做贡献。
- 可进一步了解 Model Context Protocol 及其能力,以及如何安全地将变更推广到生产环境。