使用说明
Supabase MCP服务器
该项目提供了一个模型上下文协议(MCP)服务器,用于与Supabase数据库进行交互。它是使用 fastmcp Python库。
服务器公开了一组工具,允许大型语言模型(LLM)对Supabase表执行CRUD(创建、读取、更新、删除)操作。
特性
服务器提供以下工具:
read_rows:使用高级筛选功能从指定表读取行。create_records:在表中创建一个或多个新记录。update_records:根据高级筛选器更新表中的现有记录。delete_records:根据高级筛选器从表中删除记录。- 错误处理:返回失败的数据库操作的详细错误消息。
高级过滤
这 read_rows, update_records,以及 delete_records 工具支持一系列过滤器来构建复杂的查询。每个过滤器都是一个包含以下内容的元组 (column_name, operator, value).
支持的运营商包括:
eq(等于)neq(不相等)gt(大于)lt(小于)gte(大于或等于)lte(小于或等于)like(对于模式匹配。,"%pattern%")in(检查值是否在可能性列表中。,["value1", "value2"])
例子: [("country", "eq", "New Zealand"), ("id", "gt", 2)]
设置
按照以下步骤设置和运行MCP服务器。
1.先决条件
- Python 3.7+
- Supabase项目
2.安装
-
克隆存储库(如果您还没有):
git clone <repository-url> cd supabase-mcp -
创建并激活虚拟环境:
python3 -m venv venv source venv/bin/activate -
安装依赖项:
pip install -r requirements.txt
3.环境变量
服务器需要您的Supabase项目URL和服务角色密钥才能连接到您的数据库。
-
创建一个
.env项目目录根目录中的文件。 -
将您的Supabase凭据添加到
.env文件:SUPABASE_URL="httpsyour-project-url.supabase.co" SUPABASE_SERVICE_KEY="your-supabase-service-role-key"您可以在Suabase项目的“设置”>“API”部分找到这些内容。使用
service_role密钥赋予服务器管理员级别的访问权限,绕过任何行级安全(RLS)策略。
运行服务器
您可以通过两种方式运行服务器:
-
使用Python解释器:
python main.py -
使用
mcp命令行工具: 这是使用MCP Inspector运行服务器进行开发和测试的推荐方式。mcp dev main.py
服务器将启动并通过stdio监听传入消息。现在,您可以从兼容的MCP客户端连接到它,也可以使用MCP检查器进行测试。
测试
此项目使用 pytest 用于单元测试。这些测试模拟了Supabase客户端,不需要实时数据库连接。
要运行测试,请从项目的根目录执行以下命令:
PYTHONPATH=. pytest