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) — 推荐
- 确保
pyproject.toml包含以下内容:[tool.smithery] server = "supabase_mcp_server.server:create_server"
- 在 Smithery → Deploy 中,选择 Python SDK。
- 配置测试配置文件,然后进行扫描。
- 必需参数:
SUPABASE_URL,SUPABASE_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 策略:保障数据安全。
📊 监控
服务器提供全面的监控功能:
- 实时性能指标。
- 结构化日志:级别可配置。
- 自动健康检查。
- 问题警报。
- 指标仪表盘。
- 详细性能分析。
🤝 贡献
- Fork 本仓库。
- 创建功能分支(
git checkout -b feature/amazing-feature)。 - 提交更改(
git commit -m 'Add amazing feature')。 - 推送到分支(
git push origin feature/amazing-feature)。 - 打开 Pull Request。
📄 许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
🙏 致谢
📞 支持
由 coupaul 用心打造 ❤️
微信扫一扫