白标AI酒店助理-MCP服务器
数据层-第1阶段
完成酒店预订平台的MCP服务器实施。
🏗️ 建筑
Orchestrator MCP (Port 3000)
├── Hotel MCP (Port 3001)
├── Restaurant MCP (Port 3002)
├── User MCP (Port 3003)
└── Partner MCP (Port 3004)📦 包含什么
- 5台MCP服务器 (编排器+4个子MCP)
- 100个模拟房产 (50家酒店+50家餐厅)
- 5城市 (迪拜、伦敦、纽约、新加坡、新德里)
- Supabase集成 (平台数据存储)
- MCP协议 (基于HTTP的JSON-RPC 2.0)
🚀 快速开始
先决条件
- Node.js 18+
- npm或纱线
- Supabase账户(免费等级)
1.安装依赖项
npm install2.配置环境
cp .env.example .env
# Edit .env with your Supabase credentials3.启动所有MCP服务器
npm run start:all或者单独开始:
npm run start:orchestrator # Port 3000
npm run start:hotel # Port 3001
npm run start:restaurant # Port 3002
npm run start:user # Port 3003
npm run start:partner # Port 30044.测试设置
npm run test🗂️ 项目结构
/hospitality-mcp-servers/
├── mock-data/ # JSON mock data
│ ├── hotels/ # 50 hotels across 5 cities
│ └── restaurants/ # 50 restaurants across 5 cities
├── src/
│ ├── orchestrator-mcp/ # Central coordinator
│ ├── hotel-mcp/ # Hotel operations
│ ├── restaurant-mcp/ # Restaurant operations
│ ├── user-mcp/ # User management
│ └── partner-mcp/ # Partner recommendations
├── config/ # Configuration files
└── scripts/ # Deployment scripts🔧 配置
环境变量(.env)
# Supabase
SUPABASE_URL=your_supabase_project_url
SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_KEY=your_supabase_service_role_key
# MCP Servers
ORCHESTRATOR_PORT=3000
HOTEL_MCP_PORT=3001
RESTAURANT_MCP_PORT=3002
USER_MCP_PORT=3003
PARTNER_MCP_PORT=3004
# MCP API Keys
ORCHESTRATOR_API_KEY=your_orchestrator_api_key
HOTEL_MCP_API_KEY=your_hotel_mcp_api_key
RESTAURANT_MCP_API_KEY=your_restaurant_mcp_api_key
USER_MCP_API_KEY=your_user_mcp_api_key
PARTNER_MCP_API_KEY=your_partner_mcp_api_key
# Environment
NODE_ENV=development📡 API终点
编排器MCP(端口3000)
所有请求都通过Orchestrator:
POST /mcp - Main MCP endpoint (JSON-RPC 2.0)
GET /health - Health check可用工具
会话管理:
session_createsession_validatesession_identifysession_get_history
购物车操作:
cart_add_itemcart_remove_itemcart_getcart_clear
预订:
booking_createbooking_confirmbooking_cancel
房产搜索:
search_hotelssearch_restaurants
🧪 测试
手动测试
# Test Orchestrator MCP
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "search_hotels",
"arguments": {
"client_id": "test_client",
"location": "Dubai",
"check_in": "2025-12-01",
"check_out": "2025-12-03",
"guests": 2
}
}
}'📦 部署
部署到AWS Lambda
- 为Lambda构建:
npm run build:lambda- 部署:
npm run deploy:lambda部署脚本将:
- 为每个MCP创建Lambda函数
- 设置API网关
- 配置环境变量
- 设置VPC(如果需要)
部署到EC2
# SSH into EC2 instance
ssh -i your-key.pem ec2-user@your-ec2-ip
# Clone repository
git clone your-repo-url
cd hospitality-mcp-servers
# Install dependencies
npm install
# Set up PM2
npm install -g pm2
pm2 start ecosystem.config.js
# Save PM2 configuration
pm2 save
pm2 startup🗃️ 模拟数据
酒店
- 每个城市10家酒店(迪拜、伦敦、纽约、新加坡、新德里)
- 每家酒店有3种房型(标准房、豪华房、套房)
- 合理的定价和可用性
- 完整的设施和描述
餐厅
- 每个城市10家餐厅
- 每家餐厅20-30个菜单项
- 多种菜系
- 表可用性时间表
🔐 安全
- MCP之间的API密钥验证
- Supabase行级安全(RLS)
- 小部件嵌入的域验证
- 多租户数据隔离
📊 监控
日志将写入:
- 控制台(开发)
logs/目录(生产)
每个MCP记录:
- 传入请求
- 工具执行
- 错误和警告
- 性能指标
🐛 故障排除
MCP服务器无法启动
检查:
- 端口尚未使用:
lsof -i :3000 - 已配置环境变量
- Supabase凭据有效
MCP之间的连接被拒绝
检查:
- 所有正在运行的MCP服务器
- 配置中的端口正确
- 防火墙规则(如果已部署)
模拟数据未加载
检查:
- JSON文件
/mock-data/目录 - MCP服务器代码中的文件路径
- JSON语法有效
🔄 开发工作流程
- 地方发展:
- 启动所有MCP: npm run start:all - 使用curl或Postman进行测试 - 检查控制台中的日志
- 推送到GitHub:
git add .
git commit -m "Update MCP servers"
git push origin main- 部署到Lambda:
npm run deploy:lambda📚 文档
🤝 贡献
这是第一阶段的实施。未来的增强功能:
- PMS/POS API集成
- 实时可用性
- 高级缓存
- 负载均衡
📄 许可证
专有-白标SaaS产品
🆘 支持
对于问题或疑问:
- 检查登录
logs/目录 - 查看Supabase仪表板
- 检查MCP服务器运行状况端点
______________________________________________________________________
版本: 1.0.0(第一阶段) 最后更新时间: 2025-01-27
