Skip to main content
Glama
Cappahccino

Supabase MCP Server

by Cappahccino

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 支持,以提高稳定性并专注于数据库操作

执照

麻省理工学院

A
license - permissive license
-
quality - not tested
D
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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