- Explore MCP Servers
- mcp-weather-alert-tool
Mcp Weather Alert Tool
What is Mcp Weather Alert Tool
The mcp-weather-alert-tool is a Python MCP server that retrieves real-time weather alerts for U.S. states using the api.weather.gov API. It is built with FastMCP and integrated into Claude Desktop, allowing for easy access to weather information.
Use cases
Use cases for the mcp-weather-alert-tool include providing real-time weather alerts to local government agencies, integrating with mobile applications for user notifications, and assisting AI assistants in delivering weather-related information to users.
How to use
To use the mcp-weather-alert-tool, you can interact with the MCP server by specifying a U.S. state abbreviation (e.g., ‘CA’ for California) to fetch current weather alerts. The tool can be tested interactively via the MCP Inspector.
Key features
Key features include the ability to fetch structured weather alert information such as event type, severity, description, and instructions. It utilizes the FastMCP framework and integrates seamlessly with Claude Desktop for enhanced user interaction.
Where to use
The mcp-weather-alert-tool is applicable in various fields including emergency management, weather forecasting, and public safety, where timely weather alerts are crucial for decision-making.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Overview
What is Mcp Weather Alert Tool
The mcp-weather-alert-tool is a Python MCP server that retrieves real-time weather alerts for U.S. states using the api.weather.gov API. It is built with FastMCP and integrated into Claude Desktop, allowing for easy access to weather information.
Use cases
Use cases for the mcp-weather-alert-tool include providing real-time weather alerts to local government agencies, integrating with mobile applications for user notifications, and assisting AI assistants in delivering weather-related information to users.
How to use
To use the mcp-weather-alert-tool, you can interact with the MCP server by specifying a U.S. state abbreviation (e.g., ‘CA’ for California) to fetch current weather alerts. The tool can be tested interactively via the MCP Inspector.
Key features
Key features include the ability to fetch structured weather alert information such as event type, severity, description, and instructions. It utilizes the FastMCP framework and integrates seamlessly with Claude Desktop for enhanced user interaction.
Where to use
The mcp-weather-alert-tool is applicable in various fields including emergency management, weather forecasting, and public safety, where timely weather alerts are crucial for decision-making.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Content
🌩️ MCP Weather Alerts Tool using FastMCP + Claude Desktop
This project demonstrates how to build an MCP (Model Context Protocol) tool using the official FastMCP
Python SDK. It integrates with Claude Desktop to enable an AI assistant to retrieve weather alerts by U.S. state via the api.weather.gov
API.
🚀 What This Project Does
- ✅ Implements a custom MCP server with
FastMCP
- 🌐 Uses
httpx
to call real-time weather alerts from api.weather.gov - 📦 Returns structured information: event, severity, description, and instructions
- 🧠 Integrates with Claude Desktop
- 🌈 Can be tested interactively via MCP Inspector
🧱 Tech Stack
Tool/Library | Purpose |
---|---|
mcp[cli] |
MCP server toolkit with CLI tools |
httpx |
Async HTTP client |
uv |
Modern Python package/dependency manager |
Claude Desktop | AI interface for LLM + MCP |
MCP Inspector | UI to debug MCP endpoints |
📁 Project Structure
mcpcrashcourse/ ├── server/ │ └── weather.py # MCP server logic (get_alerts) ├── pyproject.toml # Project metadata + dependencies ├── uv.lock # Locked versions (auto-generated by uv) └── README.md # You're reading it!
🧠 Tool Logic: get_alerts
@mcp.tool()
async def get_alerts(state: str) -> list[dict]:
# Fetch weather alerts for a given U.S. state (e.g., 'CA')
url = "https://api.weather.gov/alerts/active"
params = {"area": state.upper()}
async with httpx.AsyncClient() as client:
response = await client.get(url, params=params)
data = response.json()
return [
{
"event": alert.get("event"),
"severity": alert.get("severity"),
"description": alert.get("description"),
"instruction": alert.get("instruction"),
}
for alert in data.get("features", [])
if alert.get("properties")
]
🛠️ Installation & Setup
1. Create & Configure Project
pipx install uv # install uv if you haven't
uv init mcpcrashcourse # start new project
cd mcpcrashcourse
uv add "mcp[cli]" httpx # add dependencies
2. Add Your Tool
Place your weather.py
in the server/
folder, containing the logic for get_alerts
.
🧪 Run & Inspect
Launch with MCP Inspector
uv run mcp dev server/weather.py
Then open http://localhost:6757 to:
- View your
get_alerts
tool - Try calling it with input like
"TX"
🤖 Claude Desktop Integration
- Update your
claude_desktop_config.json
:
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"<your-project-directory>/server/weather.py"
]
}
}
}
- Restart Claude Desktop
- Prompt:
“What are the weather alerts for Texas?”
Claude will call your MCP tool and display structured output.
💡 What is MCP?
The Model Context Protocol standardizes how apps send context (data, tools, prompts) to LLMs. It separates the “context provider” from the LLM layer.
Three core primitives:
Type | Use Case | Analogy |
---|---|---|
Tools | Execute functions | POST endpoint |
Resources | Provide static data | GET endpoint |
Prompts | Reusable interactions | LLM templates |
📎 Credits
- FastMCP Python SDK
- api.weather.gov
- Claude Desktop
- Project structure based on examples from the official MCP docs
📄 License
This project is open-sourced under the MIT License.
Dev Tools Supporting MCP
The following are the main code editors that support the Model Context Protocol. Click the link to visit the official website for more information.