航班搜索MCP服务器
使用SerpAPI提供实时航班搜索功能的模型上下文协议(MCP)服务器。该服务器提供全面的航班数据,包括价格、航空公司、出发/到达时间、预订链接和机场信息。
特性
- 实时航班搜索:查找包含价格、航空公司和预订链接的可用航班
- 机场信息:按名称、城市或IATA代码搜索机场
- 价格趋势:获取价格洞察和趋势分析,以获得最佳预订时间
- MCP协议:标准化的MCP接口,便于与AI代理集成
- HTTP传输:在HTTP上运行,具有可流式传输,可实现可靠连接
先决条件
- Python 3.8或更高版本
- SerpAPI帐户和API密钥
- uv包管理器(推荐)或pip
安装
使用紫外线(推荐)
- 克隆或下载项目
- 安装依赖项:
uv sync使用pip
- 克隆或下载项目
- 安装依赖项:
pip install -r requirements.txt配置
环境变量
创建一个 .env 使用SerpAPI密钥在项目根目录中创建文件:
SERPAPI_KEY=your_serpapi_key_here获取SerpAPI密钥
- 注册地址: SerpAPI
- 从仪表板获取API密钥
- 将其添加到您的
.env文件
用法
启动服务器
使用紫外线:
uv run flight_search_mcp.py直接使用python:
python flight_search_mcp.py服务器将于启动 http://localhost:8001/mcp
可用工具
1.探照灯
搜索机场之间的可用航班。
参数:
source(string):出发机场IATA代码(例如“BOM”、“JFK”)destination(string):到达机场IATA代码(例如“DEL”、“LAX”)departure_date(字符串):YYYY-MM-DD格式的出发日期return_date(字符串,可选):以YYYY-MM-DD格式返回日期currency(字符串,可选):定价货币(默认值:“USD”)
JSON-RPC调用示例:
{
"jsonrpc": "2.0",
"id": "flight-search-1",
"method": "tools/call",
"params": {
"name": "search_flights",
"arguments": {
"source": "BOM",
"destination": "DEL",
"departure_date": "2025-11-15",
"return_date": "2025-11-20",
"currency": "USD"
}
}
}退货: 前5名最便宜的航班,详细信息包括价格、航空公司、出发/到达时间、预订链接和航班段。
2.搜索_机场
按名称、城市或IATA代码搜索机场。
参数:
query(string):机场搜索查询(例如,“孟买机场”、“BOM”、“纽约”)
JSON-RPC调用示例:
{
"jsonrpc": "2.0",
"id": "airport-search-1",
"method": "tools/call",
"params": {
"name": "search_airports",
"arguments": {
"query": "Mumbai airport"
}
}
}退货: 机场信息,包括名称、描述、链接和IATA代码。
3.获取价格
获取某一日期范围内机场间航班的价格趋势。
参数:
source(string):出发机场IATA代码destination(string):到达机场IATA代码start_date(字符串):价格搜索的开始日期(YYYY-MM-DD)end_date(字符串):价格搜索的结束日期(YYYY-MM-DD)currency(字符串,可选):定价货币(默认值:“USD”)
JSON-RPC调用示例:
{
"jsonrpc": "2.0",
"id": "price-trends-1",
"method": "tools/call",
"params": {
"name": "get_flight_prices",
"arguments": {
"source": "BOM",
"destination": "DEL",
"start_date": "2025-11-01",
"end_date": "2025-11-30",
"currency": "USD"
}
}
}退货: 价格洞察和趋势分析,以帮助找到预订航班的最佳时间。
4.健康检查
简单的健康检查,以验证MCP服务器是否正在运行。
参数: 无
JSON-RPC调用示例:
{
"jsonrpc": "2.0",
"id": "health-1",
"method": "tools/call",
"params": {
"name": "health_check",
"arguments": {}
}
}退货: 服务器状态和运行状况信息。
5.服务器信息
获取有关MCP服务器的信息。
参数: 无
JSON-RPC调用示例:
{
"jsonrpc": "2.0",
"id": "info-1",
"method": "tools/call",
"params": {
"name": "server_info",
"arguments": {}
}
}退货: 服务器信息,包括可用工具和版本。
测试
列出可用工具
curl -X POST http://localhost:8001/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'试飞搜索
curl -X POST http://localhost:8001/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":"test-1","method":"tools/call","params":{"name":"search_flights","arguments":{"source":"BOM","destination":"DEL","departure_date":"2025-01-15"}}}'测试健康检查
curl -X POST http://localhost:8001/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":"health-1","method":"tools/call","params":{"name":"health_check","arguments":{}}}'