nandarizkika/mcp-weather-server
If you are the rightful owner of mcp-weather-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MCP Weather Server provides weather information and forecasts using the OpenWeatherMap API.
get_weather
Get current weather conditions for a specified location.
get_weather_forecast
Get a 5-day weather forecast for a specified location.
MCP Weather Server
A Model Context Protocol (MCP) server that provides weather information and forecasts using the OpenWeatherMap API.
Features
- š¤ļø Get current weather conditions for any city
- š Get 5-day weather forecasts
- š”ļø Temperature, humidity, wind speed, and atmospheric pressure
- āļø Weather descriptions and conditions
- š Works with cities worldwide
Tools Available
get_weather
Get current weather conditions for a specified location.
Parameters:
location
(required): City name (e.g., "London", "Jakarta", "New York")
Example: "What's the weather in Jakarta?"
get_weather_forecast
Get a 5-day weather forecast for a specified location.
Parameters:
location
(required): City namedays
(optional): Number of days to forecast (1-5, default: 5)
Example: "What's the 5-day forecast for London?"
Prerequisites
- Python 3.7+
- OpenWeatherMap API key (free tier available)
- Claude Desktop application
Installation
-
Clone the repository:
git clone https://github.com/your-username/mcp-weather-server.git cd mcp-weather-server
-
Create a virtual environment:
python -m venv .venv .venv\Scripts\activate # On Windows # or source .venv/bin/activate # On macOS/Linux
-
Install dependencies:
pip install -r requirements.txt
-
Get an API key:
- Sign up at OpenWeatherMap
- Get your free API key
-
Set up environment variables:
- Copy
.env.example
to.env
- Add your API key to the
.env
file:OPENWEATHER_API_KEY=your_api_key_here
- Copy
Configuration
Claude Desktop Setup
-
Locate your Claude Desktop config file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
- Windows:
-
Add the weather server configuration:
{ "mcpServers": { "weather": { "command": "path/to/your/project/.venv/Scripts/python.exe", "args": ["path/to/your/project/minimal_weather_server.py"], "env": { "OPENWEATHER_API_KEY": "your_api_key_here" } } } }
-
Restart Claude Desktop
Testing
Test the server independently:
python test_minimal.py
Or test specific functionality:
python debug_server.py
Usage Examples
Once configured with Claude Desktop, you can ask natural language questions:
- "What's the weather in Jakarta?"
- "Get me the current weather for London"
- "What's the 5-day forecast for Tokyo?"
- "How's the weather in Singapore today?"
- "Show me the weather forecast for Bandung"
Project Structure
mcp-weather-server/
āāā minimal_weather_server.py # Main MCP server
āāā simple_weather_server.py # Alternative simple server
āāā weather_server.py # Original MCP library version
āāā test_minimal.py # Test script
āāā debug_server.py # Debug utilities
āāā requirements.txt # Python dependencies
āāā .env.example # Environment template
āāā .env # Environment variables (not in git)
āāā .gitignore # Git ignore rules
āāā README.md # This file
API Reference
This server uses the OpenWeatherMap API to fetch weather data.
Troubleshooting
Common Issues
-
"API key not found" error:
- Ensure your
.env
file containsOPENWEATHER_API_KEY=your_actual_key
- Verify the API key is valid and active
- Ensure your
-
"Server disconnected" in Claude:
- Check that file paths in the config are correct
- Ensure Python executable path is accurate
- Restart Claude Desktop after config changes
-
"Location not found" error:
- Try using different city name variations
- Include country name for ambiguous cities (e.g., "London, UK")
Debug Steps
-
Test the server independently:
python test_minimal.py
-
Check server logs in Claude Desktop
-
Verify API key permissions at OpenWeatherMap
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the file for details.
Acknowledgments
- OpenWeatherMap for providing the weather API
- Anthropic for Claude and the MCP specification
- MCP community for protocol documentation and examples
Support
If you encounter any issues or have questions:
- Check the troubleshooting section
- Review OpenWeatherMap API docs
- Open an issue on GitHub
Made with ā¤ļø for the MCP community