一个功能丰富的MCP服务器,使Cursor和Windsurf能够安全地与Supabase数据库交互。它提供了数据库管理工具、SQL查询执行以及Supabase管理API访问,并内置了安全控制措施。
stdio协议的Cursor、Windsurf、Cline和其他MCP客户端安装服务器需要在系统上满足以下条件:
如果您计划通过uv安装,请确保已安装。
⚠️ 重要:必须在安装项目依赖项之前安装PostgreSQL,因为psycopg2在编译时需要PostgreSQL开发库。
MacOS
brew install postgresql@16
Windows
自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相关的问题,因为我尚未对其进行测试。
要通过Smithery自动安装Supabase MCP Server到Claude Desktop:
npx -y @smithery/cli install @alexander-zuev/supabase-mcp --client claude
安装包后,您需要配置数据库连接设置。该服务器支持本地和远程Supabase实例。
服务器预配置为使用默认设置连接到本地Supabase实例:
主机:127.0.0.1:54322密码:postgres💡 只要您没有修改默认设置并且想要连接到本地实例,就不需要设置环境变量。
⚠️ 重要警告:会话池连接不被支持,目前也没有计划支持。如果您认为有必要支持这一点,请告知我。
对于远程Supabase项目,您需要配置:
SUPABASE_PROJECT_REF - 您的项目参考(可在项目URL中找到)SUPABASE_DB_PASSWORD - 您的数据库密码SUPABASE_REGION - (可选)默认为us-east-1SUPABASE_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而异。阅读相关部分以了解如何配置连接。
自v0.46起,Cursor中有两种配置MCP服务器的方法:
mcp.json和.env来配置连接.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"
您可以在以下位置找到全局配置文件:
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
服务器按照以下顺序查找配置:
.env文件一般来说,任何支持stdio协议的MCP客户端都应该能与这个MCP服务器工作(例如Cline),但我只测试过Cursor/Windsurf。
转到设置 -> 功能 -> MCP服务器并添加一个新的服务器,配置如下:
# 可以设置为任意名称
name: supabase
type: 命令
# 如果您使用pipx安装
command: supabase-mcp-server
# 如果您使用uv安装
command: uv run supabase-mcp-server
如果配置正确,您应该能看到绿色指示灯和服务器暴露的工具数量。
转到级联 -> 点击锤子图标 -> 配置 -> 填写配置:
{
"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服务器。
这里有一些可能帮助您的技巧:
supabase-mcp-server以查看是否正常工作。如果不工作,可能存在安装问题。mcp_config.json或放置在全局配置目录中的.env文件中设置了环境变量(macOS/Linux:~/.config/supabase-mcp/.env,Windows:%APPDATA%\supabase-mcp.env)。~/.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服务器问题。如果您是从源码安装的,可以从项目仓库运行supabase-mcp-inspector,它将运行检查器实例。结合日志,这将为您提供服务器中发生情况的全面概览。
📝 如果从包安装运行
supabase-mcp-inspector,可能无法正常工作 - 我将在未来的版本中验证并修复。
自v0.3.0起,服务器支持只读和数据修改操作:
*注意:DDL操作需要:
live_dangerously启用读写模式服务器支持两种执行写操作的方法:
显式事务控制(推荐):
BEGIN;
CREATE TABLE public.test_table (id SERIAL PRIMARY KEY, name TEXT);
COMMIT;
单个语句:
CREATE TABLE public.test_table (id SERIAL PRIMARY KEY, name TEXT);
对于DDL操作(CREATE/ALTER/DROP),工具描述适当地引导Cursor/Windsurf使用带有BEGIN/COMMIT块的显式事务控制。
此MCP