Skip to main content
Glama
nandarizkika

mcp-weather-server

by nandarizkika

MCP Weather Server

A Model Context Protocol (MCP) server that provides weather information and forecasts using the OpenWeatherMap API.

Features

  • šŸŒ¤ļø Get current weather conditions for any city

  • šŸ“… Get 5-day weather forecasts

  • šŸŒ”ļø Temperature, humidity, wind speed, and atmospheric pressure

  • ā˜ļø Weather descriptions and conditions

  • šŸŒ Works with cities worldwide

Related MCP server: OpenWeatherMap MCP Server

Tools Available

get_weather

Get current weather conditions for a specified location.

Parameters:

  • location (required): City name (e.g., "London", "Jakarta", "New York")

Example: "What's the weather in Jakarta?"

get_weather_forecast

Get a 5-day weather forecast for a specified location.

Parameters:

  • location (required): City name

  • days (optional): Number of days to forecast (1-5, default: 5)

Example: "What's the 5-day forecast for London?"

Prerequisites

  • Python 3.7+

  • OpenWeatherMap API key (free tier available)

  • Claude Desktop application

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/mcp-weather-server.git
    cd mcp-weather-server
  2. Create a virtual environment:

    python -m venv .venv
    .venv\Scripts\activate  # On Windows
    # or
    source .venv/bin/activate  # On macOS/Linux
  3. Install dependencies:

    pip install -r requirements.txt
  4. Get an API key:

  5. Set up environment variables:

    • Copy .env.example to .env

    • Add your API key to the .env file:

      OPENWEATHER_API_KEY=your_api_key_here

Configuration

Claude Desktop Setup

  1. Locate your Claude Desktop config file:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  2. Add the weather server configuration:

    {
      "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. Restart Claude Desktop

Testing

Test the server independently:

python test_minimal.py

Or test specific functionality:

python debug_server.py

Usage Examples

Once configured with Claude Desktop, you can ask natural language questions:

  • "What's the weather in Jakarta?"

  • "Get me the current weather for London"

  • "What's the 5-day forecast for Tokyo?"

  • "How's the weather in Singapore today?"

  • "Show me the weather forecast for Bandung"

Project Structure

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 Reference

This server uses the OpenWeatherMap API to fetch weather data.

Troubleshooting

Common Issues

  1. "API key not found" error:

    • Ensure your .env file contains OPENWEATHER_API_KEY=your_actual_key

    • Verify the API key is valid and active

  2. "Server disconnected" in Claude:

    • Check that file paths in the config are correct

    • Ensure Python executable path is accurate

    • Restart Claude Desktop after config changes

  3. "Location not found" error:

    • Try using different city name variations

    • Include country name for ambiguous cities (e.g., "London, UK")

Debug Steps

  1. Test the server independently:

    python test_minimal.py
  2. Check server logs in Claude Desktop

  3. Verify API key permissions at OpenWeatherMap

Contributing

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • OpenWeatherMap for providing the weather API

  • Anthropic for Claude and the MCP specification

  • MCP community for protocol documentation and examples

Support

If you encounter any issues or have questions:

  1. Check the troubleshooting section

  2. Review OpenWeatherMap API docs

  3. Open an issue on GitHub


Made with ā¤ļø for the MCP community

Install Server
A
license - permissive license
B
quality
D
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Provides current weather conditions and 5-day forecasts for any location using the OpenWeatherMap API. Supports flexible location queries including city names, coordinates, and zip codes.
    MIT

View all related MCP servers

Related MCP Connectors

  • OpenWeather MCP — wraps the OpenWeatherMap API (openweathermap.org)

  • Global weather API: forecasts, historical data, marine, ski, astronomy and timezone.

  • Global weather via Open-Meteo: forecast, ERA5 archive, marine, air quality, geocoding, elevation.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nandarizkika/mcp-weather-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server