航班与住宿搜索服务

一个基于Duffel API的TypeScript实现,提供航班和住宿搜索功能,支持单程、往返和多城市航班查询,以及酒店住宿和评价获取。

  • by clockworked247
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 clockworked247/flights-mcp-ts

使用说明

航班+住宿搜索MCP(TypeScript)

航班和住宿搜索MCP服务器的TypeScript实现,使用Duffel API搜索航班。此MCP服务器提供搜索单程、往返和多城市航班的工具。

特性

  • 搜索单程、往返和多城市航班
  • 获取有关特定航班优惠的详细信息
  • 指定客舱等级、乘客人数和连接偏好
  • 按出发和到达时间窗口过滤
  • 搜索旅行住宿(酒店/住宿)
  • 获取特定住宿/酒店的客人评论

设置

  1. 安装依赖项:

    npm install
    
  2. 构建项目:

    npm run build
    
  3. 启动服务器:

    npm start
    

环境变量

创建一个 .env 文件包含:

DUFFEL_API_KEY=your_duffel_api_key

您可以从测试API密钥开始(duffel_test)尝试该功能。

与Smithery一起使用

向Smithery发布此MCP:

npx @smithery/cli publish

要运行已发布的MCP:

npx @smithery/cli run @your-username/flights-mcp-ts --config "{\"duffelApiKey\":\"your_duffel_api_key\"}"

可用工具

此MCP提供以下工具:

  1. search_flights -搜索单程、往返或多城市航班
  2. get_offer_details -获取特定航班优惠的详细信息
  3. search_multi_city -多城市航班搜索专用工具
  4. search_stays -搜索旅行住宿(酒店/住宿)
  5. get_stay_reviews -获取特定住宿/酒店的客人评论

查询示例

  • “查找2025年5月15日从旧金山飞往纽约的航班”
  • “搜索从洛杉矶国际机场到洛杉矶国际机场的往返航班,6月10日起飞,6月20日返回”
  • “查找2名成人从东京到巴黎的商务舱航班”
  • “获取航班优惠的详细信息[offer_id]”
  • “查找2025-06-10至2025-06-12期间伦敦可容纳2位客人的酒店”
  • “获取住宿[hotel_id]的评论”

住宿/酒店搜索和评论

1.搜索住宿(search_stays)

参数:

  • location (string):搜索住宿的城市、机场代码或地区
  • check_in_date (字符串):入住日期(YYYY-MM-DD)
  • check_out_date (字符串):退房日期(YYYY-MM-DD)
  • guests (人数):客人人数
  • rooms (数量,可选):房间数量
  • radius_km (数字,可选):搜索半径,单位为公里

请求示例:

{
  "location": "London",
  "check_in_date": "2025-06-10",
  "check_out_date": "2025-06-12",
  "guests": 2
}

示例响应:

{
  "offers": [
    {
      "offer_id": "off_123",
      "hotel_id": "acc_0000AWr2VsUNIF1Vl91xg0",
      "hotel_name": "The Grand Hotel",
      "address": "1 Main St, London",
      "price": { "amount": "350.00", "currency": "GBP" },
      "room_type": "Deluxe Suite",
      "cancellation_policy": "Free cancellation until 24h before check-in"
    }
  ]
}

注: 使用 hotel_id 从搜索结果中 stay_id 以供评论。


2.获取住宿评价(get_stay_reviews)

参数:

  • stay_id (string):唯一的行李寄存/酒店ID(来自search_stays结果)
  • after (字符串,可选):分页光标(后)
  • before (字符串,可选):分页光标(前)
  • limit (数量,可选):最多可返回评论数(1-200)

请求示例:

{
  "stay_id": "acc_0000AWr2VsUNIF1Vl91xg0"
}

示例响应:

{
  "meta": { "limit": 50, "after": "..." },
  "reviews": [
    {
      "text": "Excellent facilities. Polite staff.\nAir conditioning could use some maintenance.\n",
      "score": 8.4,
      "reviewer_name": "Bessie Coleman",
      "created_at": "2025-01-01"
    }
  ]
}

地方发展

对于自动重新加载的开发:

npm run dev

许可证

麻省理工学院