WeatherMCP
This project is an MCP server built as a hands-on exercise. It provides weather data and alerts from the US National Weather Service (NWS) via a simple API using the FastMCP framework.
Features
- Weather Alerts: Get active weather alerts for any US state.
- Forecast: Retrieve weather forecasts for a specific latitude and longitude.
Requirements
- Python 3.8+
- uv (for dependency management and running)
Installation
-
Install dependencies using uv:
uv pip install -r requirements.txtOr, if you use
pyproject.toml:uv pip install -r pyproject.toml -
(Optional) Create a virtual environment:
uv venv .venv source .venv/bin/activate
Running the MCP Server
To start the server using uv:
uv pip install -e . # if you want to install as editable, or just ensure dependencies are installed
uv python weather.py
The server will start and listen for MCP requests via stdio.
Available Tools
1. get_alerts(state: str)
- Description: Get active weather alerts for a US state.
- Argument:
state— Two-letter US state code (e.g.,CA,NY). - Returns: Formatted string of current alerts or a message if none are found.
2. get_forecast(latitude: float, longitude: float)
- Description: Get weather forecast for a specific location.
- Arguments:
latitude— Latitude of the location (float)longitude— Longitude of the location (float)
- Returns: Formatted string with the next 5 forecast periods.
Notes
- This project is for educational and hands-on purposes.
- Data is sourced from the National Weather Service API.
Feel free to extend or modify the project for your own experiments!
