A Model Context Protocol (MCP) server that provides real-time weather information for any city using the Open-Meteo API.
- 🌍 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
 
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:latestThe server will be available at: http://localhost:8000/mcp
- Clone this repository:
 
git clone https://github.com/rajeevchandra/weather-mcp-docker.git
cd weather-mcp-docker- Build the Docker image:
 
docker build -t weather-mcp .- Run the container:
 
docker run -d -p 8000:8000 weather-mcpThis MCP server exposes a weather tool that can be used by MCP clients like Claude Desktop.
weather(city: str)
- Returns current temperature (°C) and wind speed (km/h) for the specified city
 - Default city: Philadelphia
 
{
  "city": "London",
  "latitude": 51.5074,
  "longitude": -0.1278,
  "temperature_c": 15.2,
  "windspeed_kmh": 12.5
}The server runs on:
- Host: 
0.0.0.0(accessible from outside the container) - Port: 
8000 - Endpoint: 
/mcp 
Add this to your Claude Desktop MCP settings:
{
  "mcpServers": {
    "weather": {
      "url": "http://localhost:8000/mcp"
    }
  }
}- Python 3.11+
 - Docker (optional, for containerization)
 
- Install dependencies:
 
pip install -r requirements.txt- Run the server:
 
python server.pyRun the complete test script to verify the server is working:
python complete_test.pyThis will:
- Initialize a session with the MCP server
 - List available tools
 - Test the weather tool with multiple cities (London, Paris, Tokyo)
 - 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/mcpweather-mcp/
├── server.py           # Main MCP server implementation
├── requirements.txt    # Python dependencies
├── Dockerfile         # Docker configuration
├── easy_test.py       # Simple test script
└── README.md          # This file
- Geocoding: Converts city names to coordinates using Open-Meteo Geocoding API
 - Weather Data: Fetches current weather data using Open-Meteo Weather API
 - MCP Protocol: Exposes weather data through the Model Context Protocol
 
This server uses the Open-Meteo API which is free and requires no API key.
Pre-built images are available on Docker Hub:
- Latest: 
125478963/weather-mcp:latest - Version 1: 
125478963/weather-mcp:v1 
Check if the container is running:
docker ps | grep weather-mcpView logs:
docker logs <container-id>Use a different port:
docker run -d -p 8080:8000 125478963/weather-mcp:latestMIT License - feel free to use and modify as needed.
Contributions are welcome! Please feel free to submit a Pull Request.
For issues and questions, please open an issue on GitHub.
Made with ❤️ using the Model Context Protocol