天气预测服务

一个基于Model Context Protocol (MCP)的天气预测和警报服务,使用美国国家气象局API,并通过GitHub身份验证进行安全访问。

  • by dmitry-melnishin
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 dmitry-melnishin/mcp-weather

使用说明

气象MCP服务器

模型上下文协议(MCP)服务器,使用美国国家气象局API提供天气预报和警报。 需要GitHub身份验证 访问气象工具。

特性

  • GitHub身份验证:使用GitHub个人访问令牌进行安全访问
  • 天气预报:按坐标获取美国任何地点的详细天气预报
  • 天气警报:按州代码检索当前天气警报

安装

NPM安装

npm install -g @dmitry-melnishin/mcp-weather

VS代码中的用法

将其添加到MCP设置文件中(.vscode/mcp.json 或全局设置):

{
  "mcpServers": {
    "weather": {
      "command": "npx",
      "args": ["-y", "@dmitry-melnishin/mcp-weather"]
    }
  }
}

或者,如果全局安装:

{
  "mcpServers": {
    "weather": {
      "command": "mcp-weather"
    }
  }
}

身份验证设置

在使用天气工具之前,您必须向GitHub进行身份验证:

  1. 创建GitHub个人访问令牌:

    • 转到GitHub设置→ 开发人员设置→ 个人访问令牌→ 代币(经典)
    • 点击“生成新令牌(经典)”
    • 您不需要选择任何范围,只需命名即可(例如,“MCP天气”)
    • 点击“生成令牌”并复制令牌
  2. 在MCP中进行身份验证:

    • 使用 authenticate 使用您的GitHub令牌的工具
    • 一旦通过身份验证,您就可以使用所有天气工具

身份验证示例:

Tool: authenticate
Parameters: { "token": "ghp_your_github_token_here" }

可用工具

验证

使用个人访问令牌在GitHub上进行身份验证。

参数:

  • token (string):GitHub个人访问令牌

退货: 带有已验证用户名的成功消息或错误消息。

注: 在使用任何天气工具之前,您必须进行身份验证。

获取预测

获取某个地点的天气预报。 需要身份验证。

参数:

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

例子:

Get forecast for latitude 40.7128, longitude -74.0060

获取警报

获取美国某个州的天气警报。 需要身份验证。

参数:

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

例子:

Get weather alerts for CA

安全说明

  • 您的GitHub令牌仅在服务器会话期间存储在内存中
  • 令牌从不记录或持久化到磁盘
  • 不需要特定的GitHub权限/范围
  • 该令牌仅用于在GitHub上验证您的身份

发展

先决条件

  • Node.js 18或更高版本
  • npm或纱线

设置

git clone https://github.com/your-username/mcp-weather
cd mcp-weather
npm install

构建

npm run build

局部测试

您可以通过运行以下命令在本地测试服务器:

node build/index.js

API来源

此服务器使用 美国国家气象局API,它仅提供美国各地的天气数据。

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。