天气MCP服务器

@akaramanapp/weather-mcp-server
1 Stars 2.6k 次浏览 akaramanapp 更新于 2026-08-23

一种模型上下文协议服务器,它通过国家气象局API为美国地点提供检索天气警报和详细预报的工具给AI代理。

该服务暂未提供标准配置,请参考 README 手动接入

可用工具 (2 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

get-alerts 1 个参数 需填 1 项

Get weather alerts for a state

必填参数:state

get-forecast 2 个参数 需填 2 项

Get weather forecast for a location

必填参数:latitude、longitude

服务介绍

天气 MCP 服务器

一个使用国家气象局(NWS)API 提供美国地区天气信息和警报的模型上下文协议(MCP)服务器。此服务器设计用于通过模型上下文协议由AI代理使用。

特性

  • 获取任意美国州的天气警报工具
  • 使用坐标获取任意美国位置详细天气预报的工具
  • 支持温度、风况及简短预报描述
  • 来自国家气象服务的实时数据

先决条件

  • Node.js (v16 或更高版本)
  • npm 或 yarn 包管理器

安装

  1. 克隆仓库:
git clone https://github.com/akaramanapp/weather-mcp-server.git
cd weather-mcp-server
  1. 安装依赖项:
npm install
  1. 构建应用程序:
npm run build

MCP 工具

服务器提供了两个可以被AI代理使用的MCP工具:

get-alerts

为特定的美国州获取天气警报。

参数:

  • state: 两字母州代码(例如,CA, NY)

示例响应:

{
  "content": [
    {
      "type": "text",
      "text": "Active alerts for CA: ..."
    }
  ]
}

get-forecast

使用坐标获取特定位置的天气预报。

参数:

  • latitude: 位置的纬度 (-90 到 90)
  • longitude: 位置的经度 (-180 到 180)

示例响应:

{
  "content": [
    {
      "type": "text",
      "text": "Morning: Temperature: 72°F, Wind: 5mph NW, Partly cloudy..."
    }
  ]
}

项目结构

weather/
├── src/
│   └── index.ts    # Main server code with MCP tool implementations
├── build/          # Compiled JavaScript files
├── package.json    # Project dependencies and scripts
└── tsconfig.json   # TypeScript configuration

技术细节

  • 用 TypeScript 构建
  • 实现了模型上下文协议(MCP)服务器
  • 使用 @modelcontextprotocol/sdk 实现MCP服务器
  • 与国家气象局(NWS)API 接口交互
  • ES2022 目标与 Node16 模块解析

开发

要修改或扩展服务器:

  1. src/index.ts 文件中进行更改
  2. 重新构建应用程序:
npm run build

依赖项

  • @modelcontextprotocol/sdk: MCP 服务器实现框架
  • zod: 用于工具参数的运行时类型检查和验证
  • TypeScript: 用于类型安全的开发依赖项

许可证

ISC

注意事项

  • 此服务器仅适用于美国地区,因为它使用的是国家气象局 API
  • API 请求受到速率限制,并需要 User-Agent 标头
  • 所有坐标应采用十进制度数格式
  • 这不是一个独立的命令行应用程序,而是一个通过模型上下文协议向AI代理提供工具的服务器