数据库操作服务

Supabase MCP Server是一个提供标准化接口的数据库操作服务,支持AI助手通过Model Context Protocol对Supabase数据库进行增删改查操作。

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

使用说明

Supabase MCP服务器

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

注意:创建此Supabase MCP服务器是为了演示我的AI IDE编码工作流程。这仍然是一项正在进行的工作,我将在未来的视频中详细介绍 频道.

特性

  • 读取表行:通过可选的筛选、分页和列选择从Supabase表中查询数据
  • 创建表记录:在Supabase表中插入新记录
  • 更新表格记录:根据筛选器修改辅助数据库表中的现有记录
  • 删除表记录:根据筛选器从Supabase表中删除记录

先决条件

  • Docker或Docker桌面
  • 辅助账户和项目

安装

  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数据库。

有关模型上下文协议的更多信息,请访问 模型上下文协议.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": "john@example.com",
        "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"
      }
    }
  }
}

此配置告诉人工智能助手:

  • 使用Docker运行MCP服务器
  • 将Supabase凭据作为环境变量传递
  • 要使用 mcp/supabase Docker镜像

使用AI助手

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

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

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

环境变量

变量 描述
SUPABASE_URL 您的Supabase项目的URL
SUPABASE_SERVICE_KEY Supabase身份验证的服务角色密钥

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。