MCP Weather Free
A Model Context Protocol (MCP) server that provides weather data using the free Open-Meteo API. No API key required!
Features
- Current Weather: Get real-time weather conditions including temperature, humidity, wind speed, and weather descriptions
- Hourly Forecast: 24-hour weather forecast with hourly updates
- Daily Forecast: 7-day weather forecast with daily summaries
- City Search: Look up weather by city name with automatic geocoding
- Multiple Units: Support for different temperature (Celsius/Fahrenheit), wind speed (km/h, m/s, mph, knots), and precipitation (mm, inch) units
Installation
Using uvx (recommended)
uvx --from git+https://github.com/microagents/mcp-servers.git#subdirectory=mcp-weather-free mcp-weather-free
Using pip
pip install git+https://github.com/microagents/mcp-servers.git#subdirectory=mcp-weather-free
Configuration
Add the following to your MCP client configuration:
For Claude Desktop
Update your claude_desktop_config.json:
{
"mcpServers": {
"weather": {
"command": "uvx",
"args": ["--from", "git+https://github.com/microagents/mcp-servers.git#subdirectory=mcp-weather-free", "mcp-weather-free"]
}
}
}
For other MCP clients
{
"mcpServers": {
"weather": {
"command": "python",
"args": ["-m", "mcp_weather_free"]
}
}
}
Available Tools
get_weather
Get weather data for specific coordinates.
Parameters:
latitude(float, required): Latitude of the locationlongitude(float, required): Longitude of the locationlocation_name(string, optional): Display name for the locationtemperature_unit(string, optional): "celsius" (default) or "fahrenheit"wind_speed_unit(string, optional): "kmh" (default), "ms", "mph", or "kn"precipitation_unit(string, optional): "mm" (default) or "inch"
Example:
Get weather for latitude: 40.7128, longitude: -74.0060
get_weather_by_city
Get weather data by city name.
Parameters:
city(string, required): Name of the citycountry_code(string, optional): 2-letter country code (e.g., "US", "GB")temperature_unit(string, optional): "celsius" (default) or "fahrenheit"wind_speed_unit(string, optional): "kmh" (default), "ms", "mph", or "kn"precipitation_unit(string, optional): "mm" (default) or "inch"
Example:
Get weather for city: "New York"
Resources
The server also provides a resource endpoint:
weather://current/{latitude}/{longitude}- Get formatted current weather for a location
Response Format
Weather data includes:
- Location information: coordinates, timezone, elevation
- Current conditions: temperature, humidity, wind, weather description
- Hourly forecast: Next 24 hours of weather data
- Daily forecast: Next 7 days of weather summaries
License
This project is licensed under the MIT License.
Credits
Weather data provided by Open-Meteo - free weather API with no API key required.
