🧳 MCP旅行计划系统
一个全面的旅行计划系统,使用 模型上下文协议(MCP) 由智能链代理编排的服务器。该系统集成 英国铁路网 对于火车和 英国连锁酒店 对于酒店来说,提供具有自然语言处理的端到端旅行规划功能。
🎯 主要特点
- 🤖 智能绞线代理 -复杂旅行查询的自然语言处理
- 🚂 真实列车数据 -通过交通API实时了解英国火车信息
- 🏨 酒店搜索 -具有现实定价和联系信息的英国连锁酒店
- 🔄 往返行程规划 -在单个请求中完成旅行协调
- 🌐 web界面 -现代聊天界面http://localhost:5002
- 🔧 MCP架构 -模块化、可扩展的基于服务器的设计
🚀 快速开始
1.设置环境
# Clone the repository
git clone
cd KiroPythonProject
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install requests flask2.启动系统
# Start the web interface (recommended)
./venv/bin/python strand_agent_web.py打开: http://localhost:5002
3.尝试示例查询
# Round trip planning
"Plan a complete round trip from to on 15/12/2025, returning 16/12/2025"
# Hotel search
"Find hotels in for December 15-16, 2025 for 1 guest"
# Train search
"Find trains from London to Manchester today"
# Complex multi-intent
"I want to catch a train from at 17:40 for London Kings Cross and stay at Travelodge in "📁 项目结构
KiroPythonProject/
├── 🤖 Core System
│ ├── mcp_strand_agent.py # Main intelligent orchestrator
│ ├── strand_agent_web.py # Web interface
│ └── templates/strand_agent.html # Modern web UI
├── 🚂 Train Services
│ ├── real_trainline_mcp_server.py # Live Transport API
│ ├── trainline_mcp_server.py # Demo train server
│ ├── trainline_client.py # Interactive client
│ └── quick_train_search.py # Command-line search
├── 🏨 Hotel Services
│ ├── multi_hotel_api_server.py # Main hotel server (UK chains + OpenStreetMap)
│ ├── demo_hotel_search.py # Hotel search demo and testing
│ └── travel_planner_client.py # Complete travel client
├── 🔧 Configuration
│ ├── .kiro/settings/mcp.json # MCP server config
│ ├── setup_real_apis.py # API setup script
│ └── setup_rapidapi_hotels.py # Optional hotel API enhancement
├── 🧪 Testing
│ ├── test_strand_agent.py # Comprehensive tests
│ ├── test_multi_hotel_integration.py
│ └── test_web_interface.py
└── 📚 Documentation
├── STRAND_AGENT_README.md # Detailed agent docs
├── COMPLETE_TRAVEL_SYSTEM_README.md
├── MULTI_API_HOTEL_SUMMARY.md
└── README_MCP_Clients.md🎮 使用示例
Web界面(推荐)
- 开始:
./venv/bin/python strand_agent_web.py - 打开:http://localhost:5002
- 自然聊天: *“计划一次往返 到 "*
命令行
# Interactive strand agent
./venv/bin/python mcp_strand_agent.py
# Direct hotel search
./venv/bin/python demo_hotel_search.py
# Train client
./venv/bin/python trainline_client.py🔧 API配置和凭据
该系统与 演示数据 开箱即用,但您可以配置 真实API 对于实时数据:
🚂 实时列车数据-运输API(推荐)
免费等级: 1000个请求/天
设置步骤:
- 注册: 访问 transportapi.com
- 注册: 点击“注册”(完全免费)
- 验证电子邮件: 检查收件箱并验证
- 获取凭据: 转到“我的帐户”→ “API密钥”
- 副本: 您的应用程序ID和API密钥
所需凭据:
- 应用程序ID: 格式类似
d948d452 - API密钥: 格式类似
55xxxxxxxxxxxxxxxxxxxxxxxxxxxxb2
配置:
# Run the setup script
./venv/bin/python setup_real_apis.py
# Enter your credentials when prompted:
# App ID: d948d452
# API Key: 55xxxxxxxxxxxxxxxxxxxxxxxxxxxxb2您将获得:
- ✅ 实际列车时间 以及延误
- ✅ 实时出发板
- ✅ 实际定价 信息
- ✅ 平台编号 以及运营商
- ✅ 行程规划 有连接
______________________________________________________________________
🏨 酒店数据-Multi-Hotel API服务器
内置系统: 不需要外部API
包含内容:
这 multi_hotel_api_server.py 提供 酒店数据样本有限 使用:
⚠️ 重要提示: 这表明 仅限选定示例 -任何地区的许多酒店都不会出现在结果中。
- 英国连锁酒店数据库 主要的,重要的
- ✅ 真正的酒店品牌 (普瑞米尔酒店、快捷假日酒店、宜必思酒店、旅行者之家) - ✅ 样品定价 (用于演示目的的模拟范围) - ✅ 真实联系方式 (电话号码、网站) - ✅ 准确的位置 适用于所有英国城市 - ✅ 酒店设施 和评级
- OpenStreetMap集成 (备份)
- ✅ 真实酒店位置 和坐标 - ✅ 地理精度 用于地图绘制 - ✅ 基于位置的搜索 能力
无需设置:
# Hotel server works immediately
./venv/bin/python multi_hotel_api_server.py
# Test hotel search
./venv/bin/python demo_hotel_search.py您将获得:
- ✅ 即时功能 -不需要API密钥
- ✅ 真正的英国连锁酒店 有准确的数据
- ✅ 合理的定价 基于地点和日期
- ✅ 直接预订信息 (电话/网站)
- ✅ 全面覆盖 英国所有地点
______________________________________________________________________
🆓 没有API密钥?没问题!
该系统提供 出色的功能 没有任何API设置:
列车数据(演示模式):
- ✅ 现实的英国路线 和时间表
- ✅ 热门目的地 以及行程规划
- ✅ 车站信息 和设施
- ✅ 样品定价 基于真实路线
酒店数据(Multi-Hotel API服务器):
- ✅ 真正的英国连锁酒店 (普瑞米尔酒店、快捷假日酒店、宜必思酒店、旅行者之家)
- ✅ 样品定价 (用于演示目的的模拟数据)
- ✅ 真实联系方式 (电话号码、网站)
- ✅ 准确的位置 适用于所有英国城市,包括
- ✅ 酒店设施 以及样本评级
______________________________________________________________________
🔐 API密钥安全
最佳实践:
- 永不承诺 版本控制的API密钥
- 使用环境变量 用于生产
- 旋转按键 定期
- 监控使用情况 避免利率限制
环境变量(生产):
# Add to your .env file (not committed to Git)
TRANSPORT_API_KEY=your_transport_api_key
TRANSPORT_APP_ID=your_transport_app_id
RAPIDAPI_KEY=your_rapidapi_key费率限制:
- 运输API: 1000次请求/天(免费)
- RapidAPI酒店: 每月100次请求(免费)
- 系统缓存: 自动减少API调用
______________________________________________________________________
🧪 测试API设置
验证运输API:
# Test live train data
./venv/bin/python -c "
from real_trainline_mcp_server import RealTrainlineMCPServer
server = RealTrainlineMCPServer()
print('Transport API:', 'Configured' if server.transport_api_key != '1' else 'Demo Mode')
"验证Multi-Hotel API:
# Test hotel API server
./venv/bin/python demo_hotel_search.py
# Look for "UK Hotel Chains: ✅ Loading major chains..." in output
# Test specific location
./venv/bin/python -c "
from multi_hotel_api_server import MultiHotelAPIServer
server = MultiHotelAPIServer()
result = server.search_hotels_multi('', '2025-12-15', '2025-12-16', 1)
print('Hotel search working:', 'Premier Inn' in result)
"Web界面测试:
- 开始:
./venv/bin/python strand_agent_web.py - 打开:http://localhost:5002
- 尝试: *“查找今天从伦敦到曼彻斯特的火车”*
- 寻找 实时 vs 演示数据
______________________________________________________________________
💡 API备选方案
如果推荐的API不可用:
列车数据备选方案:
- 国家铁路咨询API (英国官员)
- Trainline合作伙伴API (需要合伙)
- OpenRailData (实时馈送)
酒店数据增强选项:
- 其他连锁酒店 可以添加到数据库中
- 开放街道地图 提供真实位置坐标
- 自定义定价算法 可以实施
- 实时可用性 可以通过酒店网站添加
______________________________________________________________________
🚀 生产部署
对于API的生产使用:
- 设置监控 API使用
- 实现缓存 以减少API调用
- 添加回退 如果API失败,则演示数据
- 使用负载平衡 对于高流量
- 监控速率限制 并根据需要升级计划
🧠 系统能力
自然语言处理
- 多意图检测 -处理火车+酒店请求
- 参数提取 -日期、地点、客人数量
- 往返行程规划 -完成旅行协调
- 灵活的日期解析 -“12月15日至16日”、“明天”、“下周”
旅行服务
- 实时列车数据 -英国真实火车时间和价格
- 酒店搜索 -具有现实定价的英国连锁店
- 车站信息 -设施和连接
- 热门航线 -预先定义的英国旅行路线
Web功能
- 实时聊天 智能路由
- 建议提示 用于常见请求
- 对话历史 具有工具使用跟踪功能
- 错误处理 优雅的后撤
🎯 示例结果
酒店结果示例(演示数据)
- 总理客栈 -XX英镑/晚⭐ 8.5/10
- 智选假日酒店 -XX英镑/晚⭐ 8.3/10
- 鹮 -XX英镑/晚⭐ 8.1/10
- 旅客之家 -XX英镑/晚⭐ 8.0/10
*注:所示价格仅用于演示目的*
实时列车数据
- 真正的LNER、跨国和区域服务
- 实时出发时间和平台信息
- 带连接的行程规划
- 延迟和中断信息
🧪 测试
# Run comprehensive tests
./venv/bin/python test_strand_agent.py
# Test hotel integration
./venv/bin/python test_multi_hotel_integration.py
# Test web interface
./venv/bin/python test_web_interface.py🔄 架构优势
对于用户
- 接口 用于完整的旅行计划
- 自然语言 互动
- 实时数据 配置API时
- 统一体验 横跨火车和酒店
对于开发者
- 模块化MCP架构 具有独立的服务器
- 易于扩展 通过增加新的旅行服务
- 集中智能 内链剂
- 标准协议 以实现互操作性
🚀 未来的增强功能
- 航班预订 集成(Skyscanner、Expedia)
- 汽车租赁 服务(赫兹、安飞士)
- 活动预订 (获取你的指南,Viator)
- 餐厅预订 (开放式表格)
- 多语言支持
- 移动应用 发展
📞 支持
常见问题
- 未连接服务器:检查中的MCP配置
.kiro/settings/mcp.json - API错误:验证安装脚本中的API键
- Web界面未加载:确保Flask已安装,端口5002可用
获取帮助
- 查看各个README文件以获取详细文档
- 查看测试脚本以获取使用示例
- 使用交互模式进行调试:
./venv/bin/python mcp_strand_agent.py
🔑 API快速参考
运输API(火车)
- 网站: https://transportapi.com
- 免费等级: 1000个请求/天
- 设置:
./venv/bin/python setup_real_apis.py - 资格证书: 应用程序ID+API密钥
多酒店API服务器
- 文件:
multi_hotel_api_server.py - 数据来源: 英国连锁酒店+开放街地图
- 设置: 无需-立即工作
- 新闻报道: 所有英国地点都有真实数据
演示模式(无API)
- 火车: 现实的英国路线和时间表
- 酒店: 提供联系信息的真正的英国连锁酒店
- 设置: 无需-立即工作!
______________________________________________________________________
⚠️ 重要免责声明
🏨 酒店数据免责声明
- 样本数据: 所有酒店价格和评级 模拟/样本数据 仅用于演示目的
- 保险范围有限: 结果显示 选定示例 来自开放API和数据库- 并非所有酒店 在一个地区
- 不完整列表: 附近有很多酒店 不会出现 在搜索结果中
- 无酒店背书: 酒店的纳入/排除 不是反射 酒店质量或服务
- 数据来源: 来自有限的API调用和示例数据库的结果,而不是全面的酒店目录
- 可利用性: 酒店可用性为 非实时 仅用于测试系统功能
- 预订: 该系统确实 不处理实际预订 -用户必须直接联系酒店
- 需要验证: 始终独立核实所有酒店详细信息、价格和可用性
- 无责任: 对数据的完整性、准确性、定价、可用性或预订结果不承担任何责任
🚂 列车数据免责声明
- 演示模式: 在没有API密钥的情况下,列车数据 样本/演示数据 仅
- 实时数据: 通过Transport API,数据由第三方服务提供
- 预订: 该系统确实 不处理购票 -使用官方预订平台
- 准确度: 始终在官方铁路网站上核实列车时间和价格
🔧 系统用途
- 教育/发展: 该系统旨在学习MCP架构和旅行规划概念
- 演示: 显示集成模式和自然语言处理能力
- 非商业: 不适用于商业预订或旅行社运营
📞 官方预订
- 酒店: 直接联系酒店或使用官方预订平台
- 火车: 使用 trainline.com, 英国国家铁路公司,或车站订票处
- 验证: 始终在官方网站上验证价格、可用性和条款
______________________________________________________________________
📄 许可证
这个项目是开源的。请随意使用、修改和分发。
注: 本软件按“原样”提供,不提供任何形式的保修。用户有责任独立验证所有旅行信息。
🎉 致谢
- 运输API 英国铁路数据
- 英国连锁酒店 住宿数据
- 模型上下文协议 对于架构框架
- 开发 IDE 开发环境
______________________________________________________________________
🧳 您的完整旅行计划伴侣-从火车到酒店,一切都经过智能策划! ✈️🏨🚂
