Supabase MCP Server 使用说明

项目简介

Supabase MCP Server 是一个功能丰富的 MCP 服务器,旨在让 Cursor 和 Windsurf 等 MCP 客户端能够安全地与 Supabase 数据库进行交互。它提供了一系列工具,用于数据库管理、SQL 查询执行以及 Supabase Management API 的访问,并内置了安全控制机制。

主要功能点

  • 兼容性广泛: 兼容 Cursor, Windsurf, Cline 等支持 'stdio' 协议的 MCP 客户端。
  • 安全可控: 支持 SQL 查询执行的只读和读写模式控制。
  • 事务处理: 为直接和连接池数据库连接提供强大的事务处理能力。
  • Supabase 管理: 通过 Supabase Management API 管理 Supabase 项目。
  • 用户管理: 通过 Python SDK 使用 Supabase Auth Admin 方法管理用户。
  • 预置工具: 提供预构建工具,帮助 Cursor & Windsurf 更有效地与 MCP 协同工作。
  • 简易安装: 通过包管理器 (uv, pipx, etc.) 实现简单的安装和设置。

安装步骤

  1. 环境准备: 确保已安装 Python 3.12+ 和 PostgreSQL 16+。PostgreSQL 必须在安装项目依赖之前安装,因为 psycopg2 编译时需要 PostgreSQL 开发库。

  2. 安装 MCP Server: 使用 Python 包管理器安装 'supabase-mcp-server'。推荐使用 'pipx' 或 'uv'。

    # 如果安装了 pipx (推荐)
    pipx install supabase-mcp-server
    
    # 如果安装了 uv
    uv pip install supabase-mcp-server

    或者,您也可以从源代码安装,或通过 Smithery.ai 进行安装,具体步骤请参考仓库 README 文档。

服务器配置

MCP 服务器需要配置数据库连接设置,支持连接本地或远程 Supabase 实例。

MCP 客户端配置 (以 JSON 格式)

在 MCP 客户端(如 Cursor 或 Windsurf)中配置 Supabase MCP Server 时,您需要提供服务器的启动命令。以下是配置示例,您需要根据您的实际安装情况进行调整。

Cursor 配置示例 (mcp.json):

{
  "mcpServers": {
    "supabase": {
      "command": "supabase-mcp-server"
    }
  }
}

Windsurf 配置示例 (mcp_config.json):

{
  "mcpServers": {
    "supabase": {
      "command": "/Users/username/.local/bin/supabase-mcp-server", // 请替换为 supabase-mcp-server 的实际路径
      "env": {
        "SUPABASE_PROJECT_REF": "your-project-ref",
        "SUPABASE_DB_PASSWORD": "your-db-password",
        "SUPABASE_REGION": "us-east-1",
        "SUPABASE_ACCESS_TOKEN": "your-access-token"
      }
    }
  }
}

配置参数说明:

  • 'command': 必需。MCP 服务器的启动命令。通常为 'supabase-mcp-server'(如果已添加到 PATH 环境变量)或者 'uv run supabase-mcp-server' (如果使用 uv 安装)。您可以使用 'which supabase-mcp-server' (macOS/Linux) 或 'where supabase-mcp-server' (Windows) 命令查找服务器可执行文件的完整路径,并将其填入配置中。
  • 'env': 可选。用于配置数据库连接的环境变量。如果需要连接到远程 Supabase 实例,您需要配置以下环境变量:
    • 'SUPABASE_PROJECT_REF': 您的 Supabase 项目引用 (Project Ref)。
    • 'SUPABASE_DB_PASSWORD': 您的数据库密码。
    • 'SUPABASE_REGION': (可选) Supabase 区域,默认为 'us-east-1'。
    • 'SUPABASE_ACCESS_TOKEN': (可选) 用于访问 Management API 的个人访问令牌。

环境变量配置方式:

环境变量可以通过多种方式配置,优先级从高到低为:

  1. 环境变量: 直接在运行环境中设置环境变量(最高优先级)。
  2. 本地 '.env' 文件: 在当前工作目录下创建 '.env' 文件。
  3. 全局配置文件:
    • Windows: '%APPDATA%/supabase-mcp/.env'
    • macOS/Linux: '~/.config/supabase-mcp/.env'
  4. 默认设置: 如果以上配置均未找到,服务器将使用默认设置连接本地 Supabase 实例 (用于本地开发)。

基本使用方法

配置完成后,在 Cursor 或 Windsurf 等 MCP 客户端中选择已配置的 Supabase MCP Server,即可开始使用服务器提供的工具。工具包括:

  • 'get_db_schemas': 列出所有数据库模式。
  • 'get_tables': 列出模式中的所有表。
  • 'get_table_schema': 获取表的详细结构。
  • 'execute_sql_query': 执行原始 SQL 查询。
  • 'send_management_api_request': 发送 Supabase Management API 请求。
  • 'live_dangerously': 切换安全模式。
  • 'get_management_api_spec': 获取 Management API 规范。
  • 'get_management_api_safety_rules': 获取 Management API 安全规则。
  • 'get_auth_admin_methods_spec': 获取 Auth Admin 方法规范。
  • 'call_auth_admin_method': 调用 Auth Admin 方法。

具体工具的使用方法和参数请参考工具的描述信息。您可以在 MCP 客户端中查看工具列表和工具的详细描述。

信息

分类

数据库与文件