Weather MCP Server
A Model Context Protocol (MCP) server that provides weather information and alerts from the National Weather Service (NWS).
Features
get_alerts: Retrieve active weather alerts for a US state
get_forecast: Get weather forecasts for a specific location (latitude/longitude)
Prerequisites
Python 3.10 or higher
Docker and Docker Compose (for containerized deployment)
Installation
Local Setup
Docker Setup
Configuration
Claude Desktop Integration
To use this server with Claude Desktop, add the following to ~/.config/Claude/claude_desktop_config.json (Linux/macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Option 1: Local Installation
Option 2: Docker Container
Development
Running Tests
Code Formatting and Linting
Project Structure
API Reference
get_alerts(state: str) -> str
Get active weather alerts for a US state.
Parameters:
state: Two-letter US state code (e.g., CA, NY, TX)
Returns: Formatted string containing active weather alerts or a message if none found.
get_forecast(latitude: float, longitude: float) -> str
Get weather forecast for a specific location.
Parameters:
latitude: Location latitude (up to 4 decimal places recommended)longitude: Location longitude (up to 4 decimal places recommended)
Returns: Formatted string with the next 5 forecast periods including temperature, wind, and conditions.
Troubleshooting
Server won't start
Check Python version:
python --version(requires 3.10+)Ensure dependencies are installed:
pip install -e .Check logs for detailed error messages
Docker issues
Rebuild image:
docker-compose build --no-cacheView logs:
docker-compose logs weather-mcpEnsure Docker daemon is running
Claude Desktop not detecting server
Verify the path in
claude_desktop_config.jsonRestart Claude Desktop after configuration changes
Check the MCP server settings in Claude Desktop
Logging
The server logs to stderr to avoid interfering with the MCP protocol's use of stdout. Logs are automatically sent to stderr and include timestamps and severity levels.
License
MIT License - see LICENSE file for details
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For issues, questions, or suggestions, please open an issue on GitHub.