天气信息服务

一个基于OpenWeatherMap API的天气信息服务器,提供全球城市的实时天气和5天天气预报。

  • by nandarizkika
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 nandarizkika/mcp-weather-server

使用说明

MCP气象服务器

模型上下文协议(MCP)服务器,使用OpenWeatherMap API提供天气信息和预报。

特性

  • 🌤️ 获取任何城市的当前天气状况
  • 📅 获取5天天气预报
  • 🌡️ 温度、湿度、风速和大气压
  • ☁️ 天气描述和条件
  • 🌍 与世界各地的城市合作

可用工具

get_weather

获取指定位置的当前天气状况。

参数:

  • location (必填):城市名称(例如“伦敦”、“雅加达”、“纽约”)

例子: “雅加达的天气怎么样?”

get_weather_forecast

获取指定位置的5天天气预报。

参数:

  • location (必填):城市名称
  • days (可选):预测天数(1-5,默认值:5)

例子: “伦敦的5天天气预报是什么?”

先决条件

  • Python 3.7+
  • OpenWeatherMap API密钥(提供免费层)
  • Claude桌面应用程序

安装

  1. 克隆存储库:

    git clone https://github.com/your-username/mcp-weather-server.git
    cd mcp-weather-server
    
  2. 创建虚拟环境:

    python -m venv .venv
    .venv\Scripts\activate  # On Windows
    # or
    source .venv/bin/activate  # On macOS/Linux
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 获取API密钥:

  5. 设置环境变量:

    • 复制 .env.example 向 .env
    • 将API密钥添加到 .env 文件:
      OPENWEATHER_API_KEY=your_api_key_here
      

配置

Claude桌面设置

  1. 找到您的Claude Desktop配置文件:

    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. 添加天气服务器配置:

    {
      "mcpServers": {
        "weather": {
          "command": "path/to/your/project/.venv/Scripts/python.exe",
          "args": ["path/to/your/project/minimal_weather_server.py"],
          "env": {
            "OPENWEATHER_API_KEY": "your_api_key_here"
          }
        }
      }
    }
    
  3. 重新启动克劳德桌面

测试

独立测试服务器:

python test_minimal.py

或测试特定功能:

python debug_server.py

使用示例

一旦配置了Claude Desktop,您就可以问自然语言问题:

  • “雅加达的天气怎么样?”
  • “告诉我伦敦的当前天气”
  • “东京的5天天气预报是什么?”
  • “今天新加坡的天气怎么样?”
  • “给我看看万隆的天气预报”

项目结构

mcp-weather-server/
├── minimal_weather_server.py    # Main MCP server
├── simple_weather_server.py     # Alternative simple server
├── weather_server.py           # Original MCP library version
├── test_minimal.py             # Test script
├── debug_server.py             # Debug utilities
├── requirements.txt            # Python dependencies
├── .env.example               # Environment template
├── .env                      # Environment variables (not in git)
├── .gitignore               # Git ignore rules
└── README.md               # This file

api参考

此服务器使用 OpenWeatherMap API 以获取天气数据。

故障排除

常见问题

  1. “找不到API密钥”错误:

    • 确保您的 .env 文件包含 OPENWEATHER_API_KEY=your_actual_key
    • 验证API密钥有效且处于活动状态
  2. Claude中的“服务器已断开连接”:

    • 检查配置中的文件路径是否正确
    • 确保Python可执行路径准确
    • 配置更改后重新启动Claude Desktop
  3. “找不到位置”错误:

    • 尝试使用不同的城市名称变体
    • 包括模糊城市的国家名称(例如“英国伦敦”)

调试步骤

  1. 独立测试服务器:

    python test_minimal.py
    
  2. 在Claude Desktop中检查服务器日志

  3. 在OpenWeatherMap验证API密钥权限

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

支持

如果您遇到任何问题或有疑问:

  1. 检查 故障排除部分
  2. 审查 OpenWeatherMap API文档
  3. 在GitHub上打开一个问题

由以下材料制成❤️ 对于MCP社区