关于 AENA Flights MCP
AENA Flights MCP 为旅客和 Agent 提供西班牙 50 座 AENA 机场的实时航班信息,可查询到达、出发或特定航班。它将 AENA 的公共 API 和 OAuth2 REST API 整合为一组统一工具。
主要功能
- 01搜索机场到达与出发航班
- 02查询单个航班
- 03列出 AENA 机场及代码
- 04按航班、日期或当地时间筛选
- 05统一两种 API 的数据格式
适用场景
- 01按时间段查询机场出发航班
- 02查询指定日期从某城市抵达的航班
- 03查看航班状态和登机口
- 04浏览某地区的 AENA 机场
MCP 相关
MCP 服务向 MCP 客户端提供航班搜索、航班查询和机场列表工具。它可使用 AENA 公共网站 API 或 OAuth2 REST API,并可自动选择数据源或指定数据源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y mcp-aenaAENA_CLIENT_SECRET密钥OAuth2 client secret for the REST API. Omit for website-only mode (still fully functional for discovery).AENA_CLIENT_IDOAuth2 client id. Has a working default.AENA_TENANT_IDAzure AD tenant id. Has a working default.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
3收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| date | string | 否 | 仅限此当地日期的航班(YYYY-MM-DD)。设置 fromLocal/toLocal 时,默认为今天。 |
| source | enum | 否 | auto | website | rest |
| airport | string | 是 | 机场 IATA 代码,例如 MAD、BCN、SCQ |
| toLocal | string | 否 | 仅限计划起飞时间不晚于此本地时间(HH:MM)的航班,例如下午的 20:00 |
| direction | enum | 是 | arrivals | departures |
| fromLocal | string | 否 | 仅限计划起飞时间不早于此本地时间(HH:MM)的航班,例如下午的 12:00 |
| hoursBack | number | 否 | REST 时间范围:过去的小时数 |
| flightNumber | string | 否 | 在客户端筛选,例如 IB0459 或 UX7235 |
| hoursForward | number | 否 | REST 时间范围:未来的小时数 |
| collapseCodeshares | boolean | 否 | 将同一航班的代码共享航班合并为一条记录(默认为 true) |
详细介绍
✈️ AENA Flights MCP
Español: README.es.md
AENA 运营的 50 座西班牙机场的实时航班数据,作为 MCP 服务提供。向 Claude 提问,例如 “今天下午有哪些航班从圣地亚哥起飞?” 或 “IB0459 延误了吗?”,它会根据真实机场数据作答,包括时间、登机口、航站楼、飞机、状态和代码共享信息。
它将 AENA 的两个航班 API 整合到一组简洁的工具中,因此 Agent 无论通过哪个 API 获取航班,得到的航班数据格式都相同。
🚀 30 秒即可使用(无需安装)
该服务公开运行于 https://aena-mcp.carlos-ls.workers.dev/mcp。只需单击一下,即可将其添加到 Claude:
该链接会打开已预填连接器信息的 claude.ai;只需确认即可。所有套餐均可使用,包括免费套餐。添加后,也可以在 Claude 应用中使用,包括手机应用。无需账户、API 密钥,也无需进行任何配置。
想手动添加?依次前往 Claude → Settings → Connectors → Add custom connector,将其命名为 AENA Flights,并粘贴上面的 URL。
🤖 也支持 ChatGPT
ChatGPT 没有一键安装链接,但同一服务也可在其中使用(仅限 Plus、Pro 和 Business 套餐,且仅限网页版):
- 前往 Settings → Apps → Advanced settings → 启用 Developer mode
- 在 Apps 面板中按 +,然后使用 URL
https://aena-mcp.carlos-ls.workers.dev/mcp添加服务,身份验证方式:无
💬 可以这样提问
- 🛫 “16:00 到 18:00 之间从 MAD 起飞的航班”
- 🛬 “明天下午有哪些从伦敦飞抵 BCN 的航班?”
- 🔍 “航班 UX7235 现在在哪里?在哪个登机口?”
- 🏝️ “列出加那利群岛的所有 AENA 机场”
🖥️ 其他运行方式
| 方式 | 适用对象 | 配置 |
|---|---|---|
| ☁️ 远程连接器(上文) | 所有人,包括 iPhone 用户 | 单击即可 |
| 📦 桌面扩展 | Claude Desktop | 从最新版本下载 aena-mcp.mcpb,然后双击 |
| 🟩 npm | Claude Code、Cursor、任何 MCP 客户端 | npx mcp-aena |
| 🔧 从源代码运行 | 开发者 | 见下文 |
基于 npm 的客户端配置:
{
"mcpServers": {
"aena": {
"command": "npx",
"args": ["-y", "mcp-aena"]
}
}
}
在 Claude Code 中只需运行一条命令:
claude mcp add aena -- npx -y mcp-aena
🧰 工具
search_flights— 查询某个机场的到达或出发航班。可按航班号、日期或当地时间范围筛选(下午 =fromLocal 12:00、toLocal 20:00)。同一实际航班的代码共享航班会合并为一条记录,输出中的所有时间均为马德里当地时间。get_flight— 按机场和航班号查询单个航班。list_airports— 实时获取所有 AENA 机场及其 IATA/ICAO 代码。
🔀 为什么有两个 API
AENA 提供两种查询航班的方式,各自弥补了另一种方式的不足。
- 🌐 网站 API 公开可用,无需凭据。可查询未来约 14 天的航班,但不提供过去的数据。适合发现航班。
- 🔐 REST API 使用 OAuth2,需要客户端密钥。可查询过去约 54 小时和未来 24 小时的航班,并会告知代码共享航班背后的实际执飞航班。适合追踪航班。
服务会自动为你选择合适的 API(source: "auto"),也可以指定其中任意一个。不配置密钥时,服务会以仅使用网站 API 的模式运行,仍然可以正常工作。公开的远程服务已配置完整的 REST API 访问权限。
🛠️ 从源代码构建
pnpm install
pnpm build # tsc → dist/
pnpm test # unit tests over captured fixtures, no network, no credentials
pnpm inspect # drive a live stdio session with the MCP inspector
将 .env.example 复制为 .env。网站 API 无需任何配置。对于 REST API,请设置 AENA_CLIENT_SECRET;AENA_CLIENT_ID 和 AENA_TENANT_ID 已有可用的默认值。
公共远程服务位于 worker/(Cloudflare Workers、Streamable HTTP、无需身份验证)。如要自行托管:
cd worker
pnpm install
npx wrangler deploy
npx wrangler secret put AENA_CLIENT_SECRET # optional, enables the REST source
解析逻辑位于纯规范化函数(normalizeWebsiteRow、normalizeRestRow)中,因此无需实时调用即可测试映射。请参阅 CONTRIBUTING.md。
CI 会在 Node 20 和 22 上运行测试,并进行 MCP inspector 冒烟测试。推送标签(v*)后,会发布到 npm(OIDC 可信发布)、MCP Registry,并将 .mcpb 捆绑包附加到 GitHub 发布版本。
📝 数据说明
- 在 REST API 中,到达航班为
"A",而在网站 API 中为"L"。服务会隐藏这种差异。 - REST 的
airlineIATA字段实际存储的是 ICAO 代码。服务会解析这两种代码。 - 航班号因数据来源而异:REST API 使用 ICAO 标识航班(
VLG1674),网站使用 IATA 标识(VY1674)。 - 两个 API 都不会在服务端按航班号筛选,因此搜索会获取整个机场的数据,再在本地筛选。
- 两者都不提供实际起飞或着陆时间,只提供计划时间和预计时间。要获取离地和接地时间,需要使用 FlightRadar24 等数据源。
📄 许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。