find_snotel_stationsLABSCO 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— bystate, or bylatitude/longitudewith aradius_milesdefaulting to 50get_station_info— full metadata for one station by its triplet, in the form713:CO:SNTLget_station_data— raw JSON for a date range, selecting elements and a duration of DAILY, HOURLY or MONTHLYget_recent_conditions— the latest readings, over adayswindow defaulting to 30analyze_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:
SNWDsnow depth,WTEQsnow water equivalent,TOBSobserved air temperature,PRECprecipitation increment,TMAXandTMIN
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 (version 1.0.0). 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 — git clone https://github.com/jymmyt/snotel-mcp-server.git
USE CASES
Checking conditions before a trip
Find the stations within range of your destination and read the latest snow depth, water equivalent and temperature.
Comparing this season with last
Analyse the same window across two years at one station and compare peak depth and total new snow.
Tracking a storm's accumulation
Pull the daily record for the storm period and read how much fell and when.
Finding stations across a whole state
List every station in the state, then look up elevation and metadata for the ones at the elevations you care about.
Getting hourly resolution for one day
Request the hourly duration for a specific date to see temperature swings a daily record would flatten.
5 tools
Listed in project docs. Your client may show a different list.
get_station_infoget_station_dataget_recent_conditionsanalyze_snowpack_trendsBEFORE YOU INSTALL
What to know first
Tools you get
5 tools named in the project's documentation.
Requires
- python on PATH
- Python 3.9+
- uv
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/jymmyt/snotel-mcp-server.git
cd snotel-mcp-server
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
python -m snotel_mcp_serverMCP Clients
Claude Desktop
{
"mcpServers": {
"snotel": {
"command": "python",
"args": [
"-m",
"snotel_mcp_server"
],
"cwd": "<YOUR_PATH_TO_SNOTEL_MCP_SERVER>"
}
}
}<YOUR_PATH_TO_SNOTEL_MCP_SERVER> is the full path of your clone. The package is installed into the clone's .venv, so if python on your PATH is not that environment, set command to <YOUR_PATH_TO_SNOTEL_MCP_SERVER>/.venv/bin/python.