mcpField
M
MCP Weather Server

MCP Weather Server

本地服务
npmjs.com媒体与设计3459 周前更新

关于 MCP Weather Server

MCP Weather Server 是一个基于 AccuWeather API 的 MCP 服务,提供逐时和逐日天气预报。它面向需要让大模型获取实时天气数据的用户,并支持公制与英制单位。

主要功能

  1. 01逐时天气预报(未来 12 小时)
  2. 02逐日天气预报(最多 15 天)
  3. 03支持摄氏度与华氏度单位
  4. 04通过 npx 直接运行

适用场景

  1. 01在 Claude Desktop 中询问某城市的天气预报
  2. 02查询未来几天是否会下雨

MCP 相关

该项目是一个 MCP 服务,向 Claude Desktop 等客户端暴露 weather-get_hourly 和 weather-get_daily 两个工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"weather": {
"command": "npx",
"args": [
"-y",
"@timlukahorstmann/mcp-weather"
],
"env": {
"ACCUWEATHER_API_KEY": "<ACCUWEATHER_API_KEY>"
}
}
}
}
启动命令npx -y @timlukahorstmann/mcp-weather
需要配置的环境变量
ACCUWEATHER_API_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@timlukahorstmann/mcp-weather

工具

2

收录的工具列表 · 更新于 3 周前

参数类型必填说明
unitsenum否温度单位制(metric 表示摄氏度,imperial 表示华氏度)。默认值为 metric。metric | imperial
locationstring是要获取天气预报的城市或地点。

详细介绍

MCP 天气服务

npm version license node version issues weekly downloads Trust Score

MCP 天气服务 Logo 天气 MCP 服务

一个使用 AccuWeather API 提供每小时和每日天气预报的 Model Context Protocol(MCP)服务。


快速开始

你需要一个 AccuWeather API 密钥(提供免费套餐)。
在此注册并创建应用以获取密钥。

将 API 密钥导出为环境变量:

export ACCUWEATHER_API_KEY=your_api_key_here

然后直接运行 MCP 天气服务:

npx -y @timlukahorstmann/mcp-weather

或者通过 supergateway 使用 HTTP/REST 访问:

npx -y supergateway --stdio "npx -y @timlukahorstmann/mcp-weather" \
  --port 4004 \
  --baseUrl http://127.0.0.1:4004 \
  --ssePath /messages \
  --messagePath /message \
  --cors "*" \
  --env ACCUWEATHER_API_KEY="$ACCUWEATHER_API_KEY"

MCP 服务配置示例

要与 Claude Desktop 或其他兼容 MCP 的客户端集成,请将以下内容添加到配置中(例如 claude_desktop_config.json):

{
  "mcpServers": {
    "weather": {
      "command": "npx",
      "args": ["-y", "@timlukahorstmann/mcp-weather"],
      "env": {
        "ACCUWEATHER_API_KEY": "your_api_key_here"
      }
    }
  }
}

概览

此 MCP 服务允许大模型(如 Claude)访问实时天气数据。与 LLM 集成后,它可以让模型:

  • 获取准确、最新的天气预报
  • 提供未来 12 小时的逐小时天气数据
  • 访问未来最多 15 天的每日天气预报
  • 以公制(°C)和英制(°F)单位显示数据
  • 查看温度、天气状况、降水信息及其他天气详情

可用工具

逐小时天气预报
  • 工具名称:weather-get_hourly
  • 提供未来 12 小时的逐小时天气预报
  • 参数:
    • location(必需):城市或地点名称
    • units(可选):"metric"(摄氏度,默认)或 "imperial"(华氏度)
每日天气预报
  • 工具名称:weather-get_daily
  • 提供最多未来 15 天的每日天气预报
  • 参数:
    • location(必需):城市或地点名称
    • days(可选):预报天数(1、5、10 或 15;默认为 5)
    • units(可选):"metric"(摄氏度,默认)或 "imperial"(华氏度)

前提条件

  • Node.js ≥18
  • AccuWeather API 密钥(通过 .env 或 shell 设置)

设置

  1. 克隆此仓库:

    git clone https://github.com/TimLukaHorstmann/mcp-weather.git
    cd mcp-weather
    
  2. 安装依赖:

    npm install
    
  3. 获取 AccuWeather API 密钥:

  4. 创建包含 API 密钥的 .env 文件:

    ACCUWEATHER_API_KEY=your_api_key_here
    
  5. 构建项目:

    npm run build
    

在 Claude Desktop 中使用

  1. 配置 Claude Desktop 以使用此 MCP 服务:

    • 打开 Claude Desktop
    • 前往 Settings > Developer > Edit Config
    • 将以下内容添加到 claude_desktop_config.json:
    {
      "mcpServers": {
        "weather": {
          "command": "npx",
          "args": ["-y", "@timlukahorstmann/mcp-weather"],
          "env": {
            "ACCUWEATHER_API_KEY": "your_api_key_here"
          }
        }
      }
    }
    
  2. 重启 Claude Desktop

  3. 在新对话中,点击插头图标并选择 "weather",启用 MCP 服务

  4. 现在可以向 Claude 询问天气预报,例如:

    • "纽约市未来几小时的天气预报是什么?"
    • "给我伦敦未来 5 天的天气预报。"
    • "东京本周的天气(华氏度)如何?"
    • "旧金山明天会下雨吗?"

开发

  • 安装开发依赖:npm install
  • 检查代码: npm run lint
  • 构建: npm run build
  • 运行测试: npm test
  • 以开发模式启动: npm run dev

贡献

欢迎贡献!请随时提交 Pull Request。

后续增强

我们一直在寻求改进 MCP Weather Server。以下是我们正在考虑在未来版本中加入的一些功能:

  • 扩展逐小时预报: 超过 12 小时,例如 24 或 48 小时。
  • 天气预警: 集成 AccuWeather 的恶劣天气预警 API。
  • 位置自动补全: 通过自动补全建议改进位置搜索。
  • 历史天气数据: 获取过去的天气状况。

如果你对其他功能有想法,欢迎提交 issue!

更新日志

0.4.0
  • 从所有工具中移除了 sessionId 要求,因为它在内部没有任何用途
  • 这简化了集成,并减少了 LLM 使用时的困惑
0.3.0 及更早版本
  • 初始版本,具备基本功能

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。