航班搜索服务

一个基于MCP协议的实时航班搜索服务器,提供航班价格、航空公司、起降时间、预订链接及机场信息等综合数据。

  • by alivnavc
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 alivnavc/fligh-search-mcp-server

使用说明

航班搜索MCP服务器

使用SerpAPI提供实时航班搜索功能的模型上下文协议(MCP)服务器。该服务器提供全面的航班数据,包括价格、航空公司、出发/到达时间、预订链接和机场信息。

特性

  • 实时航班搜索:查找包含价格、航空公司和预订链接的可用航班
  • 机场信息:按名称、城市或IATA代码搜索机场
  • 价格趋势:获取价格洞察和趋势分析,以获得最佳预订时间
  • MCP协议:标准化的MCP接口,便于与AI代理集成
  • HTTP传输:在HTTP上运行,具有可流式传输,可实现可靠连接

先决条件

  • Python 3.8或更高版本
  • SerpAPI帐户和API密钥
  • uv包管理器(推荐)或pip

安装

使用紫外线(推荐)

  1. 克隆或下载项目
  2. 安装依赖项:
    uv sync
    

使用pip

  1. 克隆或下载项目
  2. 安装依赖项:
    pip install -r requirements.txt
    

配置

环境变量

创建一个 .env 使用SerpAPI密钥在项目根目录中创建文件:

SERPAPI_KEY=your_serpapi_key_here

获取SerpAPI密钥

  1. 注册地址: SerpAPI
  2. 从仪表板获取API密钥
  3. 将其添加到您的 .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":{}}}'