OpenWeatherMap MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OpenWeatherMap MCP Serverwhat's the weather forecast for Paris this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OpenWeatherMap MCP Server
A Model Context Protocol (MCP) server that provides weather data using the OpenWeatherMap API. This example demonstrates how to build an MCP server with multiple tools for current weather, forecasts, and air pollution data.
Features
Current Weather: Get real-time weather conditions for any city
5-Day Forecast: Retrieve weather forecasts with 3-hour intervals
Air Pollution: Access air quality data including pollutant concentrations
Related MCP server: Weather MCP Server
Prerequisites
Python 3.12+
OpenWeatherMap API key (free at openweathermap.org)
Installation
Clone this repository:
git clone git@github.com:mattiaperi/openweathermap-mcp-server.git
cd openweathermap-mcp-serverCreate a virtual environment:
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activateInstall dependencies:
pip3 install -r requirements.txtSet your OpenWeatherMap API key:
export OPENWEATHER_API_KEY="your_api_key_here"Usage
Running the Server
python server.pyTesting with the Client
python test_mcp_client.py Milan
# or
python test_mcp_client.py # Will prompt for city nameUsing with Amazon Q
Create
.amazonq/mcp.jsonin your project:
{
"mcpServers": {
"weather": {
"command": ".venv/bin/python",
"args": ["server.py"],
"env": {}
}
}
}or better (edit and accordingly):
{
"mcpServers": {
"openweather": {
"command": "uv",
"args": [
"--directory",
"<PATH_TO_REPO>/openweathermap-mcp-server",
"run",
"server.py"
],
"disabled": false,
"env": {
"OPENWEATHER_API_KEY": "<OPENWEATHER_API_KEY>"
},
"autoApprove": [
"get_current_weather",
"get_weather_forecast",
"get_air_pollution"
]
}
}
}Restart Amazon Q and ask: "What's the weather like in Tokyo?"
Available Tools
get_current_weather(city: str)
Returns current weather conditions including temperature, humidity, pressure, and weather description.
get_weather_forecast(city: str)
Returns a 5-day weather forecast with data points every 3 hours.
get_air_pollution(city: str)
Returns air quality data including AQI and pollutant concentrations (CO, NO, NO2, O3, SO2, PM2.5, PM10, NH3).
API Response Format
All tools return the complete OpenWeatherMap API response, allowing LLMs to extract relevant information based on context. Error responses include an error field with descriptive messages.
Development
Project Structure
├── server.py # MCP server implementation
├── requirements.txt # Python dependencies
└── README.md # This fileAdding New Tools
Define a function with type hints
Add the
@mcp.tooldecoratorInclude a descriptive docstring
Handle errors gracefully
Example:
@mcp.tool
def get_uv_index(city: str) -> dict:
"""Get UV index data for a city."""
# Implementation hereSecurity Notes
Never commit API keys to version control
Use environment variables for sensitive data
Consider rate limiting for production use
Validate input parameters
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
License
MIT License - see LICENSE file for details
Resources
This server cannot be deployed
Maintenance
Related MCP Connectors
Free, keyless real-time weather and 7-day forecasts for any city worldwide.
Free, keyless real-time air quality (US AQI plus PM2.5, PM10, ozone, NO2, SO2, CO) for any city.
Global weather via Open-Meteo: forecast, ERA5 archive, marine, air quality, geocoding, elevation.
Provide real-time and forecast weather information for locations in the United States using natura…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides access to real-time weather data, 5-day forecasts, air quality information, and weather comparisons across multiple cities using the free OpenWeatherMap API.MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying real-time weather and 5-day forecasts for any city using the OpenWeatherMap API.5 npm4MIT
- FlicenseNot gradedqualityDmaintenanceProvides weather data, forecasts, air quality, and location services via OpenWeatherMap API integration.13-
- AlicenseNot gradedqualityDmaintenanceProvides real-time and historical weather data for any city worldwide, including forecasts, air quality, and marine conditions, using the free Open-Meteo API.5 npmMIT