天气数据服务

一个基于国家气象局API的天气数据服务,提供美国地区的实时天气预报和警报功能,适用于AI助手集成。

  • by gaurigshankar
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 gaurigshankar/weather-mcp-server

使用说明

气象MCP服务器

模型上下文协议(MCP)服务器,使用美国国家气象局(NWS)API提供天气信息和警报。该服务器使人工智能助手能够访问美国各地的实时天气数据。

特性

  • 天气预报:使用纬度/经度坐标获取美国任何地点的详细天气预报
  • 天气警报:检索美国任何州的活动天气警报
  • NWS集成:使用官方国家气象局API获取可靠的最新天气数据
  • MCP兼容:适用于任何兼容MCP的AI助手或应用程序

可用工具

get_forecast

获取特定位置的天气预报。

参数:

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

退货: 详细的天气预报,包括温度、风况和多个时期的天气描述。

get_alerts

获取美国某个州的活跃天气警报。

参数:

  • state (string):两个字母的状态码(例如,“CA”、“NY”、“TX”)

退货: 活动天气警报列表,包括严重程度、受影响区域和描述。

先决条件

  • Node.js(版本14或更高)
  • npm或纱线
  • 与MCP兼容的客户端(如带有GitHub Copilot的VS Code)

安装

  1. 克隆存储库:

    git clone <repository-url>
    cd weather-mcp-server
    
  2. 安装依赖项:

    npm install
    

构建服务器

将TypeScript代码构建为JavaScript:

npm run build

这将:

  • 编译TypeScript文件 src/ 向 build/
  • 使主可执行文件可执行(chmod 755 build/index.js)

使用VS Code GitHub Copilot

要将此天气MCP服务器与VS Code GitHub Copilot一起使用,您需要更新MCP配置:

步骤1:更新MCP配置

编辑您的 mcp.json 文件(通常位于您的VS Code设置目录中)并添加天气服务器:

{
  "mcpServers": {
    "weather": {
      "command": "node",
      "args": ["/Users/gshanka/Documents/ReactDev/weather-mcp-server/build/index.js"]
    }
  }
}

注: 替换中的路径 args 与您的建筑绝对路径 index.js 文件。

步骤2:重新启动VS代码

更新配置后,重新启动VS Code以加载新的MCP服务器。

第三步:使用天气工具

配置后,您可以向GitHub Copilot询问天气信息:

  • “旧金山的天气预报是什么?”(Copilot会询问坐标,或者你可以提供:纬度37.7749,经度-122.4194)
  • “加利福尼亚州有天气警报吗?”(使用州代码“CA”)
  • “给我纬度40.7128,经度-74.0060的天气预报”(纽约市)

示例用法

获取天气预报

User: "What's the weather forecast for Seattle?"
Assistant: I'll get the weather forecast for Seattle (latitude: 47.6062, longitude: -122.3321).

[The server will return a detailed forecast with temperature, wind, and conditions for multiple periods]

获取天气警报

User: "Are there any weather alerts in Florida?"
Assistant: I'll check for weather alerts in Florida.

[The server will return any active weather alerts for the state of FL]

发展

项目结构

weather-mcp-server/
├── src/
│   ├── index.ts          # Main MCP server implementation
│   └── weather-utils.ts  # Weather API utilities and types
├── build/                # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md

在发展中奔跑

# Build and run
npm run build
node build/index.js

调试

服务器会将错误记录到stderr中,您可以在直接运行服务器或检查MCP客户端的日志时监视stderr。

API限制

  • 仅限美国:美国国家气象局API仅提供美国地区的数据
  • 速率限制:NWS API有费率限制;避免提出过多的要求
  • 数据可用性:一些偏远或海上地点可能没有可用的预测数据

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 构建和测试服务器
  5. 提交拉取请求

许可证

ISC许可证-详见package.json。

故障排除

服务器未加载

  • 确保路径 mcp.json 指向正确 build/index.js 文件
  • 验证服务器是否已成功构建 npm run build
  • 检查VS Code的MCP日志中的错误消息

无天气数据

  • 验证您使用的是有效的美国坐标
  • 检查是否可以从您的网络访问NWS API
  • 确保您使用有效的两个字母的州代码进行警报

权限错误

  • 确保 build/index.js 文件是可执行的
  • 构建脚本应通过以下方式自动处理此问题 chmod 755