Skip to main content
Glama
laksh-krishna-sharma

Weather MCP Server

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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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