发布于 2026-01-06 0 阅读
0

Supabase MCP 服务器

Supabase MCP 服务器

我们即将推出官方的Supabase MCP 服务器。您可以使用此服务器将您喜爱的 AI 工具(例如CursorClaude)直接连接到 Supabase。

什么是MCP服务器?

MCP 代表模型上下文协议 (Model Context Protocol )。它规范了大型语言模型 (LLM) 与 Supabase 等平台之间的通信方式。

我们的 MCP 服务器将您的 AI 工具连接到 Supabase,以便它们可以代表您执行启动数据库、管理表、获取配置和查询数据等任务。

工具

MCP 服务器使用工具,这些工具有点像“功能”。Supabase MCP 服务器中有超过 20 种工具可用。

你可以:

  • 设计表格并使用迁移来跟踪它们。
  • 使用 SQL 查询获取数据并运行报告
  • 创建用于开发(实验性)的数据库分支
  • 获取项目配置
  • 启动新的 Supabase 项目
  • 暂停和恢复项目
  • 获取日志以调试问题
  • 根据数据库架构生成 TypeScript 类型

有关所有功能的完整列表,请参阅项目 README 中的“工具”部分。

设置

您可以使用以下 JSON 在大多数 AI 客户端上设置Supabase MCP:

{
  "mcpServers": {
    "supabase": {
      "command": "npx",
      "args": [
        "-y",
        "@supabase/mcp-server-supabase@latest",
        "--access-token",
        "<personal-access-token>"
      ]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

您需要为该字段创建一个个人访问令牌 (PAT)<personal-access-token>。此令牌用于使用您的 Supabase 帐户对 MCP 服务器进行身份验证。

部分客户端需要略微修改的 JSON 格式,Windows 用户需要在该命令前加上前缀cmd /c。有关各客户端和操作系统的详细分步说明,请参阅我们的MCP 文档。

MCP是如何运作的?

如果您是 MCP 的新手,那么值得深入了解该协议,以了解它的由来和提供的功能。

如今大多数大型语言模型 (LLM) 都支持“工具调用”,即模型可以get_weather根据对话上下文(例如“休斯顿天气如何?”)选择调用开发者提供的工具(例如)。这为类智能体体验打开了大门,LLM 可以代表用户调用与外部世界交互的工具。

作为开发者,你需要通过提供一个包含你的工具及其接受的参数的 JSON 模式来告诉 LLM 哪些工具可用:

{
  "name": "get_weather",
  "description": "Get the current weather for a specific location",
  "parameters": {
    "type": "object",
    "properties": {
      "location": {
        "type": "string",
        "description": "The city and state/country, e.g. 'San Francisco, CA' or 'Paris, France'"
      }
    },
    "required": ["location"]
  }
}

Enter fullscreen mode Exit fullscreen mode

这种 JSON 模式格式在大多数 LLM 中都是标准的。但重要的是,每个工具的具体实现方式并不相同。作为开发者,你需要负责将get_weather工具调用与某个天气 API 连接起来,以满足请求需求。

因此,开发者经常需要在不同的项目和应用中重复实现相同的工具。而且,在任何一个应用中,最终用户也只能使用开发者精心挑选的工具。用户无法构建类似插件的工具生态系统,也就无法引入自己的工具。

MCP标准

MCP 通过标准化工具生态系统来解决这个问题。也就是说,它创建了一种客户端(例如 Cursor)和工具提供商(例如 Supabase)都能理解的协议,同时将二者解耦。Cursor 只需实现 MCP 规范的客户端部分,其 LLM 即可立即与任何也实现了 MCP 的服务器协同工作。Cursor(以及任何其他 AI 应用)允许用户自带工具,只要这些工具实现了 MCP 即可。

资源和提示

除了工具调用之外,MCP 还包含一些其他(可选)原语:资源和提示。资源允许服务器公开任何客户端可以读取并用作 LLM 上下文的任意数据和内容。这可能包括:

  • 文件内容
  • 数据库记录
  • API响应
  • 实时系统数据
  • 屏幕截图和图片
  • 日志文件
  • 还有更多

提示功能允许服务器定义可重用的提示模板,客户端可以将其展示给用户和 LLM。这使得服务器有机会为 LLM 定义自定义指令和最佳实践,以便在 LLM 与其服务交互时使用。

目前,大多数客户端仅支持工具的基本功能。我们非常期待看到应用程序如何利用资源和提示,以便我们能够在这些环境中进一步提升 Supabase MCP 的使用体验。

有关模型上下文协议的更多信息,请参阅官方 MCP 文档。

接下来是什么?

我们相信MCP在AI构建领域拥有巨大的潜力,我们将继续加大投入。以下是我们路线图上的一些功能:

创建和部署边缘功能

Supabase Edge Functions 允许您从距离用户最近的边缘网络运行自定义的服务器端代码。我们刚刚宣布了可以直接从 Supabase 控制面板创建和部署 Edge Functions 的功能。因此,直接从您常用的 AI 助手创建和部署 Edge Functions 也顺理成章。

本地授权

最新版的 MCP 规范(截至撰写本文时为 2025 年 3 月 26 日)现已包含官方授权支持。这意味着,与目前需要您手动为服务器创建个人访问令牌不同,未来的版本将允许您使用标准的 OAuth 2 登录流程对 Supabase 进行身份验证。该流程大致如下:

  1. 将 Supabase MCP 与您的 AI 应用/IDE 连接
  2. 您的AI应用会打开一个浏览器窗口,您可以在其中直接登录Supabase。
  3. 登录成功后,您将返回到您的AI应用程序,身份验证已完全完成。

这与我们目前在应用程序中看到的任何其他“使用 X 登录”的 OAuth 流程并无不同。我们认为这将简化 MCP 设置流程,并提供对您的 Supabase 帐户更精细、更细致的访问权限。

更好的模式发现

在使用人工智能设计数据库时,最好让 LLM 访问现有数据库模式,这样它在进行修改时(例如alter table)就能准确地知道要执行哪些 SQL 语句。目前,我们提供了一个list_tablesLLM 可以用来获取表的工具。虽然这很有用,但还有许多其他数据库对象(例如视图、触发器、函数和策略)也应该随时可用。

如今,如果 LLM 需要访问这些其他对象,它可以运行通用execute_sql工具从数据库中获取它们information_schema。例如,要获取数据库中的所有触发器,LLM 可以运行以下命令:

select
    event_object_schema as schema,
    event_object_table as table,
    trigger_name,
    event_manipulation as event,
    action_statement as definition
from
    information_schema.triggers
order by
    event_object_schema, event_object_table;

Enter fullscreen mode Exit fullscreen mode

这种方法通常有效,但它要求LLM了解information_schema表的确切结构,由于冗长的SQL查询会消耗大量令牌,并且在解析结果时容易出错。我们认为,更结构化、更简洁的查询方法可以提高数据发现率并减少令牌的过度使用。敬请期待!

更多保护措施

我们当中有些人对人工智能在数据库管理方面的依赖过高。Supabase 支持数据库分支,允许您在设计新功能时创建独立的开发数据库,​​并在准备就绪后将其合并。这意味着,如果出现严重错误,您可以轻松地将分支重置到早期版本,并从中断的地方继续开发。

我们的 MCP 服务器目前已经支持分支,但我们认为还可以添加更多保护措施,例如自动检测破坏性操作并在执行前要求确认。

开始使用 Supabase MCP

我们构建了 Supabase MCP 服务器,旨在弥合 AI 工具和数据库之间的差距,让您专注于构建,而不是在工具之间进行上下文切换。

MCP 协议正在不断发展,例如新增的Streamable HTTP 传输方案,该方案支持完全无状态的服务器,无需建立长时间连接。我们正在密切关注这些进展,并评估它们将如何提升 Supabase MCP 的使用体验。

如果您遇到问题或有任何关于新增工具的想法,请在 GitHub 代码库中提交 issue。我们尤其希望了解您在使用模式发现、数据库分支和其他安全功能方面的体验,以便我们不断完善其保护机制。

查看我们的文档,了解最新更新和使用 Supabase MCP 可以构建的示例。

发布周 14

主舞台

第一天 - Supabase UI 库;
第二天 - Supabase Edge 函数:从控制面板部署 + Deno 2.1;
第三天 - 实时:从数据库广播;
第四天 - 用于简化数据库管理的声明式模式;
第五天 - Supabase MCP 服务器

构建阶段

社区聚会

文章来源:https://dev.to/supabase/supabase-mcp-server-4jh9