返回市场
超级基础-MCP

超级基础-MCP

作者:NightTrek14 星标更新:2024-12-13

项目介绍

Supabase MCP Server

这是一个用于与Supabase数据库交互的模型上下文协议(MCP)服务器。该服务器提供了通过MCP接口查询表和生成TypeScript类型的工具。

特性

  • 查询表:支持对任何表执行查询,包括:

    • 模式选择
    • 列过滤
    • 支持多个操作符的where子句
    • 分页
    • 错误处理
  • 类型生成:为您的数据库生成TypeScript类型:

    • 支持任何模式(公共、认证、API等)
    • 可以与本地或远程Supabase项目一起使用
    • 直接输出到控制台
    • 自动检测项目引用

预备条件

  1. Node.js(v16或更高版本)
  2. 一个Supabase项目(可以是本地或托管的)
  3. Supabase CLI(用于类型生成)

安装

  1. 克隆仓库:
git clone https://github.com/yourusername/supabase-mcp-server.git
cd supabase-mcp-server
  1. 安装依赖项:
npm install
  1. 安装Supabase CLI(类型生成所需):
# 使用npm
npm install -g supabase

# 或在macOS上使用Homebrew
brew install supabase/tap/supabase

配置

  1. 获取您的Supabase凭证:

    • 对于托管项目:

      1. 转到您的Supabase项目仪表板
      2. 导航至项目设置 > API
      3. 复制项目URL和服务角色密钥(不是匿名密钥)
    • 对于本地项目:

      1. 启动您的本地Supabase实例
      2. 使用本地URL(通常是http://localhost:54321)
      3. 使用您的本地服务角色密钥
  2. 配置环境变量:

# 创建一个.env文件(此文件将被git忽略)
echo "SUPABASE_URL=your_project_url
SUPABASE_KEY=your_service_role_key" > .env
  1. 构建服务器:
npm run build

与Claude Desktop集成

  1. 打开Claude Desktop设置:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. 添加服务器配置:

{
  "mcpServers": {
    "supabase": {
      "command": "node",
      "args": ["/绝对路径/to/supabase-mcp-server/build/index.js"],
      "env": {
        "SUPABASE_URL": "your_project_url",
        "SUPABASE_KEY": "your_service_role_key"
      }
    }
  }
}

与VSCode扩展集成

  1. 打开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_m _mcp_settings.json
    • Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  2. 添加服务器配置(与Claude Desktop相同格式)。

使用示例

查询表

// 带有模式选择和where子句的查询
<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>

生成类型

// 为公共模式生成类型
<use_mcp_tool>
<server_name>supabase</server_name>
<tool_name>generate_types</tool_name>
<arguments>
{
  "schema": "public"
}
</arguments>
</use_mcp_tool>

可用工具

query_table

查询特定表,支持模式选择和where子句。

参数:

  • schema(可选):数据库模式(默认为公共)
  • table(必需):要查询的表名
  • select(可选):逗号分隔的列列表
  • where(可选):条件数组,包含:
    • column:列名
    • operator:其中之一:eq, neq, gt, gte, lt, lte, like, ilike, is
    • value:比较值

generate_types

为您的Supabase数据库模式生成TypeScript类型。

参数:

  • schema(可选):数据库模式(默认为公共)

故障排除

类型生成问题

  1. 确保已安装Supabase CLI:
supabase --version
  1. 对于本地项目:

    • 确保您的本地Supabase实例正在运行
    • 验证您的服务角色密钥是否正确
  2. 对于托管项目:

    • 确认您的项目引用正确(从URL中提取)
    • 验证您使用的是服务角色密钥,而不是匿名密钥

查询问题

  1. 检查您的模式和表名
  2. 验证select和where子句中的列名
  3. 确保您的服务角色密钥具有必要的权限

贡献

  1. 分叉仓库
  2. 创建功能分支:git checkout -b feature/my-feature
  3. 提交更改:git commit -am '添加我的功能'
  4. 推送到分支:git push origin feature/my-feature
  5. 提交拉取请求

许可证

MIT许可证 - 查看LICENSE文件获取详细信息