旅行聚合服务

一个全面的旅行聚合MCP服务器,为AI助手提供航班搜索、酒店预订、机场信息和实时航班跟踪功能。

  • by Spoofkapoof
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 lev-corrupted/travel-mcp-server

使用说明

旅行MCP服务器

一个用于旅行聚合的综合模型上下文协议(MCP)服务器,为人工智能助理提供航班搜索、酒店预订、机场信息和实时航班跟踪的访问权限。

快速链接

特性

航班搜索和预订

  • 搜索航班:查找机场之间的航班优惠,包括价格、航空公司和时刻表
  • 寻找最便宜的日期:发现最实惠的旅行日期,以便灵活规划
  • 航班跟踪:实时飞行状态、位置、高度和预计到达时间

酒店搜索

  • 搜索酒店:查找有空房、价格、设施和位置的酒店
  • 多城市支持:搜索全球任何城市的酒店

机场信息

  • 机场搜索:按城市名称或位置查找机场
  • 机场详情:获取包括时区和设施在内的全面机场信息
  • 路由信息:查看两个机场之间的所有航班

使用的API

主要:Amadeus自助服务API

  • 航班优惠搜索
  • 酒店搜索
  • 机场和城市搜索
  • 最便宜的日期搜索

获取您的Amadeus API密钥 (免费等级,每月配额)

次要:AviationStack API

  • 实时航班跟踪
  • 航班状态更新
  • 路由信息

获取AviationStack API密钥 (每月100次免费请求)

安装

先决条件

  • Python 3.10或更高版本
  • pip包管理器

设置步骤

  1. 克隆存储库
cd travel-mcp-server
  1. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项
pip install -e .
  1. 设置环境变量
cp .env.example .env

编辑 .env 使用API凭据提交文件:

# Amadeus API Credentials (Required)
AMADEUS_CLIENT_ID=your_amadeus_api_key_here
AMADEUS_CLIENT_SECRET=your_amadeus_api_secret_here
AMADEUS_ENV=test  # Use 'production' when ready

# AviationStack API Key (Optional - for flight tracking)
AVIATIONSTACK_API_KEY=your_aviationstack_key_here

获取API密钥

Amadeus API

  1. 首选 Amadeus开发者版
  2. 点击“注册”创建帐户
  3. 转到“我的自助服务工作区”
  4. 点击“创建新应用”
  5. 复制您的API密钥和API机密

AviationStack(可选)

  1. 首选 AviationStack
  2. 注册一个免费帐户
  3. 从仪表板复制API密钥

使用Claude Desktop

配置

将此添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "travel": {
      "command": "/path/to/travel-mcp-server/venv/bin/python",
      "args": [
        "-m",
        "travel_mcp.server"
      ],
      "env": {
        "AMADEUS_CLIENT_ID": "your_amadeus_api_key",
        "AMADEUS_CLIENT_SECRET": "your_amadeus_api_secret",
        "AMADEUS_ENV": "test",
        "AVIATIONSTACK_API_KEY": "your_aviationstack_key"
      }
    }
  }
}

重新启动克劳德桌面

添加配置后,重新启动Claude Desktop以加载MCP服务器。

可用工具

1.探照灯

搜索两个机场之间的航班优惠。

参数:

  • origin (必填):始发机场IATA代码(例如“JFK”)
  • destination (必填):目的地机场IATA代码(例如“LAX”)
  • departure_date (必填):出发日期(YYYY-MM-DD)
  • return_date (可选):返回日期(YYYY-MM-DD)
  • adults (可选):乘客人数(默认值:1)
  • max_results (可选):要返回的最大结果(默认值:10)

例子:

Find me flights from New York (JFK) to London (LHR) on December 25, 2025, returning January 5, 2026

2.搜索酒店

搜索一个城市的酒店,包括空房情况和价格。

参数:

  • city_code (必需):城市国际航空运输协会代码(例如“NYC”、“标准杆数”)
  • check_in_date (必填):入住日期(YYYY-MM-DD)
  • check_out_date (必填):退房日期(YYYY-MM-DD)
  • adults (可选):客人数量(默认值:1)

例子:

Find hotels in Paris for December 20-25, 2025 for 2 adults

3.搜索_机场

按城市名称搜索机场。

参数:

  • city_name (必填):城市名称

例子:

What airports are in Tokyo?

4.find_cheapest_dates

找到在两个机场之间飞行的最便宜的日期。

参数:

  • origin (必填):始发机场IATA代码
  • destination (必填):目的地机场IATA代码

例子:

When is the cheapest time to fly from San Francisco to Sydney?

5.轨迹灯

实时跟踪航班(需要AviationStack API键)。

参数:

  • flight_iata 或 flight_icao (需要一个):航班代码

例子:

Track flight AA100

6.获取照明路径

获取特定航线上的所有航班。

参数:

  • dep_iata (可选):出发机场IATA代码
  • arr_iata (可选):到达机场IATA代码

例子:

What flights go from LAX to JFK?

7.获取机场信息

获取有关机场的详细信息。

参数:

  • iata_code (必填):机场IATA代码

例子:

Tell me about Heathrow airport (LHR)

通用机场代码

  • 约翰·F·肯尼迪 -纽约约翰·肯尼迪
  • 洛杉矶国际机场 -洛杉矶国际
  • 左心室 -伦敦希思罗机场
  • CDG -巴黎戴高乐
  • 近实时 -东京成田
  • DXB -迪拜国际
  • 悉尼 -悉尼机场
  • 旧金山国际机场 -旧金山国际

发展

运行测试

pytest tests/

代码格式化

black src/
isort src/

类型检查

mypy src/

API费率限制

Amadeus免费套餐

  • 测试环境:固定月度配额
  • 生产:每月免费配额+现收现付

AviationStack免费套餐

  • 每月100次API调用
  • 30-60秒数据延迟

故障排除

“必须设置AMADEUS_CLIENT_ID和AMADEUS_LIENT_SECRET”

  • 确保您已创建 .env 将您的凭据归档
  • 或者在Claude Desktop配置中设置它们

“未知工具”错误

  • 检查您的API密钥是否有效
  • 确保客户端已初始化(检查服务器日志)

超过API费率限制

  • Amadeus:等待月度配额重置或升级计划
  • AviationStack:等待每月重置或升级计划

贡献

欢迎投稿!请随时提交拉取请求。

许可证

麻省理工学院许可证-请在您的项目中自由使用!

支持

对于问题和疑问:

路线图

  • []添加价格提醒和监控
  • []添加汽车租赁搜索
  • []添加火车/铁路搜索(Eurail、Amtrak)
  • []添加活动/旅游预订
  • []添加旅行保险选项
  • []添加签证要求检查器
  • []添加货币转换器
  • []添加目的地的天气预报
  • []为重复查询添加缓存
  • []添加更多旅行API(Booking.com、Expedia)

致谢

内置:


旅行愉快! ✈️ 🏨 🌍