Supabase MCP桥接服务器

一个生产就绪的HTTP桥接服务器,通过模型上下文协议(MCP)将CustomGPT(MotherBrainGPT)连接到Supabase,实现泰国Koh Phangan Coconut Beach酒店与餐厅的实时数据库操作。

  • by coconutbeaches
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 coconutbeaches/supabase-mcp-fly

使用说明

MotherBrainGPT Supabase MCP桥

一个生产就绪的HTTP网桥服务器,通过模型上下文协议(MCP)将CustomGPT(MotherBrainGPT)连接到Supabase,为泰国帕岸岛的椰子海滩酒店和餐厅实现实时数据库操作。

🏗️ 建筑

CustomGPT (MotherBrainGPT) → HTTP REST API → MCP Bridge Server → Supabase MCP Server → PostgreSQL Database
  • 前端:CustomGPT,以酒店为中心的说明
  • 桥:具有JSON-RPC转换的Node.js Express服务器
  • 后端:支持MCP服务器进行数据库操作
  • 部署:Fly.io与Docker容器化

✅ 特征

🔄 实时数据库访问

  • 通过REST API执行SQL查询
  • 列出数据库表和架构
  • 搜索Supabase文档
  • 获取数据库顾问和日志
  • 管理边缘功能和分支

🎯 商业智能

  • 酒店客人管理和跟踪
  • 餐厅菜单和订单管理
  • WhatsApp通信分析
  • 收入和运营分析
  • 宾客体验优化

🛡️ 生产就绪

  • 承载令牌身份验证
  • 请求/响应捕获系统
  • 错误处理和超时
  • CORS支持web集成
  • 综合录井

🚀 快速开始

先决条件

  • Node.js 18+
  • 辅助账户和项目
  • Fly.io帐户(用于部署)

本地开发

# Clone and install
git clone https://github.com/yourusername/supabase-mcp-fly.git
cd supabase-mcp-fly
npm install

# Set environment variables
export SUPABASE_ACCESS_TOKEN="your-token"
export PROJECT_REF="your-project-ref"
export BRIDGE_TOKEN="your-auth-token"
export SUPABASE_SECRET_KEYS='{"edge_admin":"sb_secret_..."}'

# Start server
npm start

部署到Fly.io

# Set secrets
fly secrets set SUPABASE_ACCESS_TOKEN="your-token"
fly secrets set PROJECT_REF="your-project-ref"  
fly secrets set BRIDGE_TOKEN="your-auth-token"
fly secrets set SUPABASE_SECRET_KEYS='{"edge_admin":"sb_secret_..."}'

# Deploy
fly deploy

SUPABASE_SECRET_KEYS.edge_admin 是网桥自定义使用的管理员密钥吗 写入端点。不要使用旧版 SUPABASE_SERVICE_ROLE_KEY 变量为 新部署。

📡 API终点

核心工具

  • GET /api/tools -列出可用的MCP工具
  • POST /api/tools/execute_sql -执行SQL查询
  • POST /api/tools/list_tables -获取数据库架构
  • POST /api/tools/search_docs -搜索Supabase文档

认证

所有端点都需要Bearer令牌:

curl -H "Authorization: Bearer your-auth-token" \
  https://your-app.fly.dev/api/tools

🤖 CustomGPT集成

配置

  1. 基础网址: https://your-app.fly.dev
  2. 认证:承载令牌
  3. 开放API:使用 openapi-customgpt.yaml
  4. 说明:复制自 MOTHERBRAIN_INSTRUCTIONS_SHORT.txt

示例查询

-- Menu items with categories
SELECT p.name, p.description, p.price, c.name as category 
FROM products p LEFT JOIN categories c ON p.category_id = c.id 
ORDER BY c.sort_order, p.name;

-- Today's orders
SELECT customer_name, total_amount, order_status 
FROM orders WHERE DATE(created_at) = CURRENT_DATE;

-- Current guests
SELECT stay_id, first_name, table_number 
FROM guests ORDER BY created_at DESC;

📊 数据库模式

关键表

  • 产品 (65项)-餐厅菜单及价格
  • 订单 (4434条记录)-客户订单跟踪
  • 客人 (203活跃)-酒店宾客管理
  • whatsapp_logs (1494条消息)-通信日志
  • 入住人数 (55个待定)-到货管理

📋 文档

  • CUSTOMGPT_CONFIGURATION.md -完整的设置指南
  • MOTHERBRAIN_TEST_PROMPTS.md -87个测试场景
  • openapi-customgpt.yaml -定制GPT-optimized API规范
  • motherbrain-test-prompts.csv -结构化测试用例

🛠️ 发展

项目结构

├── server.js                          # Main bridge server
├── openapi-customgpt.yaml             # API specification
├── MOTHERBRAIN_INSTRUCTIONS.md        # CustomGPT instructions
├── CUSTOMGPT_CONFIGURATION.md         # Setup documentation
├── motherbrain-test-prompts.csv       # Test scenarios
└── fly.toml                           # Deployment config

关键组件

  • 响应捕获:按ID匹配JSON-RPC请求/响应
  • 请求路由:将HTTP REST转换为MCP协议
  • 错误处理:全面的错误消息和回退
  • 认证:承载令牌验证中间件

🧪 测试

从CSV文件运行测试提示:

# Basic functionality
"List our current menu items"
"Show me today's orders"
"How many guests are currently checked in?"

# Business intelligence  
"What are our top 5 most popular menu items?"
"Show me revenue breakdown by category"
"Which guests need follow-up?"

🔧 故障排除

常见问题

  • “找不到工具” → Use execute_sql 对于所有数据库查询
  • “ZodError” → 不要通过 schema 参数到 list_tables
  • “MissingKwarsError” → 包含 "arguments": {} 在请求正文中
  • 身份验证错误 → 检查承载令牌格式

调试模式

集 DEBUG_MCP=1 详细日志记录的环境变量。

🌟 成功指标

  • ✅ 零刀具错误 -完美的API集成
  • ✅ 实时数据 -实时数据库连接
  • ✅ 业务背景 -以酒店为重点的回应
  • ✅ 专业输出 -泰铢格式、分类
  • ✅ 运营见解 -可操作的商业智能

📈 现场表演

MotherBrainGPT成功为椰子海滩运营提供服务:

  • 42个数据库表 可通过自然语言访问
  • 菜单管理 实时定价(约20-1200)
  • 订单跟踪 具有状态监控功能
  • 宾客服务 具有到达/离开管理功能
  • 通信分析 通过WhatsApp集成

🤝 贡献

  1. 分叉存储库
  2. 创建特征分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

🏖️ 关于椰子海滩

泰国帕岸岛的精品酒店和餐厅,利用人工智能和实时数据提供卓越的酒店体验。


内置于❤️ 酒店业 🌴🥥