f

finack

@finack/aviation-mcp
0 Stars 303 次浏览 finack 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

航空天气MCP服务器

这是一个提供飞行计划所需航空天气信息的模型上下文协议(MCP)服务器。它连接到航空天气API以获取METAR、TAF、PIREP和其他数据。

免责声明

请勿将此工具用于飞行计划或飞行中的决策制定。

重要免责声明
本航空天气MCP服务器提供的天气数据仅来源于aviationweather.gov,仅供信息参考。该工具提供的信息绝不应作为飞行计划或飞行中决策的唯一来源。

天气数据可能不完整、延迟或不准确。此外,解释这些数据的大语言模型可能会误解或错误地表示关键信息。在任何飞行之前,请始终咨询官方航空天气来源,并从授权提供商处获得适当的天气简报。

此工具未获得FAA批准,不能替代认证的天气服务,仅可用作补充参考。开发者不对基于此工具提供的信息所做出的决定承担任何责任。

务必通过官方渠道验证关键天气信息。

功能

  • 类型安全的API客户端:根据官方航空天气API Swagger定义自动生成
  • 用于天气数据的MCP工具
    • get-metar:获取当前天气观测
    • get-taf:获取终端机场预报
    • get-pireps:获取机场附近的飞行员报告
    • get-route-weather:获取两个机场之间航线的综合天气

设置

前提条件

  • Node.js 18或更高版本
  • npm 或 yarn
  • curl(用于获取Swagger YAML)

安装

  1. 克隆此仓库:

    bash
    git clone https://github.com/yourusername/aviation-weather-mcp-server.git
    cd aviation-weather-mcp-server

  2. 安装依赖项:

    bash
    npm install

  3. 构建服务器(这将获取最新的Swagger定义,生成API客户端,并编译TypeScript):

    bash
    npm run build

  4. 启动服务器:

    bash
    npm start

与Claude for Desktop配合使用

要与此服务器配合使用Claude for Desktop:

  1. 编辑您的Claude for Desktop配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%Claudeclaude_desktop_config.json
  2. 将服务器添加到配置中:

    json
    {
    "mcpServers": {
    "aviation-weather": {
    "command": "node",
    "args": [
    "/absolute/path/to/aviation-weather-mcp-server/build/index.js"
    ]
    }
    }
    }

  3. 重启Claude for Desktop

示例查询

连接到Claude后,您可以提出如下问题:

  • "KJFK的当前天气是什么?"
  • "KORD有TAF吗?"
  • "我计划明天从KBOS飞往KPHL。天气怎么样?"
  • "KDEN附近有任何PIREP吗?"

开发

项目结构

  • src/index.ts: 主服务器代码
  • packages/aviation-weath-api: 自动生成的航空天气.gov API客户端

构建航空天气客户端

构建过程遵循以下步骤:

  1. npm run aviation-weather-api:clean: 删除现有的客户端
  2. npm run aviation-weather-api:fetch: 从aviationweather.gov获取最新的Swagger定义
  3. npm run aviation-weather-api:generate: 根据Swagger定义生成类型化的TypeScript客户端

构建和运行应用程序

  1. npm run build: 构建JavaScript客户端
  2. npm run start: 运行MCP服务器

添加更多工具

要向服务器添加新工具,请遵循以下模式:

typescript
server.tool(
"tool-name",
{
// Zod参数模式
param1: z.string().describe("参数描述"),
param2: z.number().optional().describe("可选参数")
},
async ({ param1, param2 }) => {
try {
// 实现
return {
content: [{
type: "text",
text: "响应文本"
}]
};
} catch (error) {
return {
content: [{
type: "text",
text: 错误: ${error.message}
}],
isError: true
};
}
}
);## 工作原理

  1. 服务器从 aviationweather.gov 获取最新的 Swagger 定义
  2. OpenAPI 生成器根据该定义创建一个类型安全的客户端
  3. 服务器使用此客户端进行带有正确类型的 API 调用
  4. 错误处理和响应格式化确保了流畅的体验

许可证

MIT

相关 MCP 服务