← 返回目录
W

Weather MCP Server

社区
为 Claude Desktop 提供实时天气查询的 MCP 服务器
GitHub 源仓库 ↗
★ 98 Stars 分类 · 其他 热门 源版本 25d68abac2b1
50FMRS · D
可靠性
9/20
安全与权限
8/20
维护活跃度
12/20
文档质量
12/20
安装易用性
9/20

该项目是一个功能完整的天气 MCP 服务器,采用 Clean Architecture,提供清晰的工具接口。适合希望在 Claude 中集成天气查询的开发者。

查看 FMRS 评分方法 →

Weather MCP Server 是一个使用 TypeScript 实现的 MCP 服务器,遵循 Clean Architecture 和 SOLID 原则。它允许 Claude Desktop 通过 OpenWeatherMap、PostgreSQL 和 Redis 查询实时天气、未来5天预报、查询历史以及缓存统计。

工具能力

get_current_weather
获取任何城市的当前天气状况。
get_weather_forecast
获取未来5天的天气预报。
get_weather_history
获取过去的天气查询记录。
get_cache_statistics
获取 Redis 缓存性能统计。

安装接入

  1. 克隆仓库: git clone https://github.com/glaucia86/weather-mcp-server.git
  2. 安装依赖: npm install
  3. 复制 .env.example 为 .env 并配置 WEATHER_API_KEY、DATABASE_URL、REDIS_URL
  4. 构建: npm run build
  5. 启动基础设施: npm run docker:up
  6. 配置 Claude Desktop 的 claude_desktop_config.json,添加上述配置。
claude_desktop_config.json
{
  "mcpServers": {
    "weather-mcp": {
      "command": "node",
      "args": [
        "/caminho/completo/para/weather-mcp-server/dist/mcp-entry.js"
      ],
      "env": {
        "WEATHER_API_KEY": "SUA_API_KEY_OPENWEATHERMAP",
        "DATABASE_URL": "postgresql://mcp_user:mcp_pass@localhost:5432/weather_mcp",
        "REDIS_URL": "redis://localhost:6379",
        "NODE_ENV": "production",
        "LOG_LEVEL": "error",
        "MCP_MODE": "true"
      }
    }
  }
}

选型与风险

适合谁

  • 开发者希望将实时天气数据集成到 Claude Desktop 中
  • 需要缓存以提高查询性能的场景
  • 希望使用干净架构和 SOLID 原则构建 MCP 服务器的开发者

不适合谁

  • 没有 OpenWeatherMap API 密钥的用户
  • 无需缓存或数据库的简单用例
  • 不希望运行 Docker 环境的用户

所需权限

  • 访问 OpenWeatherMap 外部 API
  • 读取/写入 PostgreSQL 数据库(用于存储查询历史)
  • 读写 Redis 缓存
  • 读取环境变量中的 API 密钥

风险与副作用

  • API 密钥泄露风险:如果密钥未安全保管
  • 数据库和 Redis 服务不可用导致查询失败
  • 缓存数据可能过期导致不准确
  • 依赖外部 OpenWeatherMap API,可能有限制或停机

常见排障

  1. 如果遇到 'Cannot find module',执行 rm -rf node_modules package-lock.json; npm cache clean --force; npm install; npm run build
  2. 如果 MCP 不连接 Claude Desktop,检查 claude_desktop_config.json 中的路径是否完整,确认 dist/mcp-entry.js 存在,完全重启 Claude Desktop
  3. 如果 PostgreSQL 连接被拒绝,运行 npm run docker:down 和 npm run docker:up,等待30秒

使用场景

实时查询任何城市的当前天气
获取未来5天的天气预报
查看历史天气查询记录
监控系统缓存性能

支持客户端

Claude Desktop完整支持