Skip to main content
Glama
rajeevchandra

Weather MCP Server

Weather MCP Server šŸŒ¤ļø

A Model Context Protocol (MCP) server that provides real-time weather information for any city using the Open-Meteo API.

Features

  • šŸŒ Get current weather for any city worldwide

  • šŸŒ”ļø Returns temperature in Celsius

  • šŸ’Ø Provides wind speed in km/h

  • šŸ“ Includes geographic coordinates

  • 🐳 Fully containerized with Docker

  • šŸš€ Easy to deploy and use

Related MCP server: MCP Weather Server

Quick Start

Pull and run the pre-built image from Docker Hub:

docker pull 125478963/weather-mcp:latest
docker run -d -p 8000:8000 125478963/weather-mcp:latest

The server will be available at: http://localhost:8000/mcp

Building from Source

  1. Clone this repository:

git clone https://github.com/rajeevchandra/weather-mcp-docker.git
cd weather-mcp-docker
  1. Build the Docker image:

docker build -t weather-mcp .
  1. Run the container:

docker run -d -p 8000:8000 weather-mcp

Usage

This MCP server exposes a weather tool that can be used by MCP clients like Claude Desktop.

Available Tool

weather(city: str)

  • Returns current temperature (°C) and wind speed (km/h) for the specified city

  • Default city: Philadelphia

Example Response

{
  "city": "London",
  "latitude": 51.5074,
  "longitude": -0.1278,
  "temperature_c": 15.2,
  "windspeed_kmh": 12.5
}

Configuration

The server runs on:

  • Host: 0.0.0.0 (accessible from outside the container)

  • Port: 8000

  • Endpoint: /mcp

Using with MCP Clients

Claude Desktop

Add this to your Claude Desktop MCP settings:

{
  "mcpServers": {
    "weather": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Development

Prerequisites

  • Python 3.11+

  • Docker (optional, for containerization)

Local Development

  1. Install dependencies:

pip install -r requirements.txt
  1. Run the server:

python server.py

Testing

Run the complete test script to verify the server is working:

python complete_test.py

This will:

  1. Initialize a session with the MCP server

  2. List available tools

  3. Test the weather tool with multiple cities (London, Paris, Tokyo)

  4. Display real-time weather data

Expected Output:

āœ… Session initialized successfully!
Server: WeatherMCP
Version: 1.20.0

šŸŒ Getting weather for London...
   āœ… Success!
      Temperature: 14.2°C
      Wind Speed: 15.3 km/h

Or use the quick health check:

curl http://localhost:8000/mcp

Project Structure

weather-mcp/
ā”œā”€ā”€ server.py           # Main MCP server implementation
ā”œā”€ā”€ requirements.txt    # Python dependencies
ā”œā”€ā”€ Dockerfile         # Docker configuration
ā”œā”€ā”€ easy_test.py       # Simple test script
└── README.md          # This file

How It Works

  1. Geocoding: Converts city names to coordinates using Open-Meteo Geocoding API

  2. Weather Data: Fetches current weather data using Open-Meteo Weather API

  3. MCP Protocol: Exposes weather data through the Model Context Protocol

API Credits

This server uses the Open-Meteo API which is free and requires no API key.

Docker Hub

Pre-built images are available on Docker Hub:

  • Latest: 125478963/weather-mcp:latest

  • Version 1: 125478963/weather-mcp:v1

View on Docker Hub

Troubleshooting

Server not responding?

Check if the container is running:

docker ps | grep weather-mcp

View logs:

docker logs <container-id>

Port already in use?

Use a different port:

docker run -d -p 8080:8000 125478963/weather-mcp:latest

License

MIT License - feel free to use and modify as needed.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For issues and questions, please open an issue on GitHub.


Made with ā¤ļø using the Model Context Protocol

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides tools to retrieve current weather conditions and daily forecasts for cities worldwide using the Open-Meteo API. This Python-based server enables MCP-compatible clients to access real-time meteorological data through a standardized interface.
    2
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    Provides real-time weather information for cities worldwide using the OpenWeatherMap API, accessible through natural language queries via the MCP protocol.
    1
    -
  • A
    license
    A
    quality
    B
    maintenance
    MCP server that provides current weather for any city using Open-Meteo APIs. It exposes a single tool 'get_weather' returning temperature, humidity, wind, and other weather data.
    1
    11 npm
    MIT