✈️ 基于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检验员测试
- 打开 MCP 检查员
- 连接到正在运行的MCP服务器
- 发现可用工具
- 调用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的缓存
______________________________________________________________________
👤 作者
拉德·佩特尔\ 全栈开发人员
