Weather MCP Server
A Model Context Protocol (MCP) server that provides weather information for the United States using the National Weather Service (NWS) API. Built with FastMCP.
Features
This server exposes tools that allow AI assistants to fetch real-time weather data:
get_alerts(state: str): Get active weather alerts for a given US state (using the 2-letter state code like CA, NY, TX). Returns details on the event, severity, description, and safety instructions.get_forecast(latitude: float, longitude: float): Get the detailed weather forecast for a specific location (using latitude and longitude). Returns the forecast for the next 5 periods (e.g., this afternoon, tonight, tomorrow).
Prerequisites
- Python 3.10 or higher
uvpackage manager
Installation & Setup
This project uses uv for dependency management. To set it up:
- Clone the repository
- Install dependencies (this will create a virtual environment if you run it using uv):
uv sync
Usage
You can run the MCP server manually via standard input/output, which is how MCP clients will interact with it:
uv run weather.py
Integrating with Claude Desktop
To use this server with Claude Desktop, you would add it to your claude_desktop_config.json:
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"path/to/your/mcp-server",
"run",
"weather.py"
]
}
}
}
Integrating with a custom MCP Client
If you have a custom Python MCP Client, you can connect to it like this:
from mcp import StdioServerParameters
server_params = StdioServerParameters(
command="uv",
args=["--directory", "path/to/mcp-server", "run", "weather.py"],
env=None
)
# Pass server_params to your MCP client
APIs Used
- National Weather Service API (No API key required)