返回市场
MCP-超能基础服务

MCP-超能基础服务

作者:deploya-labs10 星标更新:2025-03-03

项目介绍

Supabase MCP 服务器

<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/4a363bcd-7c15-47fa-a72a-d159916517f7" /> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/d255388e-cb1b-42ea-a7b2-0928f031e0df" /> <img alt="Supabase" src="https://github.com/user-attachments/assets/d255388e-cb1b-42ea-a7b2-0928f031e0df" height="40" /> </picture> &nbsp;&nbsp; <picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/38db1bcd-50df-4a49-a106-1b5afd924cb2" /> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/82603097-07c9-42bb-9cbc-fb8f03560926" /> <img alt="MCP" src="https://github.com/user-attachments/assets/82603097-07c9-42bb-9cbc-fb8f03560926" height="40" /> </picture> </p> <p align="center"> <strong>让Cursor & Windsurf管理您的Supabase,并自主安全地运行SQL查询。</strong> </p>

Star History Chart

<p align="center"> <a href="https://pypi.org/project/supabase-mcp-server/"><img src="https://img.shields.io/pypi/v/supabase-mcp-server.svg" alt="PyPI 版本" /></a> <a href="https://github.com/alexander-zuev/supabase-mcp-server/actions"><img src="https://github.com/alexander-zuev/supabase-mcp-server/workflows/CI/badge.svg" alt="CI 状态" /></a> <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.12%2B-blue.svg" alt="Python 3.12+" /></a> <a href="https://github.com/astral-sh/uv"><img src="https://img.shields.io/badge/uv-包管理器-blueviolet" alt="uv 包管理器" /></a> <a href="https://pepy.tech/project/supabase-mcp-server"><img src="https://static.pepy.tech/badge/supabase-mcp-server" alt="PyPI 下载量" /></a> <a href="https://modelcontextprotocol.io/introduction"><img src="https://img.shields.io/badge/MCP-服务器-orange" alt="MCP 服务器" /></a> <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-blue.svg" alt="许可证" /></a> </p>

一个功能丰富的MCP服务器,使Cursor和Windsurf能够安全地与Supabase数据库交互。它提供了数据库管理工具、SQL查询执行以及Supabase管理API访问,并内置了安全控制措施。

目录

<p align="center"> <a href="#开始">开始</a> • <a href="#功能概述">功能概述</a> • <a href="#故障排除">故障排除</a> • <a href="#路线图">路线图</a> </p>

✨ 关键特性

  • 💻 兼容支持stdio协议的Cursor、Windsurf、Cline和其他MCP客户端
  • 🔐 控制SQL查询执行的只读和读写模式
  • 🔄 对直接连接和池化数据库连接提供强大的事务处理能力
  • 💻 使用Supabase管理API管理您的Supabase项目
  • 🧑‍💻 使用Supabase Auth Admin方法通过Python SDK管理用户
  • 🔨 预构建工具帮助Cursor & Windsurf更有效地使用MCP
  • 📦 通过包管理器(如uv、pipx等)进行简单的安装和设置

开始

前提条件

安装服务器需要在系统上满足以下条件:

  • Python 3.12+
  • PostgreSQL 16+

如果您计划通过uv安装,请确保已安装

PostgreSQL 安装

⚠️ 重要:必须在安装项目依赖项之前安装PostgreSQL,因为psycopg2在编译时需要PostgreSQL开发库。

MacOS

brew install postgresql@16

Windows

第一步:MCP 服务器安装

自v0.2.0起,我引入了对包安装的支持。您可以使用您喜欢的Python包管理器通过以下方式安装服务器:

# 如果已安装pipx(推荐)
pipx install supabase-mcp-server

# 如果已安装uv
uv pip install supabase-mcp-server

推荐使用pipx,因为它为每个包创建隔离环境。

您也可以手动安装服务器,通过克隆仓库并在根目录下运行pipx install -editable .。

⚠️ 如果遇到psycopg2编译问题,可能缺少PostgreSQL开发包。请参阅上述内容。

从源码安装

如果您想从源码安装,例如用于本地开发:

uv venv
# 在Mac上
source .venv/bin/activate
# 在Windows上
.venv\Scripts\activate
# 以可编辑模式安装包
uv pip install -e .

通过Smithery.ai安装

请报告任何与Smithery相关的问题,因为我尚未对其进行测试。

要通过Smithery自动安装Supabase MCP Server到Claude Desktop:

npx -y @smithery/cli install @alexander-zuev/supabase-mcp --client claude

第二步:配置

安装包后,您需要配置数据库连接设置。该服务器支持本地和远程Supabase实例。

本地Supabase实例(默认)

服务器预配置为使用默认设置连接到本地Supabase实例:

  • 主机:127.0.0.1:54322
  • 密码:postgres

💡 只要您没有修改默认设置并且想要连接到本地实例,就不需要设置环境变量。

远程Supabase实例

⚠️ 重要警告:会话池连接不被支持,目前也没有计划支持。如果您认为有必要支持这一点,请告知我。

对于远程Supabase项目,您需要配置:

  • SUPABASE_PROJECT_REF - 您的项目参考(可在项目URL中找到)
  • SUPABASE_DB_PASSWORD - 您的数据库密码
  • SUPABASE_REGION - (可选)默认为us-east-1
  • SUPABASE_ACCESS_TOKEN - (可选)用于管理API访问

您可以在项目仪表板URL中获取您的SUPABASE_PROJECT_REF:

  • https://supabase.com/dashboard/project/<supabase-project-ref>

该服务器支持所有Supabase区域:

  • us-west-1 - 西部美国(北加州)
  • us-east-1 - 东部美国(北弗吉尼亚州)- 默认
  • us-east-2 - 东部美国(俄亥俄州)
  • ca-central-1 - 加拿大(中部)
  • eu-west-1 - 西欧(爱尔兰)
  • eu-west-2 - 西欧(伦敦)
  • eu-west-3 - 西欧(巴黎)
  • eu-central-1 - 中欧(法兰克福)
  • eu-central-2 - 中欧(苏黎世)
  • eu-north-1 - 北欧(斯德哥尔摩)
  • ap-south-1 - 南亚(孟买)
  • ap-southeast-1 - 东南亚(新加坡)
  • ap-northeast-1 - 东北亚(东京)
  • ap-northeast-2 - 东北亚(首尔)
  • ap-southeast-2 - 大洋洲(悉尼)
  • sa-east-1 - 南美洲(圣保罗)

MCP配置方法因Cursor和Windsurf而异。阅读相关部分以了解如何配置连接。

Cursor

自v0.46起,Cursor中有两种配置MCP服务器的方法:

  • 按项目基础 -> 在项目/仓库文件夹中创建mcp.json.env来配置连接
  • 全局 -> 在设置中创建MCP服务器并使用仅由此MCP服务器支持的.env进行配置

您可以通过以下方式创建特定项目的MCP:

  • 在您的仓库中创建.cursor文件夹(如果不存在)
  • 创建或更新mcp.json文件,如下所示

环境变量:如果您按项目配置MCP服务器,仍然需要创建.env文件以供连接设置被识别。我无法配置mcp.json以拾取我的环境变量 😔

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

或者,如果您希望全局配置MCP服务器(即不是每个项目),可以使用以下命令更新全局配置文件夹中的.env文件:

# 创建配置目录并导航到该目录
# 在macOS/Linux上
mkdir -p ~/.config/supabase-mcp
cd ~/.config/supabase-mcp

# 在Windows(PowerShell)上
mkdir -Force "$env:APPDATA\supabase-mcp"
cd "$env:APPDATA\supabase-mcp"

这将创建必要的配置文件夹,您的环境文件将存储在此处。

# 创建并编辑.env文件
# 在macOS/Linux上
nano ~/.config/supabase-mcp/.env

# 在Windows(PowerShell)上
notepad "$env:APPDATA\supabase-mcp\.env"

这将打开.env文件。一旦文件打开,复制并粘贴以下内容:

SUPABASE_PROJECT_REF=your-project-ref
SUPABASE_DB_PASSWORD=your-db-password
SUPABASE_REGION=us-east-1  # 可选,默认为us-east-1
SUPABASE_ACCESS_TOKEN=your-access-token  # 可选,用于管理API

验证文件是否存在 - 您应该看到刚刚设置的值:

# 在macOS/Linux上
cat ~/.config/supabase-mcp/.env

# 在Windows(PowerShell)上
Get-Content "$env:APPDATA\supabase-mcp\.env"

您可以在以下位置找到全局配置文件:

  • Windows:%APPDATA%/supabase-mcp/.env
  • macOS/Linux:~/.config/supabase-mcp/.env
Windsurf

Windsurf支持事实上的标准.json格式用于MCP服务器配置。您可以在mcp_config.json文件中配置服务器:

{
    "mcpServers": {
      "supabase": {
        "command": "/Users/username/.local/bin/supabase-mcp-server",  // 更新路径
        "env": {
          "SUPABASE_PROJECT_REF": "your-project-ref",
          "SUPABASE_DB_PASSWORD": "your-db-password",
          "SUPABASE_REGION": "us-east-1",  // 可选,默认为us-east-1
          "SUPABASE_ACCESS_TOKEN": "your-access-token"  // 可选,用于管理API
        }
      }
    }
}

💡 查找服务器路径

  • macOS/Linux:运行which supabase-mcp-server
  • Windows:运行where supabase-mcp-server

配置优先级

服务器按照以下顺序查找配置:

  1. 环境变量(最高优先级)
  2. 当前目录下的本地.env文件
  3. 全局配置文件:
    • Windows:%APPDATA%/supabase-mcp/.env
    • macOS/Linux:~/.config/supabase-mcp/.env
  4. 默认设置(本地开发)

第三步:在Cursor/Windsurf中运行MCP服务器

一般来说,任何支持stdio协议的MCP客户端都应该能与这个MCP服务器工作(例如Cline),但我只测试过Cursor/Windsurf。

Cursor

转到设置 -> 功能 -> MCP服务器并添加一个新的服务器,配置如下:

# 可以设置为任意名称
name: supabase
type: 命令
# 如果您使用pipx安装
command: supabase-mcp-server
# 如果您使用uv安装
command: uv run supabase-mcp-server

如果配置正确,您应该能看到绿色指示灯和服务器暴露的工具数量。 Cursor成功配置的样子

Windsurf

转到级联 -> 点击锤子图标 -> 配置 -> 填写配置:

{
    "mcpServers": {
      "supabase": {
        "command": "/Users/username/.local/bin/supabase-mcp-server",  // 更新路径
        "env": {
          "SUPABASE_PROJECT_REF": "your-project-ref",
          "SUPABASE_DB_PASSWORD": "your-db-password",
          "SUPABASE_REGION": "us-east-1",  // 可选,默认为us-east-1
          "SUPABASE_ACCESS_TOKEN": "your-access-token"  // 可选,用于管理API
        }
      }
    }
}

如果配置正确,您应该能看到绿色指示灯和可用服务器列表中的可点击supabase服务器。 Windsurf成功配置的样子

故障排除

这里有一些可能帮助您的技巧:

  • 调试安装 - 直接从终端运行supabase-mcp-server以查看是否正常工作。如果不工作,可能存在安装问题。
  • MCP服务器配置 - 如果上述步骤正常工作,则意味着服务器已正确安装和配置。只要提供了正确的命令,IDE应该能够连接。确保提供正确的服务器可执行文件路径。
  • 环境变量 - 为了连接到正确的数据库,请确保在mcp_config.json或放置在全局配置目录中的.env文件中设置了环境变量(macOS/Linux:~/.config/supabase-mcp/.env,Windows:%APPDATA%\supabase-mcp.env)。
  • 访问日志 - MCP服务器将详细的日志写入文件:
    • 日志文件位置:
      • macOS/Linux:~/.local/share/supabase-mcp/mcp_server.log
      • Windows:%USERPROFILE%.local\share\supabase-mcp\mcp_server.log
    • 日志包括连接状态、配置详情和操作结果
    • 使用任何文本编辑器或终端命令查看日志:
      # 在macOS/Linux上
      cat ~/.local/share/supabase-mcp/mcp_server.log
      
      # 在Windows(PowerShell)上
      Get-Content "$env:USERPROFILE\.local\share\supabase-mcp\mcp_server.log"
      

如果您卡住了或上述任何指令有误,请提出问题。

MCP检查器

一个非常有用的工具是MCP检查器,可以帮助调试MCP服务器问题。如果您是从源码安装的,可以从项目仓库运行supabase-mcp-inspector,它将运行检查器实例。结合日志,这将为您提供服务器中发生情况的全面概览。

📝 如果从包安装运行supabase-mcp-inspector,可能无法正常工作 - 我将在未来的版本中验证并修复。

功能概述

数据库查询工具

自v0.3.0起,服务器支持只读和数据修改操作:

  • 读操作:SELECT查询用于数据检索
  • 数据操作语言(DML):INSERT、UPDATE、DELETE操作用于数据更改
  • 数据定义语言(DDL):CREATE、ALTER、DROP操作用于模式更改*

*注意:DDL操作需要:

  1. 通过live_dangerously启用读写模式
  2. 连接数据库角色具有足够的权限

事务处理

服务器支持两种执行写操作的方法:

  1. 显式事务控制(推荐):

    BEGIN;
    CREATE TABLE public.test_table (id SERIAL PRIMARY KEY, name TEXT);
    COMMIT;
    
  2. 单个语句

    CREATE TABLE public.test_table (id SERIAL PRIMARY KEY, name TEXT);
    

对于DDL操作(CREATE/ALTER/DROP),工具描述适当地引导Cursor/Windsurf使用带有BEGIN/COMMIT块的显式事务控制。

连接类型

此MCP