@cyanheads/aviation-weather-mcp-server
公共托管服务器: https://aviation-weather.caseyjhand.com/mcp
工具
五个工具涵盖航空天气——站点查询、当前观测、终端天气预报、飞行员报告和活跃的咨询:
工具 | 描述 |
| 按 ICAO ID、边界框或美国州来解析机场和气象站。返回 ICAO/IATA/FAA ID、坐标、海拔和可用数据类型。 |
| 获取一个或多个机场的当前天气观测(METAR)。返回解码的风、能见度、云底、当前天气、温度/露点、高度表、云层、飞行类别(VFR/MVFR/IFR/LIFR)以及原始 METAR 字符串。 |
| 获取一个或多个机场的终端机场天气预报。返回每个预报时段的有效时间、地面风、低空风切变、能见度、解码天气、云层以及垂直能见度(进入预报的遮蔽现象),还有原始 TAF 字符串。 |
| 获取机场附近或给定边界框内的近期飞行员报告。返回解码的湍流、结冰和云层报告,包含高度、飞机类型、强度以及原始 PIREP 字符串。 |
| 获取某个区域的活跃国内 SIGMET。返回危险类型(CONVECTIVE、TURBULENCE、ICING、IFR)、严重程度、高度范围、有效时段、多边形坐标和原始文本。 |
aviation_find_stations
通过多种搜索模式解析和发现气象站。
按 4 字母 ICAO ID 查询一个或多个站点(每次调用最多 20 个 ID)——查询仅支持 ICAO,但每条返回记录都会包含其 IATA/FAA 别名(如果有)
发现某个地理边界框内的所有站点
通过两位美国邮政服务代码(USPS)列出 50 个美国州或哥伦比亚特区的站点(使用 bbox 加客户端侧州过滤)
返回
data_types(METAR、TAF 等),以便代理在查询前确认哪些数据可用每条结果都会说明上游 400 行上限是否截断了结果,因此截断的抽取永远不会被误认为是该区域的所有站点——被截断的州查询还会报告州过滤之前的行数,而更小的
bbox是明确的调整手段
aviation_get_metar
获取当前或近期的 METAR 观测(每次调用 1–10 个站点)。
hours参数(1–12)按站点返回观测历史;默认 1 仅返回最近一次飞行类别(VFR/MVFR/IFR/LIFR)直接来自 AWC API,无需客户端计算
除原始 METAR 字符串外,还解码云层、含阵风的风、能见度和当前天气(原始分组加上通俗英语,每组一个读数)
云底涵盖破碎、阴天和遮蔽层,并报告高度是否实测还是不确定云底——垂直能见度进入遮蔽现象
METAR 类型字段区分
METAR(例行)和SPECI(因显著天气变化触发的特殊观测)每批都会报告哪些请求的站点返回了,因此部分结果永远不会被误认为是完整覆盖——缺失的 ID 会明确列出并附恢复指南
aviation_get_taf
获取 1–4 个机场的终端机场天气预报。
返回结构化的预报时段,包含变化类型(
FM、TEMPO、BECMG)和概率在原始分组旁边逐组解码预报天气(
-SHRA BR→light rain showers; mist),与aviation_get_metar返回的形状相同预报的遮蔽层保留其层次,并带有垂直能见度(
VV002→ 200 英尺的不确定云底),而不是读作晴空低空风切变(
WS020/20040KT)被解码为剪切层顶和该高度的预报风valid_from/valid_to采用 ISO 8601 格式,便于直接进行时间比较每批都会报告哪些请求的站点返回了,因此部分结果永远不会被误认为是完整覆盖——缺失的 ID 会明确列出并附恢复指南
aviation_get_pireps
按站点+半径或边界框搜索近期飞行员报告。
station_id+distance_nm(10–500 海里,省略时为 100)用于机场周围的径向搜索bbox用于地理区域搜索——适合航路走廊检查;distance_nm在此没有意义,会与它一起被拒绝altitude_min_ft/altitude_max_ft过滤器用于隔离巡航高度的报告,可以单独使用一个边界,也可以同时使用(最小值不得超过最大值)湍流和结冰数组每条报告最多包含两层(如 API 报告)
每条结果都会说明上游 400 行上限是否截断了结果,并指出
bbox、distance_nm和hours是上限生效前缩小查询范围的措施——高度过滤器在上限之后运行,无法恢复被丢弃的报告注意:没有 PIREP 并不意味着天气平静——它们本质上就是稀疏的
aviation_get_advisories
列出当前活跃的国内 SIGMET。
advisory_type过滤器:sigmet或all(默认)——两者都返回活跃的 SIGMET 集合hazard过滤器:CONVECTIVE、TURBULENCE、ICING、IFRbbox过滤器在客户端应用(AWC API 返回所有活跃的咨询;工具按多边形重叠进行过滤)不提供 AIRMET。上游数据仅包含国内 SIGMET,因此
advisory_type: airmet以及MTN OBSCN、SURFACE WIND和LLWS危险会被拒绝并提供指南,而不是用 SIGMET 或空数组来回答在天气晴好的时期,可能没有活跃的 SIGMET——空结果是有效状态,不是错误
Related MCP server: Aviation Weather MCP Server
提示
类型 | 名称 | 描述 |
Prompt |
| 为一个或多个机场构建飞行前天气简报。引导 LLM 依次调用 |
所有资源数据都可通过工具访问。此服务器没有资源——所有航空天气数据都是时效敏感的(METAR 大约 1 小时有效,咨询从几分钟到几小时不等),不适合作为稳定 URI 的资源。
功能
基于 @cyanheads/mcp-ts-core 构建:
声明式工具和提示定义——每个原语一个文件,框架处理注册和验证
统一错误处理——处理器抛出,框架捕获、分类并格式化
可插拔认证:
none、jwt、oauth结构化日志,并可选 OpenTelemetry 追踪
支持 STDIO 和 Streamable HTTP 传输
航空天气专用:
无密钥——无需 API 密钥或认证;所有数据均来自公共 AWC Data API
单一服务(
aviation-weather-service),对无密钥的公共端点提供重试+指数退避原始编码字符串(
rawOb、rawTAF、rawAirSigmet)与解码字段一同呈现,让代理同时拥有两层信息州→边界框表支持 AWC API 原生不支持的美国州站点查询
服务器级
instructions字段在initialize时向所有客户端显示“非正式简报”安全免责声明
代理友好的输出:
飞行类别(
VFR/MVFR/IFR/LIFR)作为判别字符串字段——代理可以直接基于它进行分支,无需解析云底+能见度结构化错误契约,带有类型化的
reason字段和recovery提示(例如,“使用aviation_find_stations验证 ICAO ID”)aviation_preflight_brief提示编码了正确的 METAR → TAF → PIREPs → advisories 简报顺序,代理经常因为遗漏步骤而出错
快速开始
公共托管实例
公共托管实例位于 https://aviation-weather.caseyjhand.com/mcp。将其添加到您的 MCP 客户端配置中:
{
"mcpServers": {
"aviation-weather": {
"type": "streamable-http",
"url": "https://aviation-weather.caseyjhand.com/mcp"
}
}
}自托管 / 本地
将以下内容添加到您的 MCP 客户端配置文件中。
{
"mcpServers": {
"aviation-weather": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/aviation-weather-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}或使用 npx(无需 Bun):
{
"mcpServers": {
"aviation-weather": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cyanheads/aviation-weather-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info"
}
}
}
}或使用 Docker:
{
"mcpServers": {
"aviation-weather": {
"type": "stdio",
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "MCP_TRANSPORT_TYPE=stdio",
"ghcr.io/cyanheads/aviation-weather-mcp-server:latest"
]
}
}
}如需 Streamable HTTP,请设置传输方式并启动服务器:
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp前提条件
Bun v1.3.0 或更高版本(或 Node.js v24+)。
无需 API 密钥——AWC Data API 完全公开且无需密钥。
安装
克隆仓库:
git clone https://github.com/cyanheads/aviation-weather-mcp-server.git进入目录:
cd aviation-weather-mcp-server安装依赖:
bun install配置环境:
cp .env.example .env
# edit .env if you need to override AWC_BASE_URL or AWC_TIMEOUT_MS配置
变量 | 描述 | 默认值 |
| NWS AWC 数据 API 的基础 URL。 |
|
| 每次请求的超时时间(毫秒,1000–60000)。 |
|
| 传输方式: |
|
| HTTP 服务器端口。 |
|
| 认证模式: |
|
| 日志级别(RFC 5424)。 |
|
| 启用 OpenTelemetry 插桩。 |
|
有关可选覆盖项的完整列表,请参阅 .env.example。
运行服务器
本地开发
构建并运行:
bun run rebuild bun run start:stdio # or bun run start:http运行检查与测试:
bun run devcheck # Lint, format, typecheck, security bun run test # Vitest test suite bun run lint:mcp # Validate MCP definitions against spec
Docker
docker build -t aviation-weather-mcp-server .
docker run --rm -p 3010:3010 aviation-weather-mcp-serverDockerfile 默认使用 HTTP 传输、无状态会话模式,并将日志写入 /var/log/aviation-weather-mcp-server。OpenTelemetry 对等依赖默认安装——如需省略,请使用 --build-arg OTEL_ENABLED=false 构建。
项目结构
目录 | 用途 |
|
|
| 服务器特定的环境变量解析( |
| AWC 数据 API 客户端——HTTP 请求、指数退避重试、响应规范化。 |
| 工具定义( |
| 提示词定义( |
| 与 |
开发指南
有关开发指南和架构规则,请参阅 CLAUDE.md。简要说明:
处理器抛出异常,框架负责捕获——工具逻辑中不使用
try/catch使用
ctx.log进行请求级日志记录,使用ctx.state进行租户级存储通过
src/mcp-server/*/definitions/index.ts中的桶文件注册新工具和提示词封装外部 API 调用:验证原始数据 → 规范化为领域类型 → 返回输出模式;绝不虚构缺失字段
并非官方飞行前简报。 AWC 的数据仅供参考。实际飞行计划需要授权来源(例如 Leidos/1800wxbrief.com)。服务器通过每次
initialize时发送的instructions字段展示此免责声明。
贡献
欢迎提交 Issue 和拉取请求。提交前请运行检查与测试:
bun run devcheck
bun run test许可证
Apache-2.0——详情请参阅 LICENSE。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides aviation weather information through a Model Context Protocol server, enabling access to METARs, TAFs, PIREPs, and route weather data for informational purposes only.2MIT
- AlicenseNot gradedqualityDmaintenanceProvides access to aviation weather data from aviationweather.gov, enabling LLMs to fetch and analyze METAR, TAF, PIREPs, AIRMETs, and other aviation weather information.156MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for fetching METAR and TAF aviation weather data for airports by ICAO code.MIT
- FlicenseNot gradedqualityDmaintenanceFetches and parses METAR/TAF aviation weather data from NOAA with caching and human-readable formatting.1
Related MCP Connectors
Aviation Weather MCP — METAR, TAF, PIREPs, AIRMET/SIGMET, station info
NOAA and ECMWF weather forecast MCP for discovery, validation, and GribStream OAuth queries.
Get US weather forecasts, active alerts, and current observations.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/aviation-weather-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server