Labsco
MCP SERVER

SNOTEL MCP Server

by jymmyt

Query the USDA SNOTEL network by conversation — find stations near a point, pull snow depth and water equivalent, and get peak and storm statistics for a season.

Weather & Environmental Conditions
Summary
Analysis as a tool, not as an inference.

Handing a model a season of daily readings and asking for the peak invites arithmetic errors; computing peak depth, total new snow and snow-day counts server-side and returning the numbers does not. Radius search matters for the same practical reason — people know where they are going, not which station triplet covers it. Note that stations do have data gaps, so an empty range is often the record rather than a bug.

What it is

A FastMCP server over the USDA AWDB REST API, covering the SNOTEL network of over 800 automated stations across the western United States. It handles the discovery problem as well as the data problem: stations can be found by state or by radius around a coordinate, rather than needing their identifier up front.

What you get
  • `find_snotel_stations` — by `state`, or by `latitude`/`longitude` with a `radius_miles` defaulting to 50
  • `get_station_info` — full metadata for one station by its triplet, in the form `713:CO:SNTL`
  • `get_station_data` — raw JSON for a date range, selecting elements and a duration of DAILY, HOURLY or MONTHLY
  • `get_recent_conditions` — the latest readings, over a `days` window defaulting to 30
  • `analyze_snowpack_trends` — peak conditions, total new snow, snow-day counts and averages over a period, computed rather than left to the model
  • The measurement vocabulary: `SNWD` snow depth, `WTEQ` snow water equivalent, `TOBS` observed air temperature, `PREC` precipitation increment, `TMAX` and `TMIN`
Requirements

No API key — the AWDB REST API is public, and `AWDB_API_BASE` only exists to override the default endpoint, with `AWDB_TIMEOUT` defaulting to 30 seconds. Python 3.9+ and uv: clone, then `uv pip install -e .`, and run `python -m snotel_mcp_server` or the installed `snotel-mcp-server` over stdio. The project is `snotel-mcp-server` (1.0.0 in pyproject). `LOGLEVEL=INFO` shows the API requests and responses, which is the fastest way to debug an empty result. MIT licensed.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary