内容
# 旅行MCP服务器
一个全面的模型上下文协议(MCP)服务器,用于旅行聚合,为AI助手提供航班搜索、酒店预订、机场信息和实时航班跟踪的访问权限。
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://modelcontextprotocol.io/)
## 快速链接
- [快速入门指南](QUICKSTART.md) - 5分钟内开始使用
- [API文档](#可用工具) - 查看所有可用工具
- [故障排除](#故障排除) - 常见问题和解决方案
## 功能
### 航班搜索与预订
- **搜索航班**:查找两个机场之间的航班报价,包括价格、航空公司和时刻表
- **查找最便宜日期**:为灵活规划发现最经济的旅行日期
- **航班跟踪**:实时航班状态、位置、海拔和预计到达时间
### 酒店搜索
- **搜索酒店**:查找具有可用性、价格、设施和位置的酒店
- **多城市支持**:在全球任何城市搜索酒店
### 机场信息
- **机场搜索**:按城市名称或位置查找机场
- **机场详情**:获取包括时区和设施在内的综合机场信息
- **航线信息**:查看两个机场之间的所有航班
## 使用的API
### 主要:Amadeus 自助服务API
- 航班报价搜索
- 酒店搜索
- 机场和城市搜索
- 最便宜日期搜索
[获取您的Amadeus API密钥](https://developers.amadeus.com/) (免费层每月配额可用)
### 次要:AviationStack API
- 实时航班跟踪
- 航班状态更新
- 航线信息
[获取您的AviationStack API密钥](https://aviationstack.com/) (每月100次免费请求)
## 安装
### 先决条件
- Python 3.10 或更高版本
- pip 包管理器
### 设置步骤
1. **克隆仓库**
```bash
cd travel-mcp-server
```
2. **创建虚拟环境**
```bash
python3 -m venv venv
source venv/bin/activate # 在 Windows 上:venv\Scripts\activate
```
3. **安装依赖项**
```bash
pip install -e .
```
4. **设置环境变量**
```bash
cp .env.example .env
```
编辑 `.env` 文件,包含您的 API 凭证:
```env
# Amadeus API 凭证(必需)
AMADEUS_CLIENT_ID=您的_amadeus_api_key_here
AMADEUS_CLIENT_SECRET=您的_amadeus_api_secret_here
AMADEUS_ENV=test # 准备好时使用 'production'
# AviationStack API 密钥(可选 - 用于航班跟踪)
AVIATIONSTACK_API_KEY=您的_aviationstack_key_here
```
### 获取 API 密钥
#### Amadeus API
1. 前往 [Amadeus for Developers](https://developers.amadeus.com/)
2. 点击 "Register" 创建帐户
3. 前往 "My Self-Service Workspace"
4. 点击 "Create New App"
5. 复制您的 API 密钥和 API 机密
#### AviationStack(可选)
1. 前往 [AviationStack](https://aviationstack.com/)
2. 注册免费帐户
3. 从仪表板复制您的 API 密钥
## 与 Claude Desktop 一起使用
### 配置
将以下内容添加到您的 Claude Desktop 配置文件中:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"travel": {
"command": "/path/to/travel-mcp-server/venv/bin/python",
"args": [
"-m",
"travel_mcp.server"
],
"env": {
"AMADEUS_CLIENT_ID": "您的_amadeus_api_key",
"AMADEUS_CLIENT_SECRET": "您的_amadeus_api_secret",
"AMADEUS_ENV": "test",
"AVIATIONSTACK_API_KEY": "您的_aviationstack_key"
}
}
}
}
```
### 重启 Claude Desktop
添加配置后,重启 Claude Desktop 以加载 MCP 服务器。
## 可用工具
### 1. search_flights
搜索两个机场之间的航班报价。
**参数:**
- `origin`(必填):始发机场 IATA 代码(例如,'JFK')
- `destination`(必填):目的机场 IATA 代码(例如,'LAX')
- `departure_date`(必填):出发日期(YYYY-MM-DD)
- `return_date`(可选):返回日期(YYYY-MM-DD)
- `adults`(可选):乘客人数(默认:1)
- `max_results`(可选):返回的最大结果数(默认:10)
**示例:**
```
请帮我查找从纽约(JFK)到伦敦(LHR)的航班,出发日期为2025年12月25日,返回日期为2026年1月5日
```
### 2. search_hotels
搜索城市中的酒店,包含可用性和价格信息。
**参数:**
- `city_code`(必填):城市 IATA 代码(例如,'NYC','PAR')
- `check_in_date`(必填):入住日期(YYYY-MM-DD)
- `check_out_date`(必填):退房日期(YYYY-MM-DD)
- `adults`(可选):客人人数(默认:1)
**示例:**
```
请帮我查找巴黎12月20-25日,2位成人的酒店
```
### 3. search_airports
按城市名称搜索机场。
**参数:**
- `city_name`(必填):城市名称
**示例:**
```
东京有哪些机场?
```
### 4. find_cheapest_dates
查找两个机场之间最便宜的飞行日期。
**参数:**
- `origin`(必填):始发机场 IATA 代码
- `destination`(必填):目的机场 IATA 代码
**示例:**
```
从旧金山到悉尼最便宜的飞行时间是什么?
```
### 5. track_flight
实时跟踪航班(需要 AviationStack API 密钥)。
**参数:**
- `flight_iata` 或 `flight_icao`(必填一项):航班代码
**示例:**
```
跟踪航班 AA100
```
### 6. get_flights_by_route
获取特定航线上的所有航班。
**参数:**
- `dep_iata`(可选):出发机场 IATA 代码
- `arr_iata`(可选):到达机场 IATA 代码
**示例:**
```
有哪些航班从 LAX 到 JFK?
```
### 7. get_airport_info
获取机场的详细信息。
**参数:**
- `iata_code`(必填):机场 IATA 代码
**示例:**
```
请告诉我希思罗机场(LHR)的信息
```
## 常见机场代码
- **JFK** - 纽约约翰·F·肯尼迪
- **LAX** - 洛杉矶国际机场
- **LHR** - 伦敦希思罗
- **CDG** - 巴黎戴高乐
- **NRT** - 东京成田
- **DXB** - 迪拜国际机场
- **SYD** - 悉尼机场
- **SFO** - 旧金山国际机场
## 开发
### 运行测试
```bash
pytest tests/
```
### 代码格式化
```bash
black src/
isort src/
```
### 类型检查
```bash
mypy src/
```
## API速率限制
### Amadeus 免费层
- **测试环境**:固定每月配额
- **生产环境**:免费每月配额 + 按需付费
### AviationStack 免费层
- **每月 100 次 API 调用**
- 数据延迟 30-60 秒
## 故障排除
### "AMADEUS_CLIENT_ID 和 AMADEUS_CLIENT_SECRET 必须设置"
- 确保您已创建包含凭证的 `.env` 文件
- 或在 Claude Desktop 配置中设置它们
### "未知工具" 错误
- 检查您的 API 密钥是否有效
- 确保客户端已初始化(检查服务器日志)
### API 速率限制超出
- Amadeus:等待每月配额重置或升级计划
- AviationStack:等待每月重置或升级计划
## 贡献
欢迎贡献!请随时提交拉取请求。
## 许可证
MIT 许可证 - 您可以随意在您的项目中使用!
## 支持
如有问题和疑问:
- 在 GitHub 上提交问题
- 查看 [Amadeus API 文档](https://developers.amadeus.com/)
- 查看 [AviationStack 文档](https://aviationstack.com/documentation)
## 路线图
- [ ] 添加价格警报和监控
- [ ] 添加租车搜索
- [ ] 添加火车/铁路搜索(Eurail,Amtrak)
- [ ] 添加活动/旅游预订
- [ ] 添加旅行保险选项
- [ ] 添加签证要求检查器
- [ ] 添加货币转换器
- [ ] 添加目的地天气预测
- [ ] 添加缓存重复查询
- [ ] 添加更多旅行 API(Booking.com,Expedia)
## 致谢
使用以下技术构建:
- [模型上下文协议](https://modelcontextprotocol.io/)
- [Amadeus for Developers](https://developers.amadeus.com/)
- [AviationStack](https://aviationstack.com/)
---
**快乐旅行!** ✈️ 🏨 🌍