Weather MCP Server
Provides weather information and alerts from the National Weather Service, including active weather alerts for US states and location-based forecasts using latitude/longitude coordinates.
README
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
# Clone the repository
git clone https://github.com/yourusername/weather-mcp.git
cd weather-mcp
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -e .
# Run the server
weather-mcp
Docker Setup
# Build and run with Docker Compose
docker-compose up -d
# View logs
docker-compose logs -f weather-mcp
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
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"/path/to/weather-mcp",
"run",
"-m",
"weather.main"
]
}
}
}
Option 2: Docker Container
{
"mcpServers": {
"weather": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"weather-mcp-server"
]
}
}
}
Development
Running Tests
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run tests with coverage
pytest --cov=src/weather
Code Formatting and Linting
# Format code with Black
black src tests
# Lint with Ruff
ruff check src tests
Project Structure
weather-mcp/
├── src/weather/ # Main package
│ ├── __init__.py
│ ├── main.py # Entry point
│ └── server.py # Server implementation
├── config/ # Configuration files
│ ├── __init__.py
│ └── settings.py
├── tests/ # Test suite
├── Dockerfile # Docker image definition
├── docker-compose.yml # Docker Compose configuration
├── pyproject.toml # Project metadata and dependencies
├── README.md # This file
└── DOCKER_SETUP.md # Docker setup guide
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-cache - View logs:
docker-compose logs weather-mcp - Ensure Docker daemon is running
Claude Desktop not detecting server
- Verify the path in
claude_desktop_config.json - Restart 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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.