使用说明
Supabase MCP服务器
使用.NET构建的Supabase MCP服务器 Dedalus MCP框架.通过PostgREST API,通过凭据加密和JIT令牌交换,提供对Subabase数据库的安全访问。
特性
可用工具
读取操作
| 工具 | 说明 |
|---|---|
db_select |
使用可选的筛选器、排序和分页从表中选择行 |
db_get_by_id |
按主键获取单行 |
写入操作
| 工具 | 说明 |
|---|---|
db_insert |
在表中插入一行或多行 |
db_update |
更新与指定筛选器匹配的行 |
db_delete |
删除与指定筛选器匹配的行 |
db_upsert |
插入或更新冲突行 |
远程过程调用
| 工具 | 说明 |
|---|---|
db_rpc |
调用Supabase存储过程/函数 |
先决条件
- Python 3.10+
- 紫外线 包管理器
- 数据库项目URL和API密钥
- Dedalus API密钥
设置
- 克隆仓库
git clone https://github.com/dedalus-labs/supabase-mcp.git
cd supabase-mcp
- 安装依赖项
uv sync
- 配置环境变量
创建 .env 基于.env.example.的文件。
客户端使用情况
import asyncio
import os
from dotenv import load_dotenv
from dedalus_labs import AsyncDedalus, DedalusRunner
from dedalus_mcp.auth import Connection, SecretKeys, SecretValues
load_dotenv()
SUPABASE_URL = os.getenv("SUPABASE_URL")
# Define the Supabase connection
supabase = Connection(
name="supabase-mcp",
secrets=SecretKeys(key="SUPABASE_SECRET_KEY"),
base_url=f"{SUPABASE_URL}/rest/v1",
auth_header_name="apikey",
auth_header_format="{api_key}",
)
# Bind credentials (encrypted client-side, decrypted at dispatch time)
supabase_secrets = SecretValues(supabase, key=os.getenv("SUPABASE_SECRET_KEY", ""))
async def main():
client = AsyncDedalus(
api_key=os.getenv("DEDALUS_API_KEY"),
base_url=os.getenv("DEDALUS_API_URL"),
as_base_url=os.getenv("DEDALUS_AS_URL"),
)
runner = DedalusRunner(client)
result = await runner.run(
input="Select all rows from the users table, limit to 5.",
model="openai/gpt-5",
mcp_servers=["issac/supabase-mcp"],
credentials=[supabase_secrets],
)
print(result.output)
if __name__ == "__main__":
asyncio.run(main())
许可证
MIT许可证-请参阅 许可证 了解详情。