This is an MCP Server that uses OpenWeatherMap's API to retrieve weather data. It can be hosted on MCP.so.
Features
- Current weather data for any location
- Weather forecast (up to 5 days)
- Support for metric and imperial units
- Compatible with both stdio and REST transport modes
- Docker containerization for easy deployment
- Compatible with MCP.so hosting requirements
Prerequisites
- Node.js v18+
- OpenWeatherMap API key (get one for free at OpenWeatherMap)
Getting Started
Local Development
-
Clone this repository
git clone https://github.com/yourusername/weather-mcp-server.git cd weather-mcp-server -
Install dependencies
npm install -
Build the TypeScript code
npm run build -
Run the server in stdio mode (for local testing)
WEATHER_API_KEY=your_api_key_here npm start
Running in REST mode
WEATHER_API_KEY=your_api_key_here mode=rest port=9593 endpoint=/rest npm start
Docker
-
Build the Docker image
docker build -t mcp/weather-mcp-server . -
Run the container
docker run -i --rm -e WEATHER_API_KEY=your_api_key_here mcp/weather-mcp-server
Usage
Available Tools
current_weather
Gets the current weather data for a specific location.
Parameters:
location(required): The city name or city name + country code (e.g., "London", "Paris,FR")units(optional): Units of measurement. Options: "metric" (Celsius) or "imperial" (Fahrenheit). Default: "metric"
Example Request:
{
"params": {
"name": "current_weather",
"arguments": {
"location": "Tokyo,JP",
"units": "metric"
}
}
}
weather_forecast
Gets a weather forecast for a specific location.
Parameters:
location(required): The city name or city name + country code (e.g., "London", "Paris,FR")units(optional): Units of measurement. Options: "metric" (Celsius) or "imperial" (Fahrenheit). Default: "metric"days(optional): Number of days for the forecast. Maximum is 5. Default: 5
Example Request:
{
"params": {
"name": "weather_forecast",
"arguments": {
"location": "New York,US",
"units": "imperial",
"days": 3
}
}
}
Hosting on MCP.so
To host this server on MCP.so:
- Ensure your repository is public on GitHub with an MIT, Apache, or similar license
- Submit your MCP Server to MCP.so for review
- Once approved, your server will be available on the MCP Playground
License
MIT
Contact
For questions or support, please open an issue on GitHub.