Skip to main content
Glama

Supabase MCP 服务器

模型上下文协议 (MCP) 服务器允许 Claude 和其他 LLM 与 Supabase 交互以对 Postgres 表执行 CRUD 操作。

特征

  • 数据库操作:

    • 使用过滤器查询数据

    • 插入数据

    • 更新数据

    • 删除数据

    • 列出表格

Related MCP server: ExecuteAutomation Database Server

先决条件

  • Node.js(v16 或更高版本)

  • npm 或 yarn

  • 带有 API 密钥的 Supabase 项目

安装

选项 1:从 npm 安装(推荐)

该软件包已发布在 npm 上!您可以使用以下命令全局安装它:

npm install -g supabase-mcp

或者在您的项目中本地:

npm install supabase-mcp

选项 2:克隆存储库

git clone https://github.com/Cappahccino/SB-MCP.git cd SB-MCP npm install npm run build

配置

使用您的 Supabase 凭证创建一个.env文件:

# Supabase credentials SUPABASE_URL=your_supabase_project_url SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key # MCP server configuration MCP_SERVER_PORT=3000 MCP_SERVER_HOST=localhost MCP_API_KEY=your_secret_api_key

与 Claude 一起使用

为了兼容 Claude,需要特定的传输模式。此软件包提供了用于 Claude 集成的专用二进制文件:

在 Claude Desktop MCP 配置中

"supabase": { "command": "npx", "args": [ "-y", "supabase-mcp@latest", "supabase-mcp-claude" ], "env": { "SUPABASE_URL": "your_supabase_project_url", "SUPABASE_ANON_KEY": "your_supabase_anon_key", "SUPABASE_SERVICE_ROLE_KEY": "your_service_role_key", "MCP_API_KEY": "your_secret_api_key" } }

确保在配置中设置了所需的环境变量。Claude 将使用 stdio 传输进行通信。

使用 Claude Binary 进行手动测试

要在 Claude 之外进行测试,您可以运行:

npm run start:claude

或者如果全局安装:

supabase-mcp-claude

用作独立服务器

全局安装后:

supabase-mcp

这将在http://localhost:3000 (或 .env 文件中指定的端口)启动 MCP 服务器。

代码中的用法

您还可以在自己的 Node.js 项目中使用 supabase-mcp 作为库:

import { createServer, mcpConfig, validateConfig } from 'supabase-mcp'; // Validate configuration validateConfig(); // Create the server const app = createServer(); // Start the server app.listen(mcpConfig.port, mcpConfig.host, () => { console.log(`Supabase MCP server running at http://${mcpConfig.host}:${mcpConfig.port}`); });

故障排除

常见问题和解决方案

1.“端口XXXX已被使用”

HTTP 服务器会自动尝试查找可用端口。您可以通过更改.env文件中的MCP_SERVER_PORT值来手动指定其他端口。

2.“缺少必需的环境变量”

确保您有一个包含所有必需值的正确.env文件,或者您已在系统中设置了环境变量。

3. “TypeError:没有‘new’就无法调用类构造函数服务器”

如果您看到此错误,则可能是您正在运行该软件包的旧版本。请更新到最新版本:

npm install -g supabase-mcp@latest

4. Claude 的 JSON 解析错误

确保您使用的是 Claude 特定的二进制文件( supabase-mcp-claude )而不是常规的 HTTP 服务器( supabase-mcp )。

5. Claude 请求超时

这通常意味着 Claude 发起了连接,但服务器无法及时响应。请检查:

  • 您的 Supabase 凭证正确吗?

  • 您的服务器设置是否正确并且正在运行?

  • 有什么东西阻碍了连接吗?

工具参考

数据库工具

  1. 查询数据库

    • 参数:

      • table (字符串):要查询的表的名称

      • select (字符串,可选):以逗号分隔的列列表(默认值:“*”)

      • query (对象,可选):过滤条件

  2. 插入数据

    • 参数:

      • table (字符串):表的名称

      • data (对象或对象数组):要插入的数据

  3. 更新数据

    • 参数:

      • table (字符串):表的名称

      • data (对象):要更新为键值对的数据

      • query (对象):更新的过滤条件

  4. 删除数据

    • 参数:

      • table (字符串):表的名称

      • query (对象):删除的过滤条件

  5. 列表表

    • 参数:无

版本历史记录

  • 1.0.0:初始版本

  • 1.0.1:添加自动端口选择

  • 1.0.2:修复协议兼容性问题

  • 1.0.3:添加了 JSON-RPC 支持

  • 1.1.0:使用官方 MCP SDK 完全重写

  • 1.2.0:添加了单独的 Claude 传输并修复了端口冲突问题

  • 1.3.0:更新以提高与 TypeScript 项目的兼容性

  • 1.4.0:根据 Supabase 社区最佳实践修复了 Claude stdio 传输集成

  • 1.5.0:删除了 Edge Function 支持,以提高稳定性并专注于数据库操作

执照

麻省理工学院

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Cappahccino/SB-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server