一个功能丰富的MCP服务器,使任何MCP客户端(如Cursor、Windsurf、Claude Desktop、Cline等)能够安全地与Supabase数据库交互。它提供了数据库管理工具、SQL查询执行以及Supabase管理API访问,并内置了安全控制。
stdio协议的Cursor、Windsurf、Cline及其他MCP客户端安装服务器需要在您的系统上满足以下要求:
如果您计划通过uv安装,请确保已安装。
MCP服务器本身不再需要安装PostgreSQL,因为它现在使用的是不依赖于PostgreSQL开发库的asyncpg。
然而,如果您正在运行本地的Supabase实例,则仍然需要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 -e .手动安装服务器。
如果您想从源码安装,例如用于本地开发:
uv venv
# 在Mac上
source .venv/bin/activate
# 在Windows上
.venv\Scripts\activate
# 以可编辑模式安装包
uv pip install -e .
有关如何使用Smithery.ai连接到此MCP服务器的完整说明,请参阅这里。
Supabase MCP服务器需要配置以连接到您的Supabase数据库、访问管理API以及使用Auth Admin SDK。本节解释所有可用的配置选项及其设置方法。
服务器使用以下环境变量:
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
SUPABASE_PROJECT_REF | 否 | 127.0.0.1:54322 | 您的Supabase项目参考ID(或本地主机:端口) |
SUPABASE_DB_PASSWORD | 否 | postgres | 您的数据库密码 |
SUPABASE_REGION | 否 | us-east-1 | 您的Supabase项目所在的AWS区域 |
SUPABASE_ACCESS_TOKEN | 否 | 无 | Supabase管理API的个人访问令牌 |
SUPABASE_SERVICE_ROLE_KEY | 否 | 无 | Auth Admin SDK的服务角色密钥 |
注意:默认值是针对本地Supabase开发配置的。对于远程Supabase项目,您必须提供自己的
SUPABASE_PROJECT_REF和SUPABASE_DB_PASSWORD值。
127.0.0.1:54322postgresql://postgres.[project_ref]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres⚠️ 重要:会话池化连接不被支持。服务器仅使用事务池化以更好地兼容MCP服务器架构。
SUPABASE_ACCESS_TOKENhttps://api.supabase.comSUPABASE_SERVICE_ROLE_KEYhttp://127.0.0.1:54321https://[project_ref].supabase.co服务器按以下顺序查找配置(优先级从高到低):
.env文件:当前工作目录中的.env文件(仅在从源码运行时有效)⚠️ 重要:当使用通过pipx或uv安装的包时,项目目录中的本地
.env文件不会被检测到。您必须使用环境变量或全局配置文件。
直接在您的MCP客户端配置中设置环境变量(请参阅步骤3中的客户端特定设置说明)。大多数MCP客户端都支持这种方法,这可以将您的配置与客户端设置一起保存。
创建一个全局.env配置文件,该文件将用于所有MCP服务器实例:
# 创建配置目录
# 在macOS/Linux上
mkdir -p ~/.config/supabase-mcp
# 在Windows(PowerShell)上
mkdir -Force "$env:APPDATA\supabase-mcp"
# 创建并编辑.env文件
# 在macOS/Linux上
nano ~/.config/supabase-mcp/.env
# 在Windows(PowerShell)上
notepad "$env:APPDATA\supabase-mcp\.env"
向文件添加您的配置值:
SUPABASE_PROJECT_REF=your-project-ref
SUPABASE_DB_PASSWORD=your-db-password
SUPABASE_REGION=us-east-1
SUPABASE_ACCESS_TOKEN=your-access-token
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
如果您是从源码运行服务器(而不是通过包),则可以在项目目录中创建一个具有相同格式的.env文件。
https://supabase.com/dashboard/project/<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 - 南美洲(圣保罗)一般来说,任何支持stdio协议的MCP客户端都应该能与这个MCP服务器一起工作。此服务器经过测试,可以与以下客户端一起工作:
此外,您还可以使用smithery.ai来安装此服务器,包括上述客户端。
请按照下面的指南在您的客户端中安装此MCP服务器。
前往设置 -> 功能 -> MCP服务器,并添加一个新的服务器配置:
# 可以设置为任意名称
name: supabase
type: command
# 如果您通过pipx安装
command: supabase-mcp-server
# 如果您通过uv安装
command: uv run supabase-mcp-server
# 如果以上方法不起作用,请使用完整路径(推荐)
command: /full/path/to/supabase-mcp-server # 使用'which supabase-mcp-server'(macOS/Linux)或'where supabase-mcp-server'(Windows)找到
如果配置正确,您应该看到绿色指示灯和服务器暴露的工具数量。
前往级联 -> 点击锤子图标 -> 配置 -> 填写配置:
{
"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_SERVICE_ROLE_KEY": "your-service-role-key" // 可选,用于Auth Admin SDK
}
}
}
}
如果配置正确,您应该看到绿色指示灯和可用服务器列表中的可点击Supabase服务器。
Claude Desktop也通过JSON配置支持MCP服务器。请按照以下步骤设置Supabase MCP服务器:
找到可执行文件的完整路径(此步骤至关重要):
# 在macOS/Linux上
which supabase-mcp-server
# 在Windows上
where supabase-mcp-server
复制返回的完整路径(例如,/Users/username/.local/bin/supabase-mcp-server)。
在Claude Desktop中配置MCP服务器:
{
"mcpServers": {
"supabase": {
"command": "/full/path/to/supabase-mcp-server", // 替换为第1步中的实际路径
"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_SERVICE_ROLE_KEY": "your-service-role-key" // 可选,用于Auth Admin SDK
}
}
}
}
⚠️ 重要:与Windsurf和Cursor不同,Claude Desktop需要可执行文件的完整绝对路径。仅使用命令名(
supabase-mcp-server)会导致“spawn ENOENT”错误。
如果配置正确,您应该在Claude Desktop中看到列出的Supabase MCP服务器。
![Windsurf成功配置的样子