Supabase Mcp Server Kd5

Supabase Mcp Server Kd5

🚀 Supabase MCP 服务器

Supabase MCP 服务器是一个提供与 Supabase 数据库交互工具的模型上下文协议 (MCP) 服务器。它通过标准化接口,让 AI 助手能够轻松执行数据库操作,为开发者提供了便捷的数据库交互方式。

⚠️ 重要提示

这个 Supabase MCP 服务器是作者在 我的频道 的视频中演示其 AI IDE 编码工作流程的示例。它仍是一个正在进行中的项目,未来会继续扩展完善。

🚀 快速开始

Supabase MCP 服务器旨在为 AI 助手提供与 Supabase 数据库交互的能力。下面将为你介绍使用该服务器的基本步骤。

✨ 主要特性

  • 读取表行:可以带有可选筛选、分页和列选择从 Supabase 表查询数据。
  • 创建表记录:能够向 Supabase 表插入新记录。
  • 更新表记录:可根据筛选条件修改现有记录。
  • 删除表记录:能根据筛选条件删除记录。

📦 安装指南

先决条件

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

克隆仓库

git clone https://github.com/coleam00/supabase-mcp.git
cd supabase-mcp

💻 使用示例

Docker 设置

构建 Docker 镜像

FROM python:3.8-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "server.py"]

运行 Docker 容器

docker build -t mcp/supabase .
docker run -e SUPABASE_URL=your-supabase-url -e SUPABASE_SERVICE_KEY=your-service-role-key -it mcp/supabase

可用工具

读取表行

def read_table_records(table_name: str,
column_names: List[str] = ["*"],
filter_conditions: Optional[List[Tuple[str, str, str]]] = None,
page: int = 1,
per_page: int = 10) -> Dict:
"""
从指定表中读取记录。

参数:
table_name (str): 表名
column_names (List[str]): 要返回的列名称,默认为 ["*"],表示所有列
filter_conditions (Optional[List[Tuple[str, str, str]]]): 筛选条件列表,每个元组包含 (column, operator, value)
page (int): 当前页码,默认为 1
per_page (int): 每页显示的记录数,默认为 10

返回:
Dict: 包含查询结果、总记录数和分页信息的字典
"""

创建表记录

def create_table_record(table_name: str,
record_data: Dict[str, Any]) -> bool:
"""
向指定表中插入新记录。

参数:
table_name (str): 表名
record_data (Dict[str, Any]): 新记录的数据字典

返回:
bool: 操作是否成功
"""

更新表记录

def update_table_record(table_name: str,
filter_conditions: List[Tuple[str, str, str]],
update_data: Dict[str, Any]) -> int:
"""
根据筛选条件更新指定表中的记录。

参数:
table_name (str): 表名
filter_conditions (List[Tuple[str, str, str]]): 筛选条件列表,每个元组包含 (column, operator, value)
update_data (Dict[str, Any]): 要更新的数据字典

返回:
int: 更新的记录数
"""

删除表记录

def delete_table_records(table_name: str,
filter_conditions: List[Tuple[str, str, str]]) -> int:
"""
根据筛选条件删除指定表中的记录。

参数:
table_name (str): 表名
filter_conditions (List[Tuple[str, str, str]]): 筛选条件列表,每个元组包含 (column, operator, value)

返回:
int: 删除的记录数
"""

📚 详细文档

开发信息

项目结构

supabase-mcp/
├── server.py              # MCP 服务器入口
├── requirements.txt      # 依赖管理
└── docker/Dockerfile     # Docker 镜像配置

测试方法

运行测试用例

pytest tests/

覆盖率报告

coverage run -m pytest tests/ && coverage report

协议整合

工作原理

  1. MCP 服务器提供数据库操作工具 (读取、创建、更新、删除)。
  2. AI 助手通过 stdio 运输连接到 MCP 服务器。
  3. AI 助手可以调用工具执行数据库操作。
  4. MCP 服务器处理与 Supabase 的通信并返回结果。

配置示例

{
"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-SERVICE-ROLE-KEY"
}
}
}
}

环境变量

属性 详情
变量名 描述
SUPABASE_URL Supabase 实例的 URL
SUPABASE_KEY Service Role 的 API Key

📄 许可证

本项目采用 MIT License。

贡献者

  • [你的名字] - 初始开发
  • 0 关注
  • 0 收藏,14 浏览
  • system 提出于 2025-09-18 17:30

相似服务问题

相关AI产品