天气数据服务

一个基于Model Context Protocol (MCP)的服务器,提供美国天气预报和恶劣天气警报数据。

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

使用说明

🌦️ MCP服务器-天气

模型上下文协议(MCP)服务器使用来自 国家气象局(NWS).


🧩 特性

  • get-alerts:获取美国某个州的当前天气警报
  • get-forecast:获取美国位置的短期预测(纬度/经度)

📦 项目设置

1.克隆并安装依赖项

git clone <your-repo-url>
cd mcp-server-weather
npm install

2.构建TypeScript代码

npm run build

这将编译源代码 src/ 到 dist/.


3.直接运行服务器

node dist/index.js

您应该看到:

Weather MCP Server running on stdio

🧰 使用MCP Inspector CLI进行测试

用于与MCP服务器交互的官方CLI工具是 @modelcontextprotocol/inspector.


4.列出可用工具

npx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list

预期产量:

{
  "tools": [
    { "name": "get-alerts", "description": "Get weather alerts for a US state" },
    { "name": "get-forecast", "description": "Get weather forecast for a location in the US" }
  ]
}

5.获取天气警报

npx @modelcontextprotocol/inspector --cli node dist/index.js \
  --method tools/call \
  --params '{"name":"get-alerts","arguments":{"state":"CA"}}'

6.获取预测

npx @modelcontextprotocol/inspector --cli node dist/index.js \
  --method tools/call \
  --params '{"name":"get-forecast","arguments":{"latitude":37.7749,"longitude":-122.4194}}'

⚙️ 发布到npm

要将此MCP服务器发布为npm CLI工具:

  1. 更新 name, version,以及 repository 您的字段 package.json.
  2. 确保可执行文件映射正确:
    "bin": {
      "mcp-server-weather": "dist/index.js"
    }
    
  3. 构建项目:
    npm run build
    
  4. 确保二进制文件可执行:
    chmod +x dist/index.js
    
  5. 登录到npm:
    npm login
    
  6. 发布:
    npm publish --access public
    

发布后,任何人都可以全局安装和运行您的服务器:

npm install -g mcp-server-weather
mcp-server-weather

⚙️ Node.js版本

  • 最低要求: Node.js 18
  • 推荐: Node.js≥22.7.5 (以匹配最新 @modelcontextprotocol/inspector)
  • 使用以下方式更新:
    brew upgrade node@22
    

🧱 项目结构

mcp-server-weather/
├── src/
│   └── index.ts
├── dist/
│   └── index.js
├── package.json
├── tsconfig.json
└── README.md

🧩 开发命令

命令 描述
npm run build 将TypeScript编译为 dist/
npm run watch 监视更改并自动重建
npm run clean 清理构建工件
npm run do-publish 清理、安装并将包发布到npm
npm run publish-dry-run 在不上传的情况下测试npm发布过程

⚙️ 备注

  • 服务器使用 工作室 运输和必须 不 写信给 stdout (使用 console.error() 对于日志)。
  • MCP客户端(如OpenAI ChatGPT或MCP Inspector)通过JSON-RPC进行通信。
  • 仅适用于 美国坐标,因为NWS API不覆盖其他国家。

📜 许可证

麻省理工学院许可证©2025