SkyRoute MCP(v0)
SkyRoute是一个用于飞行工作流程的个人MCP服务器,有三个工具:
search_flightsget_flight_detailsbook_flight
SkyRoute同时支持这两种功能 mock 和 duffel 供应商。
实时状态
- 公共MCP端点:
https://mcp.skyroute.dev/sse - 当前生产供应商:
duffel(直播) - 运输:苏格兰和南方能源公司(
/sse+/messages)
v0中的工作原理
- 自然日期解析(
next Friday,March 6,in 2 weeks) - 模糊机场匹配(
Lisbon->LIS) - 标准化、排名化的报价(
cheapest,fastest,best) - 提供详细信息缓存和预订跟进
- Duffel链接预订结账环节
- 用于远程托管的MCP over SSE传输
- 基于IP的公共端点保护请求速率限制
快速开始
npm install
cp .env.example .env
npm run dev健康检查:
curl http://localhost:3000/health构建并运行:
npm run build
npm start环境
看 .env.example.
关键变量:
FLIGHT_PROVIDER=mock|duffelDUFFEL_API_KEY(当提供者是duffel;键前缀决定环境:duffel_test_=沙盒,duffel_live_=直播)DUFFEL_ENV=sandbox|live(安全标签;应与您的密钥前缀匹配)DUFFEL_BASE_URL(默认值https://api.duffel.com)API_KEY(用于身份验证的承载令牌;留空禁用)MCP_BASE_URL(将其设置为生产环境中已部署的域)DEFAULT_CURRENCY(默认值USD)DEFAULT_LOCALE(默认值en-US)DEFAULT_MAX_RESULTS(默认值20)RATE_LIMIT_WINDOW_MS(默认值60000)RATE_LIMIT_MAX_REQUESTS(默认值300)DUFFEL_LINKS_SUCCESS_URL(默认值https://skyroute.dev/booking/success)DUFFEL_LINKS_FAILURE_URL(默认值https://skyroute.dev/booking/failure)DUFFEL_LINKS_ABANDONMENT_URL(默认值https://skyroute.dev/booking/abandoned)
MCP端点
- 上海证券交易所
GET /sse - 信息:
POST /messages?sessionId=
生产端点示例:
https://mcp.skyroute.dev/sse
从其他机器连接
任何人都可以连接到您的公共铁路URL。
使用此MCP端点:
https://mcp.skyroute.dev/sse
重要提示:
localhost仅适用于您自己的设备。- 其他设备必须使用您的公共HTTPS URL。
- 如果
API_KEY已设置,客户端必须包括Authorization: Bearer在他们的要求。
克劳德桌面版
- 打开克劳德桌面。
- 首选
Settings -> Connectors. - 添加自定义远程MCP服务器。
- 将URL设置为
https://mcp.skyroute.dev/sse. - 如果启用了auth,请添加
Authorization: Bearer头球 - 保存并重新连接。
开爪
使用 mcporter 使用相同的远程URL:
npx mcporter config add skyroute https://mcp.skyroute.dev/sse --transport sse --scope home然后验证工具:
npx mcporter list skyroute --schema工具合同
search_flights
先叫这个。
输入:
origin(城市或IATA)destination(城市或IATA)departure_date(自然或ISO)date(别名departure_date,可选)return_date(可选)adults,children,infants(可选)cabin_class(economy|premium_economy|business|first,可选)cabinClass/cabin(别名cabin_class,可选)currency,locale,max_results,sort(可选)
输出包括:
searchId- 规范化请求
- 排名
offers nextActions
get_flight_details
跟在…后面叫 search_flights 使用返回的ID。
输入:
search_idoffer_id
输出包括:
- 通俗易懂的票价规则
- 行李和时间表
nextActions
book_flight
跟在…后面叫 search_flights 使用返回的ID。
输入:
search_idoffer_id
输出包括:
bookingRedirectUrl(行李结账会话URL)- 关于在Duffel的托管页面上完成结账的指导信息
交互食谱示例
秘诀1:快速单向搜索
用户:“查找下周五从旧金山飞往里斯本的航班,1名成人”
- 客服电话
search_flights - 代理商提供前三名优惠
- 用户选择优惠
- 客服电话
get_flight_details - 客服电话
book_flight
配方2:用户询问取消政策
用户:“我可以取消这个吗?”
- 客服电话
get_flight_details - 代理人总结
conditions.cancellation - 代理商报价
book_flight或新search_flights
秘诀3:用户想要更便宜的选择
用户:“仅显示最便宜的选项”
- 客服电话
search_flights随着sort=cheapest - 代理显示受限列表
部署(铁路)
- 将此仓库推送到GitHub。
- 从仓库创建铁路项目。
- 从以下位置设置环境变量
.env.example. - 部署。
- 使用
https:///sse作为MCP终点。
铁路生产变量(示例)
MCP_BASE_URL=https://mcp.skyroute.devFLIGHT_PROVIDER=duffelDUFFEL_API_KEY=DUFFEL_ENV=sandbox(或live使用实时密钥)DUFFEL_BASE_URL=https://api.duffel.comAPI_KEY=DEFAULT_CURRENCY=USDDEFAULT_LOCALE=en-USDEFAULT_MAX_RESULTS=20OFFER_CACHE_TTL_MS=1800000RATE_LIMIT_WINDOW_MS=60000RATE_LIMIT_MAX_REQUESTS=300
与Duffel一起生活
- 从Duffel仪表板获取实时API密钥(从
duffel_live_). - 集
DUFFEL_API_KEY到Railway环境变量中的实时密钥。 - 集
DUFFEL_ENV=live铁路环境变量。 - 集
API_KEY使用安全令牌来保护端点。 - 重新部署。
当前限制
- 无聊天内收款。
book_flight创建Duffel Links结账会话。付款是在Duffel的托管页面上完成的,而不是在MCP内部。
下一步
通过Duffel订单创建直接预订,并提供全面的定价控制和订单服务。
许可证
麻省理工学院
