Supabase MCP服务器
用于自托管Supabase实例的综合模型上下文协议服务器
在使用自托管的Supabase实例和Claude时,我根据自己的需要构建了这个MCP服务器。我想它可能对其他人有用,所以在这里! 🚀
此服务器提供 42工具 涵盖了从数据库操作到边缘功能的所有内容——基本上是你可以在Supabase仪表板上做的所有事情,但要通过Claude。
这是怎么回事?
当你运行自己的Supabase实例并希望Claude帮助你管理它时,现有的工具非常有限。因此,我构建了这个全面的MCP服务器,让Claude可以完全访问:
- 🔐 认证 -用户注册、登录、会话管理
- 📊 数据库 -具有智能查询构建的完整CRUD操作
- 🔄 实时 -订阅更改、创建频道、广播消息
- 📁 存储 -文件上传、下载、bucket管理
- 🛡️ 安全 -行级安全(RLS)策略和权限
- ⚡ 边缘功能 -部署、调用和管理无服务器功能
- 🗂️ 模式 -探索表、列和关系
- 🔍 SQL语言 -具有智能回退的原始SQL执行
特性
- 完成仪表板奇偶校验 -几乎所有你能在Supabase工作室做的事情
- 智能错误处理 -出现问题时的有用故障排除提示
- 多次倒退 -如果一种方法失败,它会自动尝试其他方法
- 内置边缘功能 -用于测试的本地Node.js无服务器处理程序
- 增强型SQL -原始SQL不可用时的客户端聚合
- TypeScript -完全打字,以获得更好的开发体验
快速开始
1.安装依赖项
npm install2.建设项目
npm run build3.配置克劳德桌面
复制 mcp.json.example 转到您的Claude Desktop配置并更新:
{
"mcpServers": {
"supabase": {
"command": "node",
"args": ["/path/to/self-hosted-supabase-mcp/dist/index.js"],
"env": {
"SUPABASE_URL": "http://localhost:54321",
"SUPABASE_ANON_KEY": "your_anon_key_here",
"SUPABASE_SERVICE_ROLE_KEY": "your_service_role_key_here"
}
}
}
}4.重新启动克劳德桌面
你可以走了!Claude现在可以访问所有42个Supabase工具。
可用工具
连接和身份验证(5个工具)
connection_test-测试您的Supabase连接auth_signup-注册新用户auth_login-对用户进行身份验证auth_get_user-获取当前用户信息auth_logout-注销用户
数据库操作(6个工具)
db_select-使用过滤器和排序查询数据db_insert-插入新记录db_update-更新现有记录db_delete-删除记录db_upsert-插入或更新(带冲突处理)db_count-使用筛选器计数记录
模式探索(3个工具)
schema_get_tables-列出所有表格schema_get_columns-获取列信息schema_get_relations-探索国外关键关系
存储管理(6个工具)
storage_list_buckets-列出存储桶storage_create_bucket-创建新桶storage_delete_bucket-移除水桶storage_list_files-浏览文件storage_upload_file-上传文件(base64)storage_download_file-下载文件storage_delete_file-删除文件storage_get_public_url-获取公共文件URL
边缘功能(4个工具)
edge_list_functions-列出已部署的功能edge_deploy_function-部署新功能edge_invoke_function-执行功能edge_remove_function-清理功能
实时(3个工具)
realtime_subscribe-监听数据库更改realtime_channel_create-设置广播频道realtime_broadcast-向频道发送消息
SQL和高级查询(6个工具)
sql_execute-使用智能解析运行SQL查询sql_call_rpc-执行存储过程sql_aggregate-计数、求和、平均值、最小值、最大值操作sql_execute_raw-具有多种回退方法的原始SQLsql_aggregate_enhanced-具有客户端处理功能的高级聚合sql_analyze_table-获取详细的表格统计信息
安全和RLS(6个工具)
security_check_rls_status-检查行级安全状态security_enable_rls-在表上启用RLSsecurity_disable_rls-禁用RLSsecurity_create_policy-创建RLS策略security_list_policies-列出现有政策security_drop_policy-删除策略security_test_policy-测试策略有效性
是什么让这与众不同?
大多数用于数据库的MCP服务器都是非常基本的。这个不同,因为:
- 它实际上适用于自托管的Supabase -许多工具都假设使用云Supabase
- 全面覆盖 -42个工具,涵盖Supabase的每个主要功能
- 智能回退 -如果直接方法失败,它会尝试其他方法
- 内置边缘功能 -用于测试的本地Node.js无服务器处理程序
- 真正的故障排除帮助 -当某个东西坏了,它会告诉你如何修复它
配置选项
您可以通过环境变量自定义服务器:
SUPABASE_URL-您的Supabase实例URLSUPABASE_ANON_KEY-匿名/公钥SUPABASE_SERVICE_ROLE_KEY-服务角色密钥(用于管理员操作)MCP_SERVER_NAME-自定义服务器名称(默认:“suabase-mcp服务器”)MCP_SERVER_VERSION-自定义版本(默认:“1.0.0”)
发展
# Install dependencies
npm install
# Build for production
npm run build
# Development mode (watch for changes)
npm run dev
# Clean build artifacts
npm run clean故障排除
连接问题
- 确保您的Supabase实例正在运行
- 检查URL和密钥是否正确
- 验证与Supabase实例的网络连接
身份验证问题
- 可能已启用电子邮件确认,但未配置SMTP
- 尝试在Supabase仪表板中禁用电子邮件确认
- 检查用户是否已存在
SQL/数据库问题
- 一些高级SQL功能需要服务角色密钥
- RLS策略可能阻止访问
- 使用
db_select而不是原始SQL,以获得更好的兼容性
贡献
发现错误或想添加功能?欢迎打开一个问题或PR!这是一个个人项目,但我很乐意合作。
许可证
麻省理工学院-随心所欲地使用它!
我为什么建造这个
我对Claude可用的Supabase集成有限感到沮丧,尤其是对于自托管实例。想要一个全面的东西,可以处理我抛出的一切。希望它也能帮助你!
______________________________________________________________________
