mcpField
A
Airports

Airports

远程服务
pipeworx.io地图与出行06 天前更新

关于 Airports

Airports 为旅行应用和开发者提供机场及相关设施查询,结合 AirportGap 实时 API 与 OurAirports 数据副本。除按城市或 IATA 代码查找外,还能检索机场跑道、频率、导航台及多种类型的机场设施。

主要功能

  1. 01按城市或 IATA 代码搜索机场
  2. 02查询机场间的大圆距离
  3. 03按多种代码查找机场及设施
  4. 04检索跑道、频率和导航台
  5. 05按名称、国家或类型筛选

适用场景

  1. 01按城市或代码查找机场
  2. 02计算两个机场之间的距离
  3. 03查询机场跑道和无线电频率
  4. 04查找直升机场或水上机场等设施

MCP 相关

作为 MCP 服务,它向客户端提供机场搜索、代码查找、距离计算,以及跑道、无线电频率和导航台查询工具。可通过 Pipeworx 网关连接,也可作为本地 stdio MCP 服务运行;OurAirports 数据仅在网关运行时可用。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://gateway.pipeworx.io/airports/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

49
参数类型必填说明
qstring否question 的别名。
askstring否question 的别名。
textstring否question 的别名。
inputstring否question 的别名。
packsarray否可选。将路由限制为这些包的 slug(例如 ["sec-form-d","sec-13f"]),路由器随后只会从这些包中的工具进行选择。省略则使用默认的完整目录路由。Slug 可从 list_packs / search_packs / https://pipeworx.io/directory 获取;未列出或未知的 slug 会被忽略,并在 _meta.pack_scope.ignored 中列出。如果没有任何 slug 能匹配问题,则会在整个目录中路由,并设置 _meta.pack_scope.full_catalog:true(绝不会返回空答案)。
querystring否question 的别名。
promptstring否question 的别名。
messagestring否question 的别名。
questionstring是用自然语言表达的问题或请求。支持 query、q、prompt、text、input、ask、message 作为别名。

详细介绍

@pipeworx/airports

机场查询,两个数据源并列提供:

属于 Pipeworx — 一个将 AI Agent 连接到 1872+ 个实时数据源的 MCP 网关。这是一个独立的非官方集成,与上游提供方无关联、未经其认可,也未由其发布。

  • AirportGap(实时、免费、无需密钥)— 原有工具。基于 OpenFlights 数据生成的静态快照,仅覆盖 IATA 代码和约 150 个主要城市。
  • OurAirports(fleet #2977,D1 副本)— 覆盖 OurAirports 追踪的所有机场:约 86,000 条记录,包括仅有 ICAO 标识码的机场、直升机场、水上飞机基地、气球机场和已关闭的机场,以及它们的跑道、无线电频率和导航设施。

工具

基于 AirportGap(实时获取上游数据)
  • search_airports(query) — 通过内置的 city->IATA 映射(约 150 个主要枢纽)按城市名称或 IATA 代码搜索。
  • get_airport(iata_code) — 按 IATA 代码查询单个机场。
  • calculate_distance(from, to) — 计算两个 IATA 代码对应机场之间的大圆距离。

如果 AirportGap 的快照中没有某个 IATA 代码(例如,2020 年才启用的 BER),工具会返回 found: false 并附上提示,而不是报错——这是已知的数据集时效边界,并非服务中断。

基于 OurAirports(D1,公共领域)
  • ourairports_lookup(code) — 按 ICAO 代码、IATA 代码、GPS 代码或 OurAirports 自有的本地/国家标识码查询任意机场(例如美国本地代码 "00A",或非美国标识码 "AT-0001")。返回名称、类型(large_airport/medium_airport/small_airport/heliport/seaplane_base/balloonport/closed)、坐标、海拔、国家/地区,以及是否提供定期航班服务。
  • airport_runways(code) — 返回每条跑道的长度/宽度/道面/照明/关闭标记,以及两端的标识码、坐标、海拔、航向和内移入口。
  • airport_frequencies(code) — 返回无线电频率(ATIS/TWR/GND/CLD/DIR/APP/DEP/CTAF/UNICOM/...)、说明和 MHz 数值。
  • airport_navaids(code) — 返回与机场相关的导航设施(NDB/VOR/DME/VOR-DME/VORTAC/TACAN/...):标识码、名称、类型、以 kHz 为单位的频率、坐标、海拔、DME 信道和功率。
  • ourairports_search(query?, country?, type?, limit?, offset?) — 按名称/市镇/标识码进行文本匹配,可选按 ISO 国家代码或机场类型缩小范围。必须至少提供 query/country/type 中的一项——否则会对约 86,000 条记录进行全表扫描。limit 默认为 20(最大值为 100);若匹配记录数多于返回数,响应会包含 truncated: true 和 total_matching。

所有基于 OurAirports 的工具都接受 ICAO/IATA/GPS/本地代码作为 code,并按确定性规则解析:优先匹配 OurAirports 自有的规范 ident,其次是 icao_code,再其次是 gps_code,最后是 iata_code,因此,即使某个代码在不同列中发生冲突,也不会悄悄解析到错误的机场。无法识别的代码会被明确拒绝并返回清晰的错误,而不会返回空结果并显示成功——如果还不知道正确代码,请先用 ourairports_search 按名称/城市查找。对于已知机场,如果没有匹配的子记录(例如没有固定翼跑道的直升机场),工具会返回空数组,并附上 found: true 和说明性的 note——这是实际数据,并非失败。

身份验证

无需密钥。基于 OurAirports 的工具只能通过 Pipeworx 网关响应,网关持有 D1 副本;单独执行 npm install 没有可供读取的数据,因此每个工具都会抛出清晰的“not bound in this runtime”错误,而不是返回空列表。

数据源

  • AirportGap(airportgap.com)——免费的公共 API,无需身份验证。
  • OurAirports——批量 CSV 导出 (davidmegginson.github.io/ourairports-data,是 ourairports.com 自有数据的公共镜像)。根据 ourairports.com/data/:“所有数据均以公共领域形式发布,不保证准确性或适用性。” 该网站仅发布批量文件(没有实时查询 API),因此此工具包会构建一份副本(scripts/ourairports/load-data.mjs), 而不是做代理。全部六个 文件(机场、跑道、机场频率、导航设备、国家/地区、 区域)都会完整加载——在 OurAirports 的数据规模下,这里无需聚合或限制行数 (最大的表约有 86k 行)。
刷新

OurAirports 会滚动更新其 CSV(新增/变更机场、 跑道修改、频率变更)。刷新方法:

CLOUDFLARE_ACCOUNT_ID=ecc092eba5c5bacef3ccff9f9d7a4d8d \
  node scripts/ourairports/load-data.mjs \
  --db pipeworx-ourairports --config workers/gateway/wrangler.toml

需要先登录 Pipeworx Cloudflare 账户中的 wrangler。加载器会重新下载全部六个 CSV,重建每张表(DROP TABLE IF EXISTS

  • 重新加载——OurAirports 会修订现有行,而不只是追加), 并按表核对已加载行数与解析后的行数;如果不匹配,就会明确中止(退出码非零,不会声称“已加载”部分数据), 而不是让数据库悄然处于不完整状态。目前尚未设置定时任务——数据看起来过时时请手动运行(ourairports_lookup 的 data_as_of 字段记录了上次加载时间)。

快速开始

添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):

{
  "mcpServers": {
    "airports": {
      "url": "https://gateway.pipeworx.io/airports/mcp"
    }
  }
}
此端点实际提供的内容

https://gateway.pipeworx.io/airports/mcp 上的 tools/list 会返回上表中的工具, 以及共享的 Pipeworx 元工具——ask_pipeworx、 discover_tools、search_within、remember/recall 及其他 网关级工具。因此,你看到的工具数量会多于此表:目前,单个工具包端点会列出约 30 个共享工具,以及该工具包自身的工具。连接的 initialize 响应会说明其确切范围,是当天情况的权威依据。

这是有意为之,并非意外的多路复用。元工具可让受限连接回答此工具包未涵盖的问题——通过 ask_pipeworx 在整个目录中路由——无需添加第二个 MCP 服务。目前无法挂载不含这些工具的工具包端点;如果额外的架构定义消耗的上下文多于路由带来的收益,请改为连接一次完整网关,而不是连接多个工具包端点。

或者连接完整的 Pipeworx 网关,直接列出所有工具包的工具,而不只是此工具包的工具:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

两个 URL 都连接到同一个网关和相同的 1872+ 个数据源。唯一的区别是直接列出哪个工具包的工具;通过任一端点,ask_pipeworx 都可以访问所有工具。

没有 MCP 客户端?通过 HTTP 调用

curl -X POST https://gateway.pipeworx.io/v1/tools/search_airports \
  -H 'Content-Type: application/json' \
  -d '{"query":"New York"}'

首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/search_airports。查找工具:使用 {"query":"..."} 调用 POST https://gateway.pipeworx.io/v1/tools/search_packs。

独立运行(无需网关账户)

此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需经过网关往返:

{
  "mcpServers": {
    "airports": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-airports"]
    }
  }
}

也可以直接运行以确认其已启动:

npx -y @pipeworx/mcp-airports

它通过 stdin/stdout 使用 MCP 通信,并对仅限此工具包的工具响应 initialize/tools/list/tools/call——不包含上述网关连接额外提供的共享元工具。数据源相同、工具相同,但没有 ask_pipeworx 路由。

使用 ask_pipeworx

你可以用自然语言提问,而不是直接调用工具——此方式既适用于上面的工具包端点,也适用于完整网关:

ask_pipeworx({ question: "your question about Airports data" })

网关会自动选择合适的工具并填入参数。

更多信息

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。