Token导航 LogoToken导航

MCP Server · 搜索检索

Bing Flights MCP Server

一个通过Playwright从Bing Flights爬取航班信息的MCP服务器,支持单程和往返航班搜索、多种乘客类型和舱位等级,适用于旅行规划应用集成。

stdio官方级别未说明来源级核验工具 2
旅行规划Python搜索

快速开始

作者 / 组织
chonseng
提供方
chonseng
运行时
Python

工具数量

2

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

2 个

MCP World

选型结论

Bing Flights MCP Server 属于搜索检索类 MCP Server,公开资料标注 2 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

搜索检索

传输方式

stdio

认证方式

无需认证

部署方式

仅本地运行

安装与配置

安装命令

uvx bing-flights-mcp

客户端配置示例

{
  "mcpServers": {
    "bing-flights-mcp": {
      "command": "uvx",
      "args": [
        "bing-flights-mcp"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 2 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

Bing Flights MCP 服务器

一个使用Playwright从Bing Flights抓取航班信息的模型上下文协议(MCP)服务器。此项目提供了一个独立的Python抓取模块以及一个MCP服务器封装,以便与兼容MCP的应用程序集成。

📦 箱子/包裹 在 PyPI 上查看

特点/功能

  • 🔍 搜索单程和往返航班
  • ✈️ 支持多名乘客(成人、儿童、婴儿)
  • 所有舱位等级(经济舱、高级经济舱、商务舱、头等舱)
  • 无头或有头浏览器模式
  • 📊 结构化的JSON响应
  • 🔧 通过MCP协议轻松集成

项目结构

bing-flights-mcp/
├── pyproject.toml             # Package configuration
├── requirements.txt           # Python dependencies
├── README.md                  # This file
├── bing_flights_scraper/      # Standalone scraper module
│   ├── __init__.py
│   └── scraper.py
├── mcp_server.py              # MCP server implementation
└── tests/                     # Test suite
    ├── __init__.py
    ├── test_mcp.py
    └── test_e2e.py

安装

快速入门(推荐)

使用这个MCP服务器最简单的方法是通过 uvx:

uvx bing-flights-mcp

这将在一个隔离的环境中自动安装该软件包及其依赖项。

通过 pip 安装

你也可以从PyPI进行安装:

pip install bing-flights-mcp

安装完成后,安装Playwright浏览器:

playwright install chromium

开发安装

对于开发或者如果您想修改代码:

  1. 克隆或下载此仓库
  1. 创建并激活虚拟环境

在Windows上:

   python -m venv venv
   venv\Scripts\activate

在 macOS/Linux 上:

   python -m venv venv
   source venv/bin/activate
  1. 安装依赖项
   pip install -r requirements.txt
  1. 安装 Playwright 浏览器
   playwright install chromium

使用方法

作为MCP服务器

使用uvx(推荐)

如果你通过PyPI安装,请运行:

uvx bing-flights-mcp

或者在您的MCP设置配置中添加:

{
  "mcpServers": {
    "bing-flights": {
      "command": "uvx",
      "args": ["bing-flights-mcp"]
    }
  }
}
从源代码运行

如果你正在从源代码开发或运行:

python mcp_server.py
可用工具

MCP服务器提供了两个工具:

1. search_flights

使用必应航班搜索查找航班选项。

参数:

  • origin (字符串,必填):出发机场代码(例如,“SEA”)
  • destination (字符串,必填):目的地机场代码(例如,“ICN”)
  • departure_date (字符串,必填):出发日期,格式为YYYY-MM-DD
  • return_date (字符串,可选):往返搜索的返回日期
  • adults (整数,可选,默认值=1):成人乘客人数
  • children (整数,可选,默认值=0):儿童乘客数量
  • infants (整数,可选,默认值=0):婴儿乘客数量
  • cabin_class (整数,可选,默认值=0):0=经济舱,1=高级经济舱,2=商务舱,3=头等舱
  • max_results (整数,可选,默认值=10):最大结果数量
  • headless (布尔型,可选,默认为true):以无头模式运行浏览器

示例MCP工具调用:

{
  "origin": "SEA",
  "destination": "ICN",
  "departure_date": "2025-11-30",
  "return_date": "2025-12-02",
  "adults": 1,
  "cabin_class": 0,
  "max_results": 10,
  "headless": true
}

2. get_scraper_status

检查抓取器的健康状况和配置。

示例回复:

{
  "status": "healthy",
  "version": "1.0.1",
  "capabilities": {
    "one_way_search": true,
    "round_trip_search": true,
    "cabin_classes": ["economy", "premium_economy", "business", "first"],
    "max_results": 50,
    "headless_mode": true
  }
}

作为一个独立的Python模块

你也可以直接在你的Python代码中使用这个抓取器:

from bing_flights_scraper import BingFlightsScraper

# Create scraper instance
scraper = BingFlightsScraper(headless=True)

try:
    # Search for flights
    results = scraper.search_flights(
        origin="SEA",
        destination="ICN",
        departure_date="2025-11-30",
        return_date="2025-12-02",
        adults=1,
        cabin_class=0,
        max_results=10
    )
    
    # Process results
    print(f"Found {results['results_count']} flights")
    for flight in results['flights']:
        print(f"Price: ${flight['price']['total']}")
        print(f"Airlines: {', '.join(flight['airlines'])}")
        print(f"Departure: {flight['outbound']['departure_time']}")
        print(f"Arrival: {flight['outbound']['arrival_time']}")
        print(f"Duration: {flight['outbound']['duration']}")
        print("---")
finally:
    scraper.close()

响应格式

抓取器返回的结果采用以下JSON结构:

{
  "search_params": {
    "origin": "SEA",
    "destination": "ICN",
    "departure_date": "2025-11-30",
    "return_date": "2025-12-02",
    "trip_type": "round-trip",
    "passengers": {
      "adults": 1,
      "children": 0,
      "infants": 0
    },
    "cabin_class": "economy"
  },
  "results_count": 10,
  "flights": [
    {
      "price": {
        "total": 1200.00,
        "currency": "USD",
        "per_person": 1200.00
      },
      "airlines": ["Korean Air", "Delta"],
      "outbound": {
        "departure_time": "10:30",
        "arrival_time": "14:45",
        "duration": "13h 15m",
        "stops": 1,
        "layovers": [],
        "flight_numbers": []
      },
      "booking_link": "https://www.bing.com/...",
      "result_index": 1
    }
  ],
  "timestamp": "2025-10-23T02:19:00Z"
}

配置选项

客舱等级

  • 0 - 经济
  • 1 - 尊享经济舱
  • 2 - 商业
  • 3 - 头等舱

浏览器模式

  • headless=True - 浏览器在后台运行(速度更快,无用户界面)
  • headless=False - 浏览器窗口可见(对调试很有用)

故障排除

常见问题

问题:未找到Playwright浏览器

Solution: Run `playwright install chromium`

问题:等待航班结果超时

Solution: 
- Check your internet connection
- Try with headless=False to see what's happening
- Verify the airport codes are valid
- Ensure the dates are in the future

问题:未返回结果

Solution:
- Verify airport codes are correct (use IATA codes like "SEA", "ICN")
- Check that dates are in YYYY-MM-DD format
- Try different date ranges
- Some routes may not have available flights

问题:导入错误

Solution:
- Ensure virtual environment is activated
- Run `pip install -r requirements.txt` again
- Verify Python version is 3.10 or higher

调试

为了调试抓取问题,请运行 headless=False:

scraper = BingFlightsScraper(headless=False)

这将显示浏览器窗口,以便您查看正在加载的内容。

运行测试

基本测试

运行基本单元测试,以验证模块导入和URL构建:

python tests/test_mcp.py

端到端测试

进行全面的端到端测试,执行实际的航班搜索操作:

python tests/test_e2e.py

注: 端到端(E2E)测试会对Bing Flights发出真实的网页请求,完成这些测试可能需要几分钟时间。测试内容包括:

  1. 无效参数测试 - 验证错误处理
  2. 单向搜索测试 - 从东南亚(SEA)到仁川(ICN)的真实搜索
  3. 往返搜索测试 - 从洛杉矶(LAX)到纽约肯尼迪机场(JFK)的实际搜索
  4. 多位乘客测试 - 搜索2名成人和1名儿童的信息

测试使用无头浏览器模式和未来日期来确保搜索的有效性。

技术细节

网页抓取方法

  • 使用 Playwright 进行浏览器自动化
  • 等待动态内容加载
  • 从Bing航班搜索结果卡片中提取数据
  • 处理多种选择器模式以增强鲁棒性

错误处理

该抓取程序使用了最少的错误处理,并允许异常传播:

  • 网络错误 → 抛出异常
  • 超时错误 → 抛出 PlaywrightTimeoutError
  • 无效参数 → 抛出异常 ValueError
  • 解析错误 → 返回部分结果或空列表

此设计使MCP客户端能够实现适当的重试逻辑和错误恢复。

局限性

  • 仅返回去程航班详情(Bing结果页面上不提供返程航班信息)
  • 初始页面加载时可见的内容限制了最大结果数
  • 不支持分页(仅显示第一页结果)
  • 抓取依赖于Bing的页面结构(如果他们更改了HTML,可能会导致抓取失败)

依赖项

  • fastmcp>=0.1.0 - MCP服务器框架
  • playwright>=1.40.0 - 浏览器自动化
  • python-dateutil>=2.8.2 - 日期解析工具

做出贡献

在贡献时,请:

  1. 在无头模式和有头模式下测试更改
  2. 验证与MCP协议的兼容性
  3. 更新文档以包含新功能
  4. 遵循现有的代码风格和模式

许可证

MIT 许可证 - 详见 LICENSE 文件

免责声明

这个工具从Bing航班中抓取公开可用的数据。请:

  • 负责任地使用,并遵守速率限制
  • 查看Bing的服务条款
  • 未经适当授权,不得用于商业用途
  • 请注意,如果网站发生变化,网页抓取可能会失效

支持

如需报告问题、提出疑问或做出贡献,请在项目仓库中提交一个议题。

工具与能力

工具数量

2

资源数量

0

提示词数量

0

能力标签

航班搜索Python本地部署网络爬虫旅行规划数据采集自动化工具

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

查资料带出处

把网页、论文和文档的检索结果连同链接一起带回对话。

站内知识检索

在自己的文档库里做语义搜索,比关键词更贴题。

事实核对

交叉多个来源确认一条信息,减少模型凭记忆作答。

选择建议

值得选的地方

  • 只提供 2 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在搜索检索场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Bing Flights MCP Server

MCP World · 本页

2stdio有2 个2026-05-17
Baidu Netdisk

MCP World

未标注未说明未标注1 个2026-05-17
Sequentialthinking

MCP.so

1SSE有2 个2026-05-17
Brave Search 433812ff

MCP World

2未说明未标注1 个2026-05-17
mindsdb (430e18)

MCP World

0未说明有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Bing Flights MCP Server 怎么安装?

公开资料给出的安装命令是 uvx bing-flights-mcp,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Bing Flights MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Bing Flights MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Bing Flights MCP Server 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Bing Flights MCP Server 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP