Supabase MCP 服务器
模型上下文协议 (MCP) 服务器允许 Claude 和其他 LLM 与 Supabase 交互以对 Postgres 表执行 CRUD 操作。
特征
数据库操作:
使用过滤器查询数据
插入数据
更新数据
删除数据
列出表格
Related MCP server: ExecuteAutomation Database Server
先决条件
Node.js(v16 或更高版本)
npm 或 yarn
带有 API 密钥的 Supabase 项目
安装
选项 1:从 npm 安装(推荐)
该软件包已发布在 npm 上!您可以使用以下命令全局安装它:
或者在您的项目中本地:
选项 2:克隆存储库
配置
使用您的 Supabase 凭证创建一个.env文件:
与 Claude 一起使用
为了兼容 Claude,需要特定的传输模式。此软件包提供了用于 Claude 集成的专用二进制文件:
在 Claude Desktop MCP 配置中
确保在配置中设置了所需的环境变量。Claude 将使用 stdio 传输进行通信。
使用 Claude Binary 进行手动测试
要在 Claude 之外进行测试,您可以运行:
或者如果全局安装:
用作独立服务器
全局安装后:
这将在http://localhost:3000 (或 .env 文件中指定的端口)启动 MCP 服务器。
代码中的用法
您还可以在自己的 Node.js 项目中使用 supabase-mcp 作为库:
故障排除
常见问题和解决方案
1.“端口XXXX已被使用”
HTTP 服务器会自动尝试查找可用端口。您可以通过更改.env文件中的MCP_SERVER_PORT值来手动指定其他端口。
2.“缺少必需的环境变量”
确保您有一个包含所有必需值的正确.env文件,或者您已在系统中设置了环境变量。
3. “TypeError:没有‘new’就无法调用类构造函数服务器”
如果您看到此错误,则可能是您正在运行该软件包的旧版本。请更新到最新版本:
4. Claude 的 JSON 解析错误
确保您使用的是 Claude 特定的二进制文件( supabase-mcp-claude )而不是常规的 HTTP 服务器( supabase-mcp )。
5. Claude 请求超时
这通常意味着 Claude 发起了连接,但服务器无法及时响应。请检查:
您的 Supabase 凭证正确吗?
您的服务器设置是否正确并且正在运行?
有什么东西阻碍了连接吗?
工具参考
数据库工具
查询数据库
参数:
table(字符串):要查询的表的名称select(字符串,可选):以逗号分隔的列列表(默认值:“*”)query(对象,可选):过滤条件
插入数据
参数:
table(字符串):表的名称data(对象或对象数组):要插入的数据
更新数据
参数:
table(字符串):表的名称data(对象):要更新为键值对的数据query(对象):更新的过滤条件
删除数据
参数:
table(字符串):表的名称query(对象):删除的过滤条件
列表表
参数:无
版本历史记录
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 支持,以提高稳定性并专注于数据库操作
执照
麻省理工学院