Weather MCP Server

Weather MCP Server

A Model Context Protocol (MCP) server that provides real-time weather alerts and forecasts from the US National Weather Service.

Category
Visit Server

README

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

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured