Supabase数据库管理服务

通过PostgREST API提供安全访问Supabase数据库的服务,支持凭证加密和即时令牌交换。

  • by dedalus-labs
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 dedalus-labs/supabase-mcp

使用说明

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密钥

设置

  1. 克隆仓库
git clone https://github.com/dedalus-labs/supabase-mcp.git
cd supabase-mcp
  1. 安装依赖项
uv sync
  1. 配置环境变量

创建 .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许可证-请参阅 许可证 了解详情。