关于 MCP Weather Server
MCP Weather Server 是一个基于 AccuWeather API 的 MCP 服务,提供逐时和逐日天气预报。它面向需要让大模型获取实时天气数据的用户,并支持公制与英制单位。
主要功能
- 01逐时天气预报(未来 12 小时)
- 02逐日天气预报(最多 15 天)
- 03支持摄氏度与华氏度单位
- 04通过 npx 直接运行
适用场景
- 01在 Claude Desktop 中询问某城市的天气预报
- 02查询未来几天是否会下雨
MCP 相关
该项目是一个 MCP 服务,向 Claude Desktop 等客户端暴露 weather-get_hourly 和 weather-get_daily 两个工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| units | enum | 否 | 温度单位制(metric 表示摄氏度,imperial 表示华氏度)。默认值为 metric。metric | imperial |
| location | string | 是 | 要获取天气预报的城市或地点。 |
详细介绍
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 设置)
设置
-
克隆此仓库:
git clone https://github.com/TimLukaHorstmann/mcp-weather.git cd mcp-weather -
安装依赖:
npm install -
获取 AccuWeather API 密钥:
- 在 AccuWeather API 注册
- 创建新应用并获取 API 密钥
-
创建包含 API 密钥的
.env文件:ACCUWEATHER_API_KEY=your_api_key_here -
构建项目:
npm run build
在 Claude Desktop 中使用
-
配置 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" } } } } -
重启 Claude Desktop
-
在新对话中,点击插头图标并选择 "weather",启用 MCP 服务
-
现在可以向 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 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。