weather-mcp-server

weather-mcp-server

3.2

If you are the rightful owner of weather-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

双源天气 MCP 服务器是一个基于 Model Context Protocol (MCP) 的天气服务器,使用和风天气和心知天气API提供天气数据,支持故障转移和优先获取最快响应。

双源天气 MCP 服务器

这是一个基于 Model Context Protocol (MCP) 的天气服务器,使用和风天气和心知天气API提供天气数据,支持故障转移和优先获取最快响应。

功能

  • 查看当前天气 (作为资源提供)
  • 获取指定城市的当前天气 (工具)
  • 获取指定城市的天气预报 (工具)
  • 同时使用多个API源,自动选择最快响应的结果
  • 支持最低/最高温度、湿度和风速数据

安装

# 克隆仓库
git clone <repository-url>
cd weather-mcp-server

# 安装依赖
npm install

# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,添加你的API密钥

API 密钥获取

和风天气 API

  1. 访问 和风天气开发服务
  2. 注册账号并创建应用
  3. 在控制台获取API Key

心知天气 API

  1. 访问 心知天气开发服务
  2. 注册账号并创建应用
  3. 在控制台获取API Key

开发

# 构建项目
npm run build

# 监视模式 (自动重新构建)
npm run watch

运行

npm start

MCP 模式说明

本服务器仅支持 Model Context Protocol (MCP) 模式运行,不提供HTTP服务器功能。MCP是一种专为大型语言模型设计的协议,允许模型与外部工具和资源进行交互。

MCP 服务器特点

  • 使用标准输入/输出 (stdio) 与客户端通信
  • 提供资源和工具供大型语言模型使用
  • 支持结构化数据交换和错误处理

可用资源

  • weather://{city} - 获取指定城市的当前天气

可用工具

  • getCurrentWeather - 获取指定城市的当前天气
  • getForecast - 获取指定城市的天气预报(支持1-7天)

在 Claude Desktop 中配置

编辑 Claude Desktop 配置文件:

// macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
// Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "weather": {
      "command": "node",
      "args": ["你的完整路径/weather-mcp-server/build/index.js"],
      "env": {
        "QWEATHER_API_KEY": "你的和风天气API密钥",
        "SENIVERSE_API_KEY": "你的心知天气API密钥"
      }
    }
  }
}

调试

查看 MCP 的日志:

# macOS
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

使用 MCP Inspector 调试

npx @modelcontextprotocol/inspector node 你的完整路径/weather-mcp-server/build/index.js

然后在浏览器中访问 http://localhost:5173

故障转移机制

此服务器同时使用多个天气API源:

  1. 首先并行向和风天气和心知天气发送请求
  2. 采用最先返回响应的API结果
  3. 如果某个API失败,会自动使用另一个API的结果
  4. 所有API都失败时才会返回错误

技术文档

详细的技术文档可在 docs 目录中找到:

  • - 项目架构和功能概述
  • - MCP服务器实现的详细说明
  • - 数据结构和类型定义

贡献

欢迎提交问题和拉取请求。

效果

许可

MIT