Supabase MCP Server

by Cappahccino
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Enables CRUD operations on Postgres tables, including querying data with filters, inserting data, updating data, deleting data, and listing tables in a Supabase project.

Supabase MCP 服务器

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

特征

  • 数据库操作:
    • 使用过滤器查询数据
    • 插入数据
    • 更新数据
    • 删除数据
    • 列出表格

先决条件

  • 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

模型上下文协议服务器使 Claude 和其他 LLM 能够通过自然语言执行数据库操作并调用 Supabase 中的边缘函数。

  1. Features
    1. Prerequisites
      1. Installation
        1. Option 1: Install from npm (recommended)
        2. Option 2: Clone the repository
      2. Configuration
        1. Usage with Claude
          1. In Claude Desktop MCP Config
          2. Manual Testing with Claude Binary
        2. Usage as a Standalone Server
          1. Usage in Your Code
            1. Troubleshooting
              1. Common Issues and Solutions
            2. Tools Reference
              1. Database Tools
            3. Version History
              1. License
                ID: gf6hxhptcd