mcpField
S
Supabase MCP Server

Supabase MCP Server

本地服务
github.com/coleam00云与基础设施19483 周前更新

关于 Supabase MCP Server

Supabase MCP Server 是用 Python 编写的 MCP 服务,使 AI 助手能够通过标准化接口对 Supabase 数据库执行增删改查操作。项目以 Docker 方式运行,适合希望让助手读写 Supabase 表数据的用户。

主要功能

  1. 01读取表数据,支持筛选、分页和列选择
  2. 02向 Supabase 表中插入记录
  3. 03按条件更新表中记录
  4. 04按条件删除表中记录
  5. 05通过 Docker 镜像运行

适用场景

  1. 01让 AI 助手查询 Supabase 表中的数据
  2. 02通过助手批量插入或更新数据库记录
  3. 03在 Claude Desktop 等客户端中管理 Supabase 数据

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 read_table_rows、create_table_records、update_table_records 和 delete_table_records 等数据库工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"supabase-mcp-coleam00": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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-mcp
    
Docker 设置
  1. 构建 Docker 镜像:
    docker build -t mcp/supabase .
    

使用方法

使用 Docker 运行 MCP 服务

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-URL 和 YOUR-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 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": "[email protected]",
        "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 数据库交互。

工作原理
  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_KEY用于 Supabase 身份验证的服务角色密钥

许可证

此项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。