天气数据服务

一个基于Model Context Protocol (MCP)的天气数据服务器,提供美国地区的天气信息和警报,适用于AI代理通过MCP协议获取实时天气数据。

  • by akaramanapp
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 akaramanapp/weather-mcp-server

使用说明

气象MCP服务器

模型上下文协议(MCP)服务器,使用美国国家气象局(NWS)API为美国各地提供天气信息和警报。该服务器旨在通过模型上下文协议供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工具:

获取警报

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

参数:

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

示例响应:

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

获取预报

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

参数:

  • 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的接口
  • 具有Node16模块分辨率的ES2022目标

发展

要修改或扩展服务器,请执行以下操作:

  1. 在 src/index.ts 文件
  2. 重新生成应用程序:
npm run build

依赖项

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

许可证

国际协调委员会

备注

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