Windsurf Supabase MCP 服务器使用说明

项目简介

Windsurf Supabase MCP 服务器是一个基于 Model Context Protocol (MCP) 标准构建的后端服务,专为 Windsurf 编辑器优化,旨在无缝集成 Supabase 数据库。该服务器在标准 MCP 协议的基础上,针对 Windsurf 编辑器的需求进行了增强,提供了更强大的错误处理、优化的响应格式以及高效的 SQL 查询处理能力。通过此服务器,Windsurf 编辑器可以更便捷地与 Supabase 数据库进行交互,实现自然语言驱动的数据访问和操作。

主要功能点

  • 资源管理: 服务器能够列出并提供 Supabase 数据库中表的 OpenAPI 规范作为资源,允许客户端了解数据库结构和可用接口。
  • 工具执行: 内置 'postgrestRequest' 和 'sqlToRest' 两个核心工具:
    • 'postgrestRequest': 允许客户端直接向 Supabase 后端的 PostgREST API 发送 HTTP 请求,执行数据库操作。
    • 'sqlToRest': 能够将 SQL 查询语句转换为对 PostgREST API 的 RESTful 请求,简化复杂查询的构建。
  • Windsurf 优化:
    • 增强错误处理: 提供结构化的、更易于理解的错误响应,帮助开发者快速定位和解决问题。
    • 优化响应格式: 标准化 JSON 响应结构,并包含 UI 组件所需的元数据,提升 Windsurf 编辑器的用户体验。
    • 灵活身份验证: 支持 API 密钥和 Bearer Token 身份验证,保障数据访问安全。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/hertzfelt/windsurf-supabase-mcp.git
    cd windsurf-supabase-mcp
  2. 安装依赖:

    npm install
  3. 配置 Supabase 连接: 复制 '.env.example' 文件并重命名为 '.env',然后根据你的 Supabase 项目信息,修改 '.env' 文件中的以下环境变量:

    SUPABASE_URL=你的_Supabase_API_URL  # 例如:https://your-project.supabase.co/rest/v1
    SUPABASE_KEY=你的_Supabase_API_密钥  # 例如:你的 anon 公钥或 service_role 密钥

    请确保替换为你实际的 Supabase API URL 和密钥。

服务器配置 (MCP 客户端配置)

以下 JSON 配置信息用于 MCP 客户端连接 Windsurf Supabase MCP 服务器。你需要将此配置添加到你的 MCP 客户端设置中。

{
  "serverName": "Windsurf Supabase MCP Server",
  "command": "node",
  "args": [
    "dist/stdio.cjs",
    "--apiUrl",
    "YOUR_SUPABASE_URL",  // 请替换为你的 Supabase API URL,例如:https://your-project.supabase.co/rest/v1
    "--schema",
    "public"             // 数据库 schema,默认为 public,如果你的 schema 不同,请替换
  ]
}

注意:

  • 'YOUR_SUPABASE_URL' 和 'public' 需要根据你的实际 Supabase 项目配置进行替换。
  • 确保 MCP 客户端能够执行 'node' 命令,并且可以访问到 'dist/stdio.cjs' 文件。

基本使用方法

  1. 启动服务器: 在仓库根目录下,运行以下命令启动 MCP 服务器:

    npm run start

    服务器将通过标准输入/输出 (stdio) 与 MCP 客户端进行通信。

  2. 配置 MCP 客户端: 将上述提供的服务器配置信息添加到你的 MCP 客户端中。

  3. 使用工具: 在 MCP 客户端中,你可以调用 'postgrestRequest' 工具直接执行 PostgREST API 请求,例如查询 'todos' 表的数据:

    {
      "tool_call": {
        "name": "postgrestRequest",
        "arguments": {
          "method": "GET",
          "path": "/todos"
        }
      }
    }

    或者使用 'sqlToRest' 工具将 SQL 查询转换为 REST 请求:

    {
      "tool_call": {
        "name": "sqlToRest",
        "arguments": {
          "sql": "SELECT * FROM todos WHERE is_completed = false"
        }
      }
    }

    MCP 客户端会将这些请求发送到 Windsurf Supabase MCP 服务器,服务器会处理请求并返回结果。

通过 Windsurf Supabase MCP 服务器,Windsurf 编辑器可以方便地利用 Supabase 数据库的强大功能,实现更智能、更高效的应用开发。

信息

分类

数据库与文件