trackmcp
Back to directory
spowers42

mt_washington_obs_mcp

View on GitHub

An MCP server for information from the Mt Washington Weather Observatory in NH.

0 stars PythonOthers Updated Jun 9, 2026

Documentation

Mt Washington Observatory MCP Server

An MCP (Model Context Protocol) server that exposes real-time weather data from the Mt Washington Observatory as resources, built with FastMCP.

Data Sources

EndpointContents
`/uploads/json/weather.JSON`Real-time summit conditions (temp, wind, gusts, direction, METAR)
`/uploads/json/outlook.JSON`Full forecast package (summit/valley outlook, 24h statistics, almanac)
`/uploads/pdf/forms/{year}/{month:02d}.pdf`F6 monthly PDF forms (2005–present)

Quickstart

Prerequisites

  • Python 3.14+
  • uv

Install

bash
git clone 
cd mt_washington_obs_mcp
uv sync

Run

bash
uv run mtw-obs-mcp

Or equivalently:

bash
uv run python -m mt_washington_mcp

The server starts on stdio transport (standard for MCP). Connect it to an MCP client like Claude Desktop or opencode.

Resources

All data is available as MCP resources:

URIReturnsDescription
`weather://current`JSONCurrent summit temperature, wind, gusts, direction, METAR
`weather://outlook/current`JSONFull outlook metadata (excludes sub-sections with dedicated URIs)
`weather://outlook/summit`JSONHigher Summits Forecast with 4-period discussion
`weather://outlook/valley`JSONValley Forecast with 4-period discussion
`weather://outlook/statistics`JSONPast 24h: max/min temp, peak gust, precip, snowfall
`weather://outlook/almanac`JSONRecords, monthly averages, sunrise/sunset
`f6://current`PDF (bytes)Current month's F6 form
`f6://{year}/{month}`PDF (bytes)F6 form for a specific year/month

Tools

ToolDescription
`extract_f6_csv(year?, month?)`Extract F6 PDF daily data table as CSV
`list_f6_forms()`List all available year/month combinations as CSV

Development

Tests

bash
uv run pytest

All tests use fixture snapshots — no network calls.

Lint & typecheck

bash
uv run ruff check .
uv run mypy src/mt_washington_mcp/

Or use the `Taskfile.yml`:

bash
task check    # test + lint + typecheck
task test
task lint
task typecheck

Project structure

code
mt_washington_obs_mcp/
├── src/mt_washington_mcp/
│   ├── client.py      # Async httpx WeatherClient
│   ├── f6.py          # F6 PDF table extraction
│   ├── models.py      # Pydantic models with validators
│   ├── server.py      # FastMCP server + resources + tools
│   ├── __init__.py    # Entry point
│   └── __main__.py    # python -m support
├── tests/
│   ├── test_client.py # Client tests with httpx.MockTransport
│   ├── test_f6.py     # F6 PDF extraction tests
│   ├── test_models.py # Model parsing and validation tests
│   ├── test_server.py # Resource output format tests
│   └── fixtures/      # Saved API snapshots
├── .github/workflows/
│   └── ci.yml         # GitHub Actions CI
├── pyproject.toml
└── Taskfile.yml

Frequently asked questions

What is mt_washington_obs_mcp?

mt_washington_obs_mcp is An MCP server for information from the Mt Washington Weather Observatory in NH.

How do I install mt_washington_obs_mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is mt_washington_obs_mcp open source?

Yes — it is hosted on GitHub at https://github.com/spowers42/mt_washington_obs_mcp.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP