Supabase数据库操作服务器

一个用于与Supabase数据库交互的模型上下文协议(MCP)服务器,提供CRUD操作和高级过滤功能。

  • by 3rdAI-admin
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 3rdai-admin/supabase-mcp-server

使用说明

Supabase MCP服务器

该项目提供了一个模型上下文协议(MCP)服务器,用于与Supabase数据库进行交互。它是使用 fastmcp Python库。

服务器公开了一组工具,允许大型语言模型(LLM)对Supabase表执行CRUD(创建、读取、更新、删除)操作。

特性

服务器提供以下工具:

  • read_rows:使用高级筛选功能从指定表读取行。
  • create_records:在表中创建一个或多个新记录。
  • update_records:根据高级筛选器更新表中的现有记录。
  • delete_records:根据高级筛选器从表中删除记录。
  • 错误处理:返回失败的数据库操作的详细错误消息。

高级过滤

这 read_rows, update_records,以及 delete_records 工具支持一系列过滤器来构建复杂的查询。每个过滤器都是一个包含以下内容的元组 (column_name, operator, value).

支持的运营商包括:

  • eq (等于)
  • neq (不相等)
  • gt (大于)
  • lt (小于)
  • gte (大于或等于)
  • lte (小于或等于)
  • like (对于模式匹配。, "%pattern%")
  • in (检查值是否在可能性列表中。, ["value1", "value2"])

例子: [("country", "eq", "New Zealand"), ("id", "gt", 2)]

设置

按照以下步骤设置和运行MCP服务器。

1.先决条件

  • Python 3.7+
  • Supabase项目

2.安装

  1. 克隆存储库(如果您还没有):

    git clone <repository-url>
    cd supabase-mcp
    
  2. 创建并激活虚拟环境:

    python3 -m venv venv
    source venv/bin/activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    

3.环境变量

服务器需要您的Supabase项目URL和服务角色密钥才能连接到您的数据库。

  1. 创建一个 .env 项目目录根目录中的文件。

  2. 将您的Supabase凭据添加到 .env 文件:

    SUPABASE_URL="httpsyour-project-url.supabase.co"
    SUPABASE_SERVICE_KEY="your-supabase-service-role-key"
    

    您可以在Suabase项目的“设置”>“API”部分找到这些内容。使用 service_role 密钥赋予服务器管理员级别的访问权限,绕过任何行级安全(RLS)策略。

运行服务器

您可以通过两种方式运行服务器:

  1. 使用Python解释器:

    python main.py
    
  2. 使用 mcp 命令行工具: 这是使用MCP Inspector运行服务器进行开发和测试的推荐方式。

    mcp dev main.py
    

服务器将启动并通过stdio监听传入消息。现在,您可以从兼容的MCP客户端连接到它,也可以使用MCP检查器进行测试。

测试

此项目使用 pytest 用于单元测试。这些测试模拟了Supabase客户端,不需要实时数据库连接。

要运行测试,请从项目的根目录执行以下命令:

PYTHONPATH=. pytest