Weather-MCP-ClaudeDesktop 是一个 MCP(模型上下文协议)工具,专为 Claude Desktop 设计,通过 OpenWeatherMap API 提供实时天气数据、天气预报和历史天气信息。
用途
该工具旨在让 Claude Desktop 用户能够通过自然语言查询全球任意地点的天气相关数据,包括实时天气状况、未来预报、历史天气、空气质量、天气警报以及地点搜索。
主要能力
- 实时天气状况:获取任意地点的当前天气。
- 天气预报:提供最多 5 天的天气预报。
- 历史天气数据:查询过去 5 天的历史天气。
- 空气质量信息:获取指定地点的空气质量数据。
- 天气警报和警告:获取指定地点的天气警报。
- 地点搜索功能:按名称搜索地点。
使用方式
- 环境要求:确保安装 Python 3.10 或更高版本。
- 安装依赖:安装项目所需依赖。
- 获取 API 密钥:从 OpenWeatherMap 获取 API 密钥(免费层可用)。注意:新 API 密钥最多可能需要 24 小时才能激活。
- 设置环境变量(推荐方法):
- 在项目目录中创建 .env 文件。
- 在文件中添加 API 密钥:OPENWEATHER_API_KEY=your_openweathermap_api_key
- 将 .env 添加到 .gitignore 文件,防止提交敏感数据。
- 更新 main.py 以使用环境变量:
- 在顶部添加导入:import os 和 from dotenv import load_dotenv
- 加载环境变量:load_dotenv()
- 将 API_KEY 行替换为:API_KEY = os.getenv("OPENWEATHER_API_KEY")
- 与 Claude Desktop 集成:在 Claude Desktop 的 MCP 配置中添加相应设置,将路径替换为 main.py 文件的完整路径。
- 运行服务器:启动服务器,并在使用 Claude Desktop 期间保持服务器运行。
可用工具
- get_current_weather:获取某地点的实时天气状况。
- get_weather_forecast:获取某地点的天气预报。
- get_air_quality:获取某地点的空气质量数据。
- get_historical_weather:获取特定日期的历史天气数据。
- search_location:按名称搜索地点。
- get_weather_alerts:获取某地点的天气警报。
用户可以向 Claude Desktop 提出如下问题:
- “纽约现在的天气怎么样?”
- “显示伦敦的 5 天预报”
- “北京今天的空气质量如何?”
- “巴黎 3 月 14 日的天气怎么样?”
- “搜索名为‘Tokyo’的地点”
- “迈阿密有天气警报吗?”
- “比较芝加哥、迈阿密和西雅图的当前天气”
- “显示北京、洛杉矶和德里的空气质量对比”
所有工具都包含适当的错误处理,如果出现问题将返回错误消息。
适用场景
适用于需要在 Claude Desktop 中快速获取全球天气信息、进行天气对比、查询历史天气或空气质量等场景的个人用户。
限制
- 需要 Python 3.10 或更高版本。
- 需要 OpenWeatherMap API 密钥,新密钥最多需 24 小时激活。
- 受 OpenWeatherMap API 速率限制:免费层每分钟最多 60 次调用,频繁请求可能被限流。
- 历史天气数据仅限过去 5 天,预报最多 5 天。
- 需保持 MCP 服务器运行才能使用。
故障排除
如果 MCP 服务器在 Claude Desktop 中无法工作:
- 确保服务器正在运行(启动脚本时应看到输出)。
- 验证设置中的路径正确且为绝对路径。
- 确保 Python 3.10+ 在系统 PATH 中。
- 检查所有依赖是否已安装。
- 尝试重启 Claude Desktop。
- 检查日志中的错误消息。
常见 API 问题:
- API 密钥激活:新的 OpenWeatherMap API 密钥最多可能需要 24 小时激活。
- 无效 API 密钥错误:如果收到 401 错误,请验证 API 密钥是否正确且已激活。
- 速率限制:免费层允许每分钟最多 60 次调用,重度使用可能超出。