Skip to main content
Glama

Weather MCP Project

A Model Context Protocol (MCP) server that provides real-time weather alerts and forecasts from the US National Weather Service. Built with modern Python practices, comprehensive testing, and production-ready deployment.

Tests Coverage Type Checking Code Quality Python

Features

  • Weather Alerts - Real-time alerts from the National Weather Service

  • Weather Forecasts - Detailed forecasts for any US location

  • Web Interface - Beautiful Streamlit UI for easy interaction

  • MCP Protocol - Standards-compliant Model Context Protocol server

  • Async/Await - High-performance asynchronous architecture

  • 100% Test Coverage - Comprehensive test suite with 53 tests

  • Type Safe - Full MyPy type checking compliance

  • Production Ready - Deployed and operational

Related MCP server: MCP Weather Server

Quick Start

Prerequisites

  • Python 3.13

1. Clone and Install

git clone <your-repo-url> cd weather-mcp-project pip install -r requirements.txt

2. Run the Web Interface

streamlit run ui.py

Open your browser to http://localhost:8501 and start exploring weather data!

3. Run the MCP Server

python -m weather_mcp.server

The MCP server will start on http://localhost:8000 with SSE transport.

Installation

Using pip

pip install -r requirements.txt

API Reference

Weather Alerts

Get active weather alerts for any US state:

await get_alerts(state: str) -> str

Parameters:

  • state (str): Two-letter US state code (e.g., "CA", "TX", "NY")

Returns:

  • Formatted string with active alerts or "No active alerts" message

Example:

alerts = await get_alerts("CA") print(alerts) # Output: Winter Storm Warning for Los Angeles County...

Weather Forecasts

Get detailed weather forecast for coordinates:

await get_forecast(latitude: float, longitude: float) -> str

Parameters:

  • latitude (float): Latitude coordinate

  • longitude (float): Longitude coordinate

Returns:

  • Formatted forecast string with 5-day outlook

Example:

forecast = await get_forecast(34.0522, -118.2437) # Los Angeles print(forecast) # Output: Today: Temperature: 75°F, Wind: 10 mph SW...

MCP Tools

The server exposes two MCP tools:

  1. get_alerts - Fetch weather alerts by state

  2. get_forecast - Fetch weather forecast by coordinates

Development

Project Structure

weather-mcp-project/ ├── weather_mcp/ # Core MCP server │ ├── __init__.py │ ├── server.py # FastMCP server │ ├── nws_api.py # National Weather Service API client │ └── tools.py # Weather processing tools ├── client/ # MCP client │ ├── __init__.py │ └── client.py # Client implementation ├── tests/ # Comprehensive test suite │ ├── conftest.py # Test configuration │ ├── test_*.py # Test modules │ └── run_tests.py # Test runner ├── ui.py # Streamlit web interface ├── requirements.txt # Dependencies ├── pyproject.toml # Project configuration └── README.md # This file

Code Quality

This project maintains high code quality standards:

  • 100% Test Coverage - Every line of code is tested

  • Type Checking - Full MyPy compliance

  • Linting - Ruff for code formatting and style

  • Standards - Follows Python best practices

Testing

Run with Coverage

python -m pytest --cov=weather_mcp --cov=client --cov-report=html --cov-report=term tests/

Test Coverage Report

After running tests with coverage, open htmlcov/index.html in your browser for a detailed coverage report.

Quality Checks

# Type checking mypy . # Linting and formatting ruff check ruff format
-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/laksh-krishna-sharma/Live-Weather-Alerts-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server