Mt Washington Observatory Weather
Weather data from the Mt Washington weather observatory in New Hampshire.
Install
Install and configure the MCP from https://github.com/spowers42/mt_washington_obs_mcp now. Follow the repository's installation instructions, ask me for anything you can't complete yourself, and verify its tools load.README
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
| Endpoint | Contents |
|---|---|
/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
git clone <repo>
cd mt_washington_obs_mcp
uv sync
Run
uv run mtw-obs-mcp
Or equivalently:
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:
| URI | Returns | Description |
|---|---|---|
weather://current | JSON | Current summit temperature, wind, gusts, direction, METAR |
weather://outlook/current | JSON | Full outlook metadata (excludes sub-sections with dedicated URIs) |
weather://outlook/summit | JSON | Higher Summits Forecast with 4-period discussion |
weather://outlook/valley | JSON | Valley Forecast with 4-period discussion |
weather://outlook/statistics | JSON | Past 24h: max/min temp, peak gust, precip, snowfall |
weather://outlook/almanac | JSON | Records, 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
| Tool | Description |
|---|---|
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
uv run pytest
All tests use fixture snapshots — no network calls.
Lint & typecheck
uv run ruff check .
uv run mypy src/mt_washington_mcp/
Or use the Taskfile.yml:
task check # test + lint + typecheck
task test
task lint
task typecheck
Project structure
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
Related servers
Everythingmodelcontextprotocol91KReference / test server with prompts, resources, and toolsFetchmodelcontextprotocol91KWeb content fetching and conversion for efficient LLM usageFilesystemmodelcontextprotocol91KSecure file operations with configurable access controlsGitmodelcontextprotocol91KTools to read, search, and manipulate Git repositories
