A Model Context Protocol (MCP) server that provides weather information using the National Weather Service API. This server offers weather alerts, forecasts, and location management features for MCP-compatible clients.
- π¦οΈ Weather Alerts: Get active weather alerts for any US state
- π Weather Forecasts: Get 5-day weather forecasts for any US location
- β Favorite Locations: Save and manage your favorite weather locations
- π Search History: Track your weather queries
- π Memory Persistence: Automatically saves your preferences and history
- Python 3.14 or higher
- Internet connection (for API calls to National Weather Service)
-
Clone the repository:
git clone https://github.com/yourusername/pyweathermcp.git cd pyweathermcp -
Install dependencies using uv:
uv sync
-
Clone the repository:
git clone https://github.com/yourusername/pyweathermcp.git cd pyweathermcp -
Create a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies:
pip install -e .
To run the weather MCP server:
python weather.pyThe server will start and listen for MCP protocol messages via stdio.
Get active weather alerts for a US state.
Parameters:
state(string): Two-letter US state code (e.g., "CA", "NY", "TX")
Example:
get_alerts("CA")Get a 5-day weather forecast for a specific location.
Parameters:
latitude(float): Latitude coordinatelongitude(float): Longitude coordinatelocation_name(string, optional): Human-readable name for the location
Example:
get_forecast(37.7749, -122.4194, "San Francisco, CA")Save a location to your favorites for quick access.
Parameters:
name(string): Name of the locationlatitude(float): Latitude coordinatelongitude(float): Longitude coordinate
Example:
save_favorite("Home", 40.7128, -74.0060)Retrieve all saved favorite locations.
Example:
get_favorites()View your recent weather searches.
Parameters:
limit(int, optional): Number of recent searches to show (default: 10)
Example:
get_history(5)Clear all search history while keeping favorites.
Example:
clear_history()Get information about the weather server and its capabilities.
Resource URI: weather://info
Get usage statistics including search count and favorite locations.
Resource URI: weather://stats
A template prompt for quick weather checks using your favorite locations.
Prompt: quick_weather_prompt
The server automatically creates and maintains a weather_memory.json file to store:
- Search history
- Favorite locations
- Usage statistics
This file is created automatically on first use and is excluded from version control.
This server uses the National Weather Service API (https://api.weather.gov), which:
- Provides free weather data for the United States
- Requires no API key or authentication
- Has rate limits (please be respectful)
- Covers all US states and territories
The server includes robust error handling:
- Network timeouts (30 seconds)
- Invalid coordinates or state codes
- API service unavailability
- Graceful fallbacks for missing data
pyweathermcp/
βββ weather.py # Main MCP server implementation
βββ main.py # Simple entry point
βββ test_imports.py # Import testing utility
βββ pyproject.toml # Project configuration and dependencies
βββ weather_memory.json # User data storage (auto-generated)
βββ .gitignore # Git ignore rules
βββ README.md # This file
httpx>=0.28.1: Modern HTTP client for API requestsmcp>=1.18.0: Model Context Protocol server framework
To verify all dependencies are properly installed:
python test_imports.py- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Include error messages and steps to reproduce
- Initial release
- Weather alerts and forecasts
- Favorite locations management
- Search history tracking
- Memory persistence
Note: This server is designed to work with MCP-compatible clients. Make sure your client supports the MCP protocol for the best experience.