Back to MCP directory
publicPublicdnsLocal runtime

supabase-mcp-selfhosted

Supabase MCP自托管服务器,提供完整的私有Supabase实例管理功能,包含54+个MCP工具,支持数据库、认证、存储、实时数据、迁移和监控等全方位管理。

article

README

🚀 Supabase MCP 服务器 - 自托管版

🗄️ Supabase MCP 自托管服务器 - 全面管理您的私有 Supabase 实例。本项目可助力您高效掌控私有 Supabase 实例,提升管理效率与安全性。

✨ 主要特性

  • 🔐 全面管理您的私有 Supabase 实例。
  • 🛠️ 提供 54 种以上的 MCP 工具,用于 Supabase 管理。
  • 📊 实时监控与指标展示。
  • 🚀 可在 Railway 上自动部署。
  • 🔒 增强安全防护,预防 SQL 注入。
  • ⚡ 针对生产环境优化性能。

🏗️ 架构

本仓库仅包含纯 Supabase MCP 服务器,无 Web 界面和中央枢纽。

Supabase MCP Server (端口 8000)
├── 🗄️ 数据库管理
├── 🔐 认证与授权
├── 📁 存储与文件管理
├── 🔄 实时处理与订阅
├── 🛠️ 迁移与模式管理
├── 📊 监控与日志记录
└── 🚀 自动部署

🚀 快速开始

前提条件

  • Python 3.11 及以上版本。
  • Supabase 实例(自托管或云服务)。
  • Supabase 环境变量。

选项 A — SDK Smithery(推荐)

# 克隆仓库
git clone https://github.com/MisterSandFR/Supabase-MCP-SelfHosted.git
cd Supabase-MCP-SelfHosted

# 安装依赖
pip install -r requirements.txt

# (可选)如有需要,安装 Smithery CLI
npm i -g @smithery/cli

# 启动开发 SDK(根据您的环境选择)
smithery dev   # 或者: smithery playground
  • SDK 服务器在 pyproject.toml 中通过以下方式定义:
    • [tool.smithery] server = "supabase_mcp_server.server:create_server"
  • 在 Smithery 界面部署时,配置测试配置文件,然后进行扫描。

选项 B — HTTP 自托管(兼容模式)

# 克隆仓库
git clone https://github.com/MisterSandFR/Supabase-MCP-SelfHosted.git
cd Supabase-MCP-SelfHosted

# 安装 Python 依赖
pip install -r requirements.txt

# 配置环境变量
export SUPABASE_URL="https://your-project.supabase.co"
export SUPABASE_ANON_KEY="your-anon-key"
export SUPABASE_SERVICE_KEY="your-service-key"  # 可选

# 启动外部 HTTP 服务器
python src/supabase_server.py

使用 Docker(Railway / 自托管)

# 构建并启动(如有需要,使用 Dockerfile.railway)
docker build -f Dockerfile.railway -t supabase-mcp-server .
docker run -p 8000:8000 \
  -e SUPABASE_URL="https://your-project.supabase.co" \
  -e SUPABASE_ANON_KEY="your-anon-key" \
  supabase-mcp-server

⚙️ 配置

环境变量

# Supabase 配置
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=eyJ... (您的匿名密钥)
SUPABASE_SERVICE_KEY=eyJ... (可选,用于特权操作)

# 服务器配置
PORT=8000
PYTHONUNBUFFERED=1

🛠️ 可用的 MCP 工具

数据库(15 种工具)

  • execute_sql - 执行 SQL 查询。
  • list_tables - 列出表。
  • inspect_schema - 检查模式。
  • apply_migration - 应用迁移。
  • backup_database - 备份数据库。
  • restore_database - 恢复数据库。
  • vacuum_analyze - 优化数据库。
  • get_database_stats - 获取数据库统计信息。
  • create_index - 创建索引。
  • drop_index - 删除索引。
  • list_extensions - 列出扩展。
  • manage_extensions - 管理扩展。
  • execute_psql - 执行 psql 命令。
  • check_health - 检查健康状态。
  • get_database_connections - 获取数据库连接。

认证(8 种工具)

  • list_auth_users - 列出用户。
  • create_auth_user - 创建用户。
  • update_auth_user - 更新用户信息。
  • delete_auth_user - 删除用户。
  • get_auth_user - 获取用户信息。
  • verify_jwt_secret - 验证 JWT 密钥。
  • manage_roles - 管理角色。
  • manage_rls_policies - 管理 RLS 策略。

存储(6 种工具)

  • list_storage_buckets - 列出存储桶。
  • list_storage_objects - 列出存储对象。
  • manage_storage_policies - 管理存储策略。
  • upload_file - 上传文件。
  • download_file - 下载文件。
  • delete_file - 删除文件。

实时处理(4 种工具)

  • list_realtime_publications - 列出实时发布。
  • manage_realtime - 管理实时处理。
  • create_subscription - 创建订阅。
  • delete_subscription - 删除订阅。

迁移(8 种工具)

  • create_migration - 创建迁移。
  • list_migrations - 列出迁移。
  • push_migrations - 推送迁移。
  • validate_migration - 验证迁移。
  • smart_migration - 智能迁移。
  • auto_migrate - 自动迁移。
  • sync_schema - 同步模式。
  • import_schema - 导入模式。

监控(5 种工具)

  • get_logs - 获取日志。
  • metrics_dashboard - 指标仪表盘。
  • analyze_performance - 分析性能。
  • analyze_rls_coverage - 分析 RLS 覆盖范围。
  • audit_security - 安全审计。

实用工具(8 种工具)

  • generate_typescript_types - 生成 TypeScript 类型。
  • generate_crud_api - 生成 CRUD API。
  • cache_management - 缓存管理。
  • environment_management - 环境管理。
  • manage_secrets - 管理密钥。
  • manage_functions - 管理函数。
  • manage_triggers - 管理触发器。
  • manage_webhooks - 管理 Webhook。

🔧 API 端点

MCP 服务器(HTTP 自托管)

  • GET /health - 健康检查。
  • POST /mcp - 主要的 JSON-RPC 端点。
  • GET /.well-known/mcp-config - MCP 配置。
  • GET /mcp/tools.json - 工具发现(JSON 格式)。

专用工具

  • GET /api/tools - 列出可用工具。
  • POST /api/execute - 执行工具。

🚀 部署

Smithery(Python SDK) — 推荐

  1. 确保 pyproject.toml 包含以下内容:
    • [tool.smithery] server = "supabase_mcp_server.server:create_server"
  2. 在 Smithery → Deploy 中,选择 Python SDK。
  3. 配置测试配置文件,然后进行扫描。
    • 必需参数:SUPABASE_URLSUPABASE_ANON_KEY

Railway(自托管)

# 部署到 Railway
railway login
railway init
railway up

Docker

# 构建并部署
docker build -t supabase-mcp-server .
docker run -p 8000:8000 supabase-mcp-server

与中央枢纽集成

本服务器设计用于与 MCP 中央枢纽 集成:

{
  "servers": {
    "supabase": {
      "name": "Supabase MCP Server",
      "host": "supabase.mcp.coupaul.fr",
      "port": 8000,
      "path": "/",
      "categories": ["database", "auth", "storage", "realtime", "security", "migration", "monitoring", "performance"]
    }
  }
}

🧪 测试配置文件(Smithery)

在 Smithery 端连接时,在测试配置文件中提供以下密钥:

{
  "SUPABASE_URL": "https://your-project.supabase.co",
  "SUPABASE_ANON_KEY": "eyJ..."
}

如果存在缓存,请重新保存配置文件并重新进行扫描。

🔒 安全

  • 输入验证:防止 SQL 注入。
  • 速率限制:按 IP 和用户进行限制。
  • 审计日志:记录所有操作。
  • HTTPS 加密:生产环境强制使用。
  • 密钥管理:安全管理密钥。
  • RLS 策略:保障数据安全。

📊 监控

服务器提供全面的监控功能:

  • 实时性能指标
  • 结构化日志:级别可配置。
  • 自动健康检查
  • 问题警报
  • 指标仪表盘
  • 详细性能分析

🤝 贡献

  1. Fork 本仓库。
  2. 创建功能分支(git checkout -b feature/amazing-feature)。
  3. 提交更改(git commit -m 'Add amazing feature')。
  4. 推送到分支(git push origin feature/amazing-feature)。
  5. 打开 Pull Request。

📄 许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

🙏 致谢

  • Supabase 提供平台支持。
  • Smithery 提供 MCP 生态系统。
  • Supabase 社区的贡献。

📞 支持


coupaul 用心打造 ❤️

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client