Supabase MCP 服务器
用于与 Supabase 数据库交互的模型上下文协议 (MCP) 服务器。该服务器提供通过 MCP 接口查询表和生成 TypeScript 类型的工具。
特征
- 查询表:对任何表执行查询,支持以下内容:
- 模式选择
- 列过滤
- 具有多个运算符的 Where 子句
- 分页
- 错误处理
- 类型生成:为您的数据库生成 TypeScript 类型:
- 支持任何模式(公共、授权、API 等)
- 适用于本地和远程 Supabase 项目
- 直接输出到控制台
- 自动项目参考检测
先决条件
- Node.js(v16 或更高版本)
- Supabase 项目(本地或托管)
- Supabase CLI(用于类型生成)
安装
- 克隆存储库:
git clone https://github.com/yourusername/supabase-mcp-server.git
cd supabase-mcp-server
- 安装依赖项:
- 安装 Supabase CLI(类型生成所需):
# Using npm
npm install -g supabase
# Or using Homebrew on macOS
brew install supabase/tap/supabase
配置
- 获取您的 Supabase 凭证:
- 对于托管项目:
- 转到您的 Supabase 项目仪表板
- 导航至项目设置 > API
- 复制项目 URL 和 service_role 密钥(不是 anon 密钥)
- 对于本地项目:
- 启动本地 Supabase 实例
- 使用本地 URL(通常为http://localhost:54321 )
- 使用本地 service_role 密钥
- 配置环境变量:
# Create a .env file (this will be ignored by git)
echo "SUPABASE_URL=your_project_url
SUPABASE_KEY=your_service_role_key" > .env
- 构建服务器:
与 Claude Desktop 集成
- 打开Claude桌面设置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
- 添加服务器配置:
{
"mcpServers": {
"supabase": {
"command": "node",
"args": ["/absolute/path/to/supabase-mcp-server/build/index.js"],
"env": {
"SUPABASE_URL": "your_project_url",
"SUPABASE_KEY": "your_service_role_key"
}
}
}
}
与 VSCode 扩展集成
- 打开 VSCode 设置:
- macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
- Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- 添加服务器配置(与 Claude Desktop 相同的格式)。
使用示例
查询表
// Query with schema selection and where clause
<use_mcp_tool>
<server_name>supabase</server_name>
<tool_name>query_table</tool_name>
<arguments>
{
"schema": "public",
"table": "users",
"select": "id,name,email",
"where": [
{
"column": "is_active",
"operator": "eq",
"value": true
}
]
}
</arguments>
</use_mcp_tool>
生成类型
// Generate types for public schema
<use_mcp_tool>
<server_name>supabase</server_name>
<tool_name>generate_types</tool_name>
<arguments>
{
"schema": "public"
}
</arguments>
</use_mcp_tool>
可用工具
查询表
使用模式选择和 where 子句支持查询特定表。
参数:
schema
(可选):数据库模式(默认为公共)table
(必填):要查询的表的名称select
(可选):以逗号分隔的列列表where
(可选):条件数组,包含:column
:列名operator
:eq、neq、gt、gte、lt、lte、like、ilike、is 之一value
:要比较的值
生成类型
为您的 Supabase 数据库模式生成 TypeScript 类型。
参数:
故障排除
类型生成问题
- 确保已安装 Supabase CLI:
- 对于本地项目:
- 确保您的本地 Supabase 实例正在运行
- 验证您的 service_role 键是否正确
- 对于托管项目:
- 确认您的项目参考正确(从 URL 中提取)
- 验证您使用的是 service_role 密钥,而不是 anon 密钥
查询问题
- 检查您的架构和表名称
- 验证 select 和 where 子句中的列名
- 确保您的 service_role 密钥具有必要的权限
贡献
- 分叉存储库
- 创建你的功能分支:
git checkout -b feature/my-feature
- 提交您的更改:
git commit -am 'Add my feature'
- 推送到分支:
git push origin feature/my-feature
- 提交拉取请求
执照
MIT 许可证 - 详情请参阅许可证文件