使用说明
Supabase MCP服务器
一种模型上下文协议(MCP)服务器,提供与Supabase数据库交互的工具。该服务器使AI助手能够通过标准化的界面执行数据库操作。
注意:创建此Supabase MCP服务器是为了演示我的AI IDE编码工作流程。这仍然是一项正在进行的工作,我将在未来的视频中详细介绍 频道.
特性
- 读取表行:通过可选的筛选、分页和列选择从Supabase表中查询数据
- 创建表记录:在Supabase表中插入新记录
- 更新表格记录:根据筛选器修改辅助数据库表中的现有记录
- 删除表记录:根据筛选器从Supabase表中删除记录
先决条件
- Docker或Docker桌面
- 辅助账户和项目
安装
- 克隆存储库:
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数据库。
有关模型上下文协议的更多信息,请访问 模型上下文协议.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": "john@example.com",
"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"
}
}
}
}
此配置告诉人工智能助手:
- 使用Docker运行MCP服务器
- 将Supabase凭据作为环境变量传递
- 要使用
mcp/supabaseDocker镜像
使用AI助手
支持模型上下文协议的AI助手可以使用此服务器:
- 从Supabase表中查询数据
- 将新记录插入表中
- 更新现有记录
- 删除记录
助理将有权访问上述“可用工具”部分中记录的工具。
环境变量
| 变量 | 描述 |
|---|---|
SUPABASE_URL |
您的Supabase项目的URL |
SUPABASE_SERVICE_KEY |
Supabase身份验证的服务角色密钥 |
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。