Supabase MCP HTTP流服务器

Supabase MCP HTTP流服务器是一个支持n8n、AI代理和现代自动化工作流的Docker部署解决方案,提供HTTP流传输和SSE传输支持。

  • by BIFROTEK-com
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 BIFROTEK-com/supabase-mcp-http-stream-n8n

使用说明

🐳 为n8n配置MCP HTTP流服务器

一键式Docker部署 基于本地的Supabase MCP服务器 HTTP流传输 支持n8n、AI代理和现代自动化工作流程。

🚀 快速开始

🌊 冷却部署(生产)

用于生产部署 冷却,请按照以下详细步骤操作:

步骤1:在Coolify中创建资源

  1. 导航到Coolify仪表板
  2. 转到项目 → 选择您的项目(例如,“我的第一个项目”)
  3. 点击“添加资源” → “Docker作曲”
  4. 选择“来自GIT存储库” 或 “原始Docker编写”

步骤2:配置Docker Compose

选项A:来自GIT存储库

  • 存储库: https://github.com/BIFROTEK-com/supabase-mcp-http-stream-n8n.git
  • 分行: main
  • Docker编写位置: docker/docker-compose.coolify.yaml

选项B:原始Docker编写 从以下位置复制内容 docker/docker-compose.coolify.yaml

步骤3:设置环境变量

配置这些 必需的 Coolify中的环境变量:

# 🔐 Required: Supabase Configuration
SUPABASE_ACCESS_TOKEN=sbp_your_access_token_here
SUPABASE_PROJECT_REF=your_project_ref_here

# 🔑 Security: API Keys (highly recommended)
MCP_API_KEYS=your-secure-api-key-here

# 📍 Domain Configuration
DOMAIN=your.domain.com

# ⚙️ Optional: Feature Configuration  
MCP_FEATURES=database,docs,development,functions
MCP_READ_ONLY=false
MCP_PORT=3333
NODE_ENV=production

# 🛡️ Optional: Security Settings
MCP_RATE_LIMIT_REQUESTS=100
MCP_RATE_LIMIT_GENERAL=60
MCP_ALLOWED_ORIGINS=*
NODE_LOG_LEVEL=warn

步骤4:配置域和Traefik

  1. 资源名称: supabase-mcp (或您喜欢的名字)
  2. 域配置: https://your.domain.com:3333
    • ✅ 格式: https://your-domain.com:3333
    • ✅ 端口:必须是 3333 (集装箱码头)
    • ✅ 协议:使用 https 通过Traefik进行SSL终止

步骤5:部署

  1. 保存配置
  2. 点击“部署”
  3. 监控日志 成功启动:
    ✅ MCP HTTP Server running on port 3333
    🚀 Streamable HTTP: POST /mcp
    🌊 SSE: GET/POST /sse
    ❤️ Health: GET /health
    🏠 Landing: GET /
    🔗 Ready for connections!
    

步骤6:验证部署

使用 API示例 在......下面

🐳 地方发展

  1. 克隆存储库:
git clone https://github.com/BIFROTEK-com/supabase-mcp-http-stream-n8n.git
cd supabase-mcp-http-stream-n8n
  1. 创建 .env 文件:
cp env.example .env
# Edit .env with your Supabase credentials
  1. 启动服务器:
cd docker && docker-compose up -d
  1. 测试连接: 看 API示例 在......下面

🔌 API终点

🚀 HTTP流传输(推荐)

使用HTTP流进行实时通信的现代MCP传输:

端点 方法 描述
POST /mcp 职位 主MCP API -HTTP流传输
GET /health 得到 健康检查 -服务器状态
GET / 得到 API仪表板 -登录页(需要API密钥)
DELETE /mcp 删除 会话终止 -终止MCP会话

示例用法:

curl -X POST https://your-domain.com:3333/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "X-API-Key: your-api-key" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

🌊 SSE传输(n8n兼容)

旧版n8n MCP客户端工具节点兼容性的服务器发送事件传输:

端点 方法 描述
GET /sse 得到 SSE 连接 -建立服务器发送的事件流
POST /messages 职位 SSE消息 -通过SSE发送JSON-RPC消息

SSE特点:

  • ✅ 自动会话管理 -基于加密的安全会话ID
  • ✅ 保持Pings活跃 -连接稳定性间隔15秒
  • ✅ n8n兼容性 -与n8n MCP客户端工具节点配合使用
  • ✅ 自动清理 -断开连接时会话自动终止

SSE连接流程:

  1. 连接: GET /sse 建立SSE流
  2. 接收:服务器发送 endpoint 具有会话ID的事件
  3. 发送消息: POST /messages?sessionId=<session>
  4. 长连接:服务器每15秒ping一次
  5. 断开:连接关闭时自动清理

示例用法:

# 1. Establish SSE connection
curl -N -H "Accept: text/event-stream" https://your-domain.com:3333/sse

# Server responds:
# event: endpoint
# data: /messages?sessionId=abc123...
# data: {"type":"ready","status":"connected","session":"abc123..."}

# 2. Send messages via returned sessionId
curl -X POST https://your-domain.com:3333/messages?sessionId=abc123... \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

🛡️ 安全功能

  • ✅ API密钥验证:安全访问控制
  • ✅ 速率限制:DoS保护(可配置)
  • ✅ CORS 保护:可配置的原产地限制
  • ✅ 安全标头:Helmet.js与CSP
  • ✅ 输入验证:JSON-RPC 2.0验证
  • ✅ SSL/TLS:通过Traefik支持HTTPS

📊 MCP工具可用

工具 说明
list_tables 列出所有数据库表
list_extensions 列出数据库扩展名
execute_sql 执行原始SQL查询
apply_migration 应用数据库迁移
search_docs 搜索Supabase文档
list_edge_functions 列出边缘功能
deploy_edge_function 部署边缘功能
get_project_url 获取项目API URL
get_anon_key 获取匿名API密钥
generate_typescript_types 生成TypeScript类型
list_migrations 列出数据库迁移

🔧 配置

环境变量

变量 必填 默认 描述
SUPABASE_ACCESS_TOKEN ✅ - 主管管理API令牌
SUPABASE_PROJECT_REF ✅ - 您的Supabase项目参考
MCP_API_KEYS ⚠️ - 逗号分隔的API密钥
MCP_PORT ❌ 3333 HTTP服务器端口
MCP_FEATURES ❌ database,docs,development,functions 已启用的功能
MCP_READ_ONLY ❌ false 只读模式
MCP_RATE_LIMIT_REQUESTS ❌ 100 每15分钟请求数
MCP_RATE_LIMIT_GENERAL ❌ 60 每分钟请求数
MCP_ALLOWED_ORIGINS ❌ * CORS允许的来源

功能组

通过设置启用特定功能 MCP_FEATURES:

  • database -数据库操作(表、SQL、迁移)
  • docs -Supabase文档搜索
  • development -开发工具和实用程序
  • functions -边缘功能管理
  • account -账户管理(不需要项目范围界定)
  • branching -数据库分支操作
  • storage -存储管理
  • debug -调试工具

🔄 n8n集成

⚠️ 重要提示:内置MCP节点问题

这 内置n8n MCP客户端节点存在已知问题 使用SSE流传输(已弃用),可能无法与此服务器可靠工作。为了获得最佳体验,我们 强烈推荐 使用社区开发的MCP客户端节点。

🌟 推荐:社区MCP节点

使用社区节点: @令人讨厌的io/n8n节点mcp

此社区节点提供:

  • ✅ 完整HTTP流传输 支持(推荐)
  • ✅ 可靠的SSE运输 为了传统兼容性
  • ✅ 更好的错误处理 以及连接稳定性
  • ✅ 主动维护 社区支持
  • ✅ AI Agent集成 作为一种工具

📦 安装

  1. 安装社区节点 在n8n实例中:

    # Via n8n UI: Settings → Community Nodes → Install
    # Package name: @nerding-io/n8n-nodes-mcp
    
    # Or via Docker environment:
    N8N_COMMUNITY_PACKAGES_ENABLED=true
    
  2. 将社区节点作为工具启用 (针对AI代理):

    # Required for using MCP Client as AI Agent tool
    N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
    

🚀 使用HTTP流传输进行配置

推荐设置:

  1. 创建HTTP流式凭据:

    • 基本URL: https://your.domain.com:3333/mcp
    • API密钥:您配置的API密钥
    • 运输: HTTP Streamable
  2. 添加MCP客户端节点:

    • 连接类型: HTTP Streamable
    • 行动: List Tools / Execute Tool
    • 选择您的凭据
  3. 工具执行示例:

    {
      "tool": "list_tables",
      "parameters": {}
    }
    

🌊 传统SSE配置(如果需要)

仅当HTTP流不起作用时:

  1. 创建SSE凭据:

    • SSE URL: https://your.domain.com:3333/sse
    • 连接类型: Server-Sent Events (SSE)
    • 标头: X-API-Key: your-api-key
  2. 配置节点:

    • 连接类型: Server-Sent Events (SSE)
    • 选择您的SSE凭据

备注:SSE已弃用,但为了兼容性而保留。始终先尝试HTTP流。

🤖 AI代理集成

社区MCP节点完美地充当了AI Agent工具:

// Example AI Agent prompt
I need you to help me analyze my Supabase database. 
First, list all available tables using the list_tables tool.
Then, execute some SQL queries to get insights about the data.

用于AI代理的Docker配置:

version: '3'
services:
  n8n:
    image: n8nio/n8n
    environment:
      - N8N_COMMUNITY_PACKAGES_ENABLED=true
      - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
      - MCP_API_KEY=your-supabase-mcp-api-key
    # ... rest of configuration

🎯 用例

  • 数据库管理:查询和管理Supabase数据库
  • AI代理:为人工智能助理提供数据库访问
  • 自动化:与n8n工作流集成
  • 文档:以编程方式搜索Supabase文档
  • 边缘功能:部署和管理无服务器功能
  • 数据分析:执行复杂的SQL查询
  • 模式管理:处理数据库迁移

🔗 相关项目

  • MCP框架 -模型上下文协议
  • Supabase -开源Firebase替代品
  • n8n -工作流自动化平台
  • 冷却 -自托管Heroku替代品

📝 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

🆘 支持


由以下材料制成❤️ 靠近 双罗特克