票价数据库MCP服务器🎯
生产级模型上下文协议(MCP)服务器为AI代理提供对Fareway高尔夫巡回赛数据库的安全、高性能访问。
🌟 特性
企业级架构
- 类型安全:具有严格模式的完整TypeScript
- 表演:连接池、缓存和优化查询
- 安全:API密钥身份验证、速率限制、RLS强制
- 可观察对象:结构化日志记录、健康检查、指标
- 可扩展的:水平扩展就绪,支持Redis
MCP工具暴露
课程工具
search_courses-按地区、类型、价格范围搜索课程get_course_details-获取全面的课程信息get_recommended_courses-人工智能优化的课程推荐find_course_by_name-按课程名称模糊搜索
住宿工具
search_accommodations-查找课程/地区附近的酒店get_accommodation_details-酒店详细信息get_golf_resorts-查找住宿和娱乐场所
定价和费率工具
get_supplier_rates-获取运营商的协商价格has_negotiated_rate-快速查看特价get_operator_suppliers-列出运营商的供应商关系
🚀 快速开始
发展
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env
# Configure your .env file with Supabase credentials
# Run in development mode
npm run dev生产
# Build
npm run build
# Start
npm start码头工人
# Build image
docker build -t fareway-database-mcp .
# Run
docker run -p 8081:8081 --env-file .env fareway-database-mcp📡 API终点
健康与状态
GET /health-健康检查GET /metrics-Prometheus指标(如果启用)
MCP协议
GET /sse-MCP通信的服务器发送事件POST /api/tools/{tool_name}-直接REST API访问(用于测试)
🔒 安全
认证
所有请求都需要API密钥身份验证:
curl -H "Authorization: Bearer YOUR_API_KEY" \
http://localhost:8081/api/tools/search_courses速率限制
- 默认值:每个API键每分钟100个请求
- 可通过环境变量进行配置
行级安全
所有数据库查询都遵循Supabase RLS策略。
🎯 工具使用示例
搜索课程
{
"name": "search_courses",
"arguments": {
"region": "Southwest Ireland",
"course_type": "links",
"max_price_cents": 50000,
"limit": 10
}
}获取供应商价格
{
"name": "get_supplier_rates",
"arguments": {
"operator_id": "uuid-here",
"supplier_type": "golf_course"
}
}📊 监控
结构化日志记录
所有日志都是JSON格式,便于解析:
{
"timestamp": "2024-11-25T20:00:00.000Z",
"level": "info",
"tool": "search_courses",
"duration_ms": 145,
"success": true,
"results_count": 8
}健康检查
curl http://localhost:8081/health答复:
{
"status": "healthy",
"version": "1.0.0",
"uptime_seconds": 3600,
"database": "connected",
"cache": "connected"
}🏗️ 建筑
┌─────────────────────────────────────────┐
│ HTTP/SSE Server (Express) │
│ - Authentication middleware │
│ - Rate limiting │
│ - Request validation │
└──────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ MCP Server Core │
│ - Tool registry │
│ - Request routing │
│ - Response formatting │
└──────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Tool Implementations │
│ - Course tools │
│ - Accommodation tools │
│ - Rate tools │
└──────────────┬──────────────────────────┘
│
┌────────┴────────┐
▼ ▼
┌──────────┐ ┌──────────┐
│ Supabase │ │ Redis │
│ (DB) │ │ (Cache) │
└──────────┘ └──────────┘🧪 测试
# Run tests
npm test
# Run with coverage
npm test:coverage
# Type check
npm run typecheck📦 部署
铁路
- 推送到GitHub
- 将Railway连接到您的仓库
- 设置根目录:
fareway-database-mcp - 配置环境变量
- 部署!
环境变量(生产)
必修的:
SUPABASE_URLSUPABASE_SERVICE_KEYMCP_API_KEY
可选:
REDIS_URL(用于缓存)PORT(默认值:8081)LOG_LEVEL(默认值:info)
🔧 配置
缓存设置
ENABLE_CACHE=true
CACHE_TTL_SECONDS=300速率限制
RATE_LIMIT_WINDOW_MS=60000
RATE_LIMIT_MAX_REQUESTS=100📄 许可证
专有-Fareway技术
🤝 支持
如有任何问题或疑问,请联系Fareway开发团队。
______________________________________________________________________
内置于❤️ 高尔夫巡回赛运营的未来
