返回 MCP 目录
public公开dns本地运行

supabase-mcp-server

Supabase MCP服务器是一个开源工具,允许IDE安全执行SQL、管理模式变更、调用Supabase管理API和使用Auth Admin SDK,内置安全控制。

article

README

🚀 Supabase MCP 服务器

Supabase MCP(管理控制台)服务器是一款强大的工具,可用于管理和操作 Supabase 数据库。它具备执行 SQL 查询、集成 Supabase 管理 API、自动版本控制、安全管理等多种功能,旨在简化数据库及相关服务的管理流程。

🚀 快速开始

使用 Supabase MCP 服务器,你可以轻松管理和操作 Supabase 数据库。首先,按照安装指南完成服务器的安装,然后连接到你的数据库,即可开始执行查询和管理资源。

✨ 主要特性

PostgreSQL 查询执行

  • 直接 SQL 执行:支持运行任意 PostgreSQL 查询,涵盖 SELECT、INSERT、UPDATE、DELETE 等操作。
  • 事务处理:支持原子交易,确保操作要么完全成功,要么完全失败。
  • 结果查看:提供直观的结果展示,支持 JSON 格式输出和自定义列格式化。

Supabase 管理 API 集成

  • 资源管理:可直接创建、删除或修改数据库对象(表、列、索引)。
  • 权限管理:能轻松配置用户和角色的访问权限。
  • 备份与恢复:可执行手动或自动数据备份,并从备份中恢复。

安全模式

  • 风险分类:所有操作按风险等级分为:
    • 低风险:仅读取数据(SELECT 查询、GET API 请求)。
    • 中等风险:修改数据但不修改结构(INSERT/UPDATE/DELETE、大多数 POST/PUT API 请求)。
    • 高风险:修改数据库结构或可能导致数据丢失的操作(DROP/TRUNCATE、 DELETE API 端点)。
    • 极高风险:具有严重后果的操作,完全被阻止(删除项目)。

自动版本控制

  • 迁移脚本生成:所有对数据库的写入和破坏性 SQL 操作都会自动生成迁移脚本。
  • 确认流程:在 unsafe 模式下,所有高风险操作都需要用户明确批准才能执行。

日志与审计

  • 查询记录:记录所有执行的查询及其结果。
  • 审计追踪:提供详细的日志信息,便于跟踪和审查操作历史。

📦 安装指南

通过包管理器安装

pip install supabase-mcp-server

手动安装

下载源代码并运行:

git clone https://github.com/alexander-zuev/supabase-mcp-server.git
cd supabase-mcp-server
python setup.py install

💻 使用示例

基础用法

# 连接数据库
# 使用默认凭据或自定义配置连接你的 Supabase 数据库。

# 执行查询
# 运行任意 PostgreSQL 查询
import psycopg2

# 建立数据库连接
conn = psycopg2.connect(
    database="your_database",
    user="your_user",
    password="your_password",
    host="your_host",
    port="your_port"
)

# 创建游标
cur = conn.cursor()

# 执行查询
cur.execute("SELECT * FROM users;")

# 获取查询结果
rows = cur.fetchall()

# 打印结果
for row in rows:
    print(row)

# 关闭游标和连接
cur.close()
conn.close()

高级用法

# 执行高风险操作(如删除表),需要在 unsafe 模式下明确确认
# 这里假设已经在 unsafe 模式下,且系统会提示用户确认
import psycopg2

# 建立数据库连接
conn = psycopg2.connect(
    database="your_database",
    user="your_user",
    password="your_password",
    host="your_host",
    port="your_port"
)

# 创建游标
cur = conn.cursor()

# 执行高风险操作
try:
    cur.execute("DROP TABLE your_table;")
    conn.commit()
    print("操作成功")
except Exception as e:
    print(f"操作失败: {e}")
    conn.rollback()

# 关闭游标和连接
cur.close()
conn.close()

📚 详细文档

连接数据库

使用默认凭据或自定义配置连接你的 Supabase 数据库。

执行查询

运行任意 PostgreSQL 查询,示例如下:

SELECT * FROM users;

管理 API 调用

通过 MCP 服务器提供的 API 方法管理数据库资源。

安全模式

启用安全模式

在配置文件中启用安全功能:

security:
  enabled: true

风险操作确认

在执行高风险操作时,系统会提示用户输入确认信息。

变更记录

v1.0.0

  • 初始版本发布,包含基本的 SQL 执行和 API 管理功能。
  • 引入了安全模式和事务支持。

v2.0.0

  • 新增自动版本控制功能。
  • 支持高风险操作确认流程。
  • 优化日志记录和审计功能。

v3.0.0

  • 增强安全性,修复若干安全漏洞。
  • 改进性能监控和资源管理。

附图

附图展示了 MCP 服务器的高风险操作确认界面和查询结果查看界面。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端