返回市场
超算基础-MCP

超算基础-MCP

作者:coleam00181 星标更新:2025-03-30

项目介绍

Supabase MCP 服务器

这是一个提供与 Supabase 数据库交互工具的模型上下文协议(MCP)服务器。该服务器使 AI 助手能够通过标准化接口执行数据库操作。

注意:此 Supabase MCP 服务器是作为演示我的 AI IDE 编码工作流程而创建的。它仍处于开发阶段,我将在未来发布的视频中继续扩展这一项目,视频地址为 我的频道

特性

  • 读取表行:从 Supabase 表中查询数据,支持可选过滤、分页和列选择
  • 创建表记录:向 Supabase 表中插入新记录
  • 更新表记录:根据过滤条件修改 Supabase 表中的现有记录
  • 删除表记录:根据过滤条件从 Supabase 表中删除记录

先决条件

  • Docker 或 Docker Desktop
  • Supabase 账户和项目

安装

  1. 克隆仓库:
    git clone https://github.com/coleam00/supabase-mcp.git
    cd supabase-m
    

Docker 设置

  1. 构建 Docker 镜像:
    docker build -t mcp/supabase .
    

使用方法

作为 MCP 服务器运行 Docker

Supabase MCP 服务器可以通过模型上下文协议集成到 AI 助手中。

  1. 在您的 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"
      }
    }
  }
}
  1. YOUR-SUPABASE-URLYOUR-SUPABASE-SERVICE-ROLE-KEY 替换为您实际的 Supabase 凭据。
  2. 现在,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_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_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_table_records(
    table_name="users",
    updates={"status": "premium"},
    filters={"is_active": True}
)

删除表记录

delete_table_records(
    table_name: str,
    filters: Dict[str, Any]
)

示例:

# 删除非活跃用户
delete_table_records(
    table_name="users",
    filters={"is_active": False}
)

开发

项目结构

supabase-mcp/
├── supabase_mcp/
│   ├── __init__.py
│   ├── server.py              # 主 MCP 服务器实现
│   └── tests/                 # 单元测试
├── Dockerfile                 # MCP 服务器的 Docker 配置
├── example_mcp_config.json    # 示例 MCP 配置
├── requirements.txt           # Python 依赖项
├── .env.example               # 示例环境变量
├── README.md                  # 项目文档
├── PLANNING.md                # 项目规划
└── TASKS.md                   # 任务跟踪

运行测试

pytest supabase_mcp/tests/

模型上下文协议集成

Supabase MCP 服务器实现了 模型上下文协议,允许 AI 助手以标准化方式与 Supabase 数据库进行交互。

工作原理

  1. MCP 服务器暴露用于数据库操作(读取、创建、更新、删除)的工具
  2. AI 助手通过 stdio 传输连接到 MCP 服务器
  3. AI 助手可以调用这些工具来执行数据库操作
  4. 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/supabase Docker 镜像

与 AI 助手一起使用

支持模型上下文协议的 AI 助手可以使用此服务器:

  1. 查询 Supabase 表中的数据
  2. 向表中插入新记录
  3. 更新现有记录
  4. 删除记录

助手将有权访问上述“可用工具”部分中记录的工具。

环境变量

变量描述
SUPABASE_URL您的 Supabase 项目的 URL
SUPABASE_SERVICE_KEYSupabase 认证的服务角色密钥

许可证

本项目采用 MIT 许可证 - 详情见 LICENSE 文件。