关于 Supabase MCP Server
Supabase MCP Server 是用 Python 编写的 MCP 服务,使 AI 助手能够通过标准化接口对 Supabase 数据库执行增删改查操作。项目以 Docker 方式运行,适合希望让助手读写 Supabase 表数据的用户。
主要功能
- 01读取表数据,支持筛选、分页和列选择
- 02向 Supabase 表中插入记录
- 03按条件更新表中记录
- 04按条件删除表中记录
- 05通过 Docker 镜像运行
适用场景
- 01让 AI 助手查询 Supabase 表中的数据
- 02通过助手批量插入或更新数据库记录
- 03在 Claude Desktop 等客户端中管理 Supabase 数据
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 read_table_rows、create_table_records、update_table_records 和 delete_table_records 等数据库工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Supabase MCP 服务
一个用于与 Supabase 数据库交互的模型上下文协议(MCP)服务。此服务通过标准化接口,让 AI 助手能够执行数据库操作。
注意:此 Supabase MCP 服务是作为我使用 AI IDE 编码工作流的演示而创建的。目前仍在开发中,我会在未来发布的视频中继续完善,详见我的频道。
功能
- 读取表行:查询 Supabase 表中的数据,支持可选筛选、分页和列选择
- 创建表记录:向 Supabase 表中插入新记录
- 更新表记录:根据筛选条件修改 Supabase 表中的现有记录
- 删除表记录:根据筛选条件删除 Supabase 表中的记录
前置条件
- Docker 或 Docker Desktop
- Supabase 账号和项目
安装
- 克隆仓库:
git clone https://github.com/coleam00/supabase-mcp.git cd supabase-mcp
Docker 设置
- 构建 Docker 镜像:
docker build -t mcp/supabase .
使用方法
使用 Docker 运行 MCP 服务
Supabase MCP 服务可通过模型上下文协议集成到 AI 助手中。
- 将以下配置添加到 MCP 配置中(例如 Claude Desktop、Windsurf 等)。
请先按照安装步骤构建容器!
{
"mcpServers": {
"supabase": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "SUPABASE_URL", "-e", "SUPABASE_SERVICE_KEY", "mcp/supabase"],
"env": {
"SUPABASE_URL": "YOUR-SUPABASE-URL",
"SUPABASE_SERVICE_KEY": "YOUR-SUPABASE-SERVICE-ROLE-KEY"
}
}
}
}
-
将
YOUR-SUPABASE-URL和YOUR-SUPABASE-SERVICE-ROLE-KEY替换为你的实际 Supabase 凭据。 -
现在,AI 助手可以通过 MCP 服务使用提供的工具访问 Supabase 数据库。
如需了解有关模型上下文协议的更多信息,请访问 modelcontextprotocol.io。
可用工具
读取表行
read_table_rows(
table_name: str,
columns: Optional[List[str]] = None,
filters: Optional[Dict[str, Any]] = None,
limit: Optional[int] = None,
offset: Optional[int] = None
)
示例:
# Read active users
read_table_rows(
table_name="users",
columns=["id", "name", "email"],
filters={"is_active": True},
limit=10,
offset=0
)
创建表记录
create_table_records(
table_name: str,
records: Union[Dict[str, Any], List[Dict[str, Any]]]
)
示例:
# Create a new user
create_table_records(
table_name="users",
records={
"name": "John Doe",
"email": "[email protected]",
"is_active": True
}
)
更新表记录
update_table_records(
table_name: str,
updates: Dict[str, Any],
filters: Dict[str, Any]
)
示例:
# Update user status
update_table_records(
table_name="users",
updates={"status": "premium"},
filters={"is_active": True}
)
删除表记录
delete_table_records(
table_name: str,
filters: Dict[str, Any]
)
示例:
# Delete inactive users
delete_table_records(
table_name="users",
filters={"is_active": False}
)
开发
项目结构
supabase-mcp/
├── supabase_mcp/
│ ├── __init__.py
│ ├── server.py # Main MCP server implementation
│ └── tests/ # Unit tests
├── Dockerfile # Docker configuration for MCP server
├── example_mcp_config.json # Example MCP configuration
├── requirements.txt # Python dependencies
├── .env.example # Example environment variables
├── README.md # Project documentation
├── PLANNING.md # Project planning
└── TASKS.md # Task tracking
运行测试
pytest supabase_mcp/tests/
模型上下文协议集成
Supabase MCP 服务实现了模型上下文协议,可让 AI 助手以标准化方式与 Supabase 数据库交互。
工作原理
- MCP 服务提供用于数据库操作(读取、创建、更新、删除)的工具
- AI 助手使用 stdio 传输方式连接到 MCP 服务
- AI 助手可以调用这些工具执行数据库操作
- MCP 服务负责与 Supabase 通信并返回结果
MCP 配置
example_mcp_config.json 文件展示了如何配置 AI 助手以使用 Supabase MCP 服务:
{
"mcpServers": {
"supabase": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "SUPABASE_URL", "-e", "SUPABASE_SERVICE_KEY", "mcp/supabase"],
"env": {
"SUPABASE_URL": "YOUR-SUPABASE-URL",
"SUPABASE_SERVICE_KEY": "YOUR-SUPABASE-SERVICE-ROLE-KEY"
}
}
}
}
此配置告知 AI 助手:
- 使用 Docker 运行 MCP 服务
- 将 Supabase 凭据作为环境变量传递
- 使用
mcp/supabaseDocker 镜像
与 AI 助手配合使用
支持模型上下文协议的 AI 助手可以使用此服务来:
- 查询 Supabase 表中的数据
- 向表中插入新记录
- 更新现有记录
- 删除记录
助手将能够使用上方“可用工具”部分中记录的工具。
环境变量
| 变量 | 描述 |
|---|---|
SUPABASE_URL | 你的 Supabase 项目的 URL |
SUPABASE_SERVICE_KEY | 用于 Supabase 身份验证的服务角色密钥 |
许可证
此项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。