Skip to main content
Glama
Weather MCP Server
by atan2016

Weather MCP Server

An MCP server that exposes US weather data from the National Weather Service (NWS) API. Built with FastMCP and httpx.

Requirements

  • Python 3.13+

  • uv (recommended) or another package manager

Related MCP server: Weather MCP Server

Setup

uv sync

Or with pip:

python -m venv .venv
source .venv/bin/activate
pip install -e .

Run the server

The server uses stdio transport (standard for local MCP clients):

uv run weather.py

Or:

python weather.py

Tools

Tool

Arguments

Description

get_alerts

state (two-letter US state code, e.g. CA, NY)

Active weather alerts for that state

get_forecast

latitude, longitude

Forecast for the next 5 periods at that location

Both tools call https://api.weather.gov and return human-readable text.

Use with Cursor / Claude Desktop

Add the server to your MCP client config. Example for Claude Desktop / Cursor:

{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/weather", "run", "weather.py"]
    }
  }
}

Replace /absolute/path/to/weather with this project’s path. You can also point command at your Python interpreter and pass weather.py as the only arg.

Testing

Call the tools directly (no MCP client):

python test_direct.py

Other scripts in the repo exercise MCP stdio / JSON-RPC flows (test_mcp.py, test_mcp_simple.py, test_mcp_proper.py, test_mcp_integration.py, test_direct_io.py).

Project layout

weather.py   # FastMCP server and NWS tools
main.py      # Placeholder entrypoint
pyproject.toml

Notes

  • Data is US-only (NWS coverage).

  • Logs go to stderr so they do not interfere with stdio MCP messages.

  • Forecasts are limited to the next 5 forecast periods.

Available Tools

2 tools
get_alertsA

Get weather alerts for a US state.

Args: state: Two-letter US state code (e.g. CA, NY)

Inputs: state (required). Returns: result

get_forecastC

Get weather forecast for a location.

Args: latitude: Latitude of the location longitude: Longitude of the location

Inputs: latitude (required), longitude (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools, get_alerts and get_forecast, serve clearly distinct purposes: one for alerts by state, the other for forecast by coordinates. There is no overlap or ambiguity.

    Naming Consistency5/5

    Both tools follow the same `get_` prefix with a noun, forming a consistent and predictable verb_noun pattern.

    Tool Count3/5

    With only two tools, the server feels somewhat thin for a weather domain, but the selection is focused and each tool serves a meaningful purpose. It is on the borderline of being too few.

    Completeness4/5

    The server covers alerts and forecasts, two common weather needs, but lacks current conditions or other weather data. This is a minor gap, as the core functionality is present.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers