Supabase MCP 服务器🚀
🔥 强大的模型上下文协议 (MCP) 服务器,可通过 Cursor 的 Composer 和 Codeium 的 Cascade 为您的 Supabase PostgreSQL 数据库提供全面的管理控制。此工具提供全面的表操作、记录管理、模式修改等功能,可实现无缝的数据库管理。
📚 目录
Related MCP server: Supabase MCP Server
🔧 先决条件
Node.js >= 16.x
npm >= 8.x
Supabase 项目包括:
项目 ID
数据库密码
PostgreSQL 连接字符串
Cursor IDE 或 Codeium 的 Cascade(针对付费用户)
🚀 快速入门
📥 安装
# Clone the repository
git clone https://github.com/Quegenx/supabase-mcp-server.git
cd supabase-mcp-server
# Install dependencies
npm install
# Build the project
npm run build⚙️ 配置
安装依赖项并构建项目:
npm install npm run build在 Cursor 的 MCP 设置中,使用以下命令添加服务器:
/opt/homebrew/bin/node /path/to/dist/index.js postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres代替:
/path/to/dist/index.js替换为您的实际路径[PROJECT-ID]替换为您的 Supabase 项目 ID[PASSWORD]替换为您的数据库密码
注意:请确保您的数据库凭证安全,切勿将其提交到版本控制中。
🎯 集成
光标 MCP 集成
模型上下文协议 (MCP) 允许您为 Cursor 中的代理 LLM 提供自定义工具。该服务器可以与 Cursor 的 Composer 功能集成,通过自然语言命令直接访问所有数据库管理工具。
在 Cursor 中设置
打开“光标设置”>“功能”>“MCP”
点击“+ 添加新的 MCP 服务器”按钮
填写模态表单:
名称:“Supabase MCP”(或您喜欢的任何昵称)
类型:
command(stdio 传输)命令:包含连接详细信息的完整命令字符串
首先构建项目:
npm install npm run build获取你的 Node.js 路径:
# On Mac/Linux which node # On Windows where node添加服务器命令:
/path/to/node /path/to/dist/index.js postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres代替:
/path/to/node替换为你的实际 Node.js 路径(来自步骤 5)/path/to/dist/index.js替换为您构建的 JavaScript 文件的实际路径[PROJECT-ID]替换为您的 Supabase 项目 ID[PASSWORD]替换为您的数据库密码
点击“添加服务器”,然后点击右上角的刷新按钮
使用 Cursor 中的工具
当你描述数据库任务时,Composer Agent 会自动检测并使用相关工具。例如:
“列出我的数据库中的所有表”
“创建一个新的用户表”
“为电子邮件列添加索引”
当代理使用工具时,您会看到:
提示批准/拒绝工具调用
工具调用参数(可扩展)
批准后的回应
注意:对于像这样的 stdio 服务器,该命令必须是有效的 shell 命令。如果需要环境变量,请考虑使用包装脚本。
风帆冲浪/级联集成
此 MCP 服务器还支持 Codeium 的 Cascade (Windsurf) 集成。请注意,此功能目前仅适用于付费个人用户(不适用于团队或企业用户)。
使用 Cascade 进行设置
创建或编辑
~/.codeium/windsurf/mcp_config.json:{ "mcpServers": { "supabase-mcp": { "command": "/path/to/node", "args": [ "/path/to/dist/index.js", "postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres" ] } } }快速访问配置:
找到 Cascade 输入上方的工具栏
点击锤子图标
点击“配置”打开 mcp_config.json
在配置中替换:
/path/to/node替换为您的实际 Node.js 路径/path/to/dist/index.js替换为您的实际路径[PROJECT-ID]替换为您的 Supabase 项目 ID[PASSWORD]替换为您的数据库密码
在 Cascade 中:
单击工具栏中的锤子图标
单击“配置”以验证您的设置
点击“刷新”加载 MCP 服务器
单击服务器名称查看可用的工具
Cascade 用户重要须知
仅支持工具功能(无提示或资源)
MCP 工具调用无论成功或失败都会消耗积分
不支持图像输出
仅支持 stdio 传输类型
工具调用可以调用任意服务器实现者编写的代码
Cascade 不承担 MCP 工具调用失败的责任
✨ 特点
🎯 可用的数据库工具
表管理
表:
list_tables、create_table、drop_table、rename_table列:
add_column、drop_column、alter_column记录:
fetch_records、create_record、update_record、delete_record
索引和约束
索引:
list_indexes、create_index、delete_index、update_index约束:
list_constraints、add_constraint、remove_constraint、update_constraint
数据库函数和触发器
函数:
list_functions、create_function、update_function、delete_function触发器:
list_triggers、create_trigger、update_trigger、delete_trigger
安全与访问控制
策略:
list_policies、create_policy、update_policy、delete_policy角色:
list_roles、create_role、update_role、delete_role
存储管理
存储桶:
list_buckets、create_bucket、delete_bucket文件:
delete_file、bulk_delete_files文件夹:
list_folders
数据类型和出版物
枚举类型:
list_enumerated_types、create_enumerated_type、update_enumerated_type、delete_enumerated_type出版物:
list_publications、create_publication、update_publication、delete_publication
实时功能
政策:
list_realtime_policies、create_realtime_policy、update_realtime_policy、delete_realtime_policy频道:
list_realtime_channels、manage_realtime_channels、send_realtime_message、get_realtime_messages管理:
manage_realtime_status、manage_realtime_views
用户管理
授权:
list_users、create_user、update_user、delete_user
直接 SQL 访问
查询:
query——执行自定义 SQL 查询
🚀 主要优点
自然语言控制:通过简单的对话命令管理您的 Supabase 数据库
全面覆盖:全套工具,涵盖表格、记录、索引、功能、安全性等
无缝集成:直接在 Cursor 的 Composer 和 Codeium 的 Cascade 中工作
开发人员友好:减少 IDE 和数据库管理工具之间的上下文切换
安全访问:通过适当的身份验证维护数据库安全
📁 项目结构
supabase-mcp-server/
├── dist/ # Compiled JavaScript files
│ ├── index.d.ts # TypeScript declarations
│ └── index.js # Main JavaScript file
├── src/ # Source code
│ └── index.ts # Main TypeScript file
├── package.json # Project configuration
├── package-lock.json # Dependency lock file
└── tsconfig.json # TypeScript configuration💡 使用方法
配置完成后,MCP 服务器将通过 Cursor 的 Composer 提供所有数据库管理工具。只需描述您想要对数据库执行的操作,AI 就会使用相应的命令。
例子:
📋“显示我的数据库中的所有表”
➕“创建一个包含 id、name 和 email 列的新用户表”
🔍“在用户表的电子邮件列上添加索引”
🔒 安全说明
🔐 确保数据库连接字符串的安全
⚠️ 切勿将敏感凭据提交到版本控制
👮 使用适当的访问控制和权限
🛡️ 验证并清理所有输入以防止 SQL 注入
🛠️ 故障排除
常见连接问题
Node.js 路径问题
确保使用正确的 Node.js 路径
在 Mac/Linux 上:使用
which node找到正确的路径在 Windows 上:使用
where node查找正确的路径将
/usr/local/bin/node替换为您的实际 Node.js 路径
文件路径问题
使用绝对路径而不是相对路径
在 Mac/Linux 上:在项目目录中使用
pwd获取完整路径在 Windows 上:使用
cd获取完整路径例如:
/Users/username/projects/supabase-mcp-server/dist/index.js
MCP 未检测工具
点击 Cursor 的 MCP 设置中的刷新按钮
确保服务器正在运行(没有错误消息)
检查你的连接字符串是否正确
验证您的 Supabase 凭据是否有效
权限问题
确保
dist目录存在(运行npm run build)检查文件权限(在 Unix 系统上为
chmod +x)使用适当的权限运行
npm install
调试模式
在命令前添加DEBUG=true即可查看详细日志:
DEBUG=true /usr/local/bin/node /path/to/dist/index.js [connection-string]特定平台的说明
Windows 用户
# Use this format for the command
"C:\\Program Files\\nodejs\\node.exe" "C:\\path\\to\\dist\\index.js" "postgresql://..."Linux 用户
# Find Node.js path
which node
# Make script executable
chmod +x /path/to/dist/index.js如果您仍然遇到问题,请打开以下问题:
您的操作系统
Node.js 版本(
node --version)完整错误消息
复现步骤
🤝 贡献
欢迎贡献代码!欢迎提交 Pull 请求。
📄 许可证
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.