航班搜索预订服务

基于MCP协议的航班搜索与预订服务,提供结构化航班搜索、价格过滤、最优航班识别及预订链接生成功能,适用于AI旅行助手和价格比较服务。

  • by Radhe1912
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Radhe1912/mcp-flight-booking

使用说明

✈️ 基于MCP的航班搜索和预订服务

A. 模型上下文协议(MCP)–与构建的兼容后端服务 快速MCP,公开由 Aviasales(旅行支付)API.
设计供MCP客户使用,例如 MCP 检查员Claude Desktop或其他支持MCP的代理。


🚀 特性

  • 使用FastMCP实现的MCP兼容服务器
  • 结构化MCP工具用于:
    • 航班搜索
    • 基于价格的过滤和分页
    • 最便宜(最好)的航班识别
    • 详细飞行检查
    • 预订链接生成
  • 与Aviasales/Travelpayouts API集成
  • 汇总附近出发日期的航班
  • 按预订链接删除重复结果
  • 协议层与外部API适配器之间的干净隔离

🧠 架构概述

┌────────────────────┐
│   MCP Client       │
│ (MCP Inspector)   │
└─────────▲──────────┘
          │ MCP
┌─────────┴──────────┐
│  FastMCP Server    │
│  - search_flights  │
│  - get_options     │
│  - get_details     │
│  - booking_link    │
└─────────▲──────────┘
          │
┌─────────┴──────────┐
│ AviasalesClient    │
│ (Service Adapter)  │
└─────────▲──────────┘
          │
┌─────────┴──────────┐
│ Aviasales API      │
│ (Travelpayouts)    │
└────────────────────┘

🛠 技术栈

  • 语言: python
  • 协议: 模型上下文协议(MCP)
  • 框架: 快速MCP
  • 客户(测试): MCP 检查员
  • HTTP客户端: 请求:
  • 配置: python dotenv
  • 外部API: Aviasales(差旅支出)

📂 项目结构

.
├── server.py
├── aviasales_client.py
├── requirements.txt
├── .env.example
├── .gitignore
└── README.md

🔐 环境变量

创建 .env 项目根目录中的文件:

AVIASALES_API_KEY=your_api_key_here
AVIASALES_MARKER=your_marker_here

📦 安装

git clone https://github.com/your-username/mcp-flight-search.git
cd mcp-flight-search

python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

pip install -r requirements.txt

▶️ 运行MCP服务器

fastmcp dev server.py

🔍 MCP检验员测试

  1. 打开 MCP 检查员
  2. 连接到正在运行的MCP服务器
  3. 发现可用工具
  4. 调用MCP工具,例如:
    • search_flights
    • get_flight_options
    • get_flight_option_details
    • request_booking_link

🧪 MCP工具流程示例

1.搜索航班

search_flights(origin, destination, date)

2.筛选和分页选项

get_flight_options(search_id, max_price, offset, limit)

3.检查选定的航班

get_flight_option_details(search_id, index)

4.获取预订链接

request_booking_link(search_id, index)

🎯 用例

  • 人工智能旅行助理的MCP后端
  • LLM工具提供商(Claude、Cursor)
  • 航班价格比较服务
  • 基于代理的旅行计划工作流程

🧩 MCP合规说明

  • 实施工具级MCP
  • 确定性、模式驱动的工具响应
  • 具有受控内存缓存的无状态工具执行
  • 使用MCP检查器验证

📈 未来的增强功能

  • 代理驱动的MCP编排
  • 多服务MCP(航班+酒店)
  • 会话范围的状态管理
  • Claude桌面/光标集成
  • 基于Redis的缓存

👤 作者

拉德·佩特尔
全栈开发人员