Skip to main content

SWATGenX

io.github.SWATGenX/swatgenxVersion 1.1.2

SWAT+ watershed models for any river in the lower 48 states, with groundwater and PFAS data

Status

Responds460 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 14:42 UTC
Latency
460 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 21:12 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://www.swatgenx.com/mcpResponds460 ms
No sign-in

Claude Code

claude mcp add --transport http swatgenx https://www.swatgenx.com/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: swatgenx
Remote MCP server URL: https://www.swatgenx.com/mcp

Cursor

{
  "mcpServers": {
    "swatgenx": {
      "url": "https://www.swatgenx.com/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"swatgenx","type":"http","url":"https://www.swatgenx.com/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

13 tools

Tools of SWATGenX
Read-only
Idempotent
Open world
download_modelGet a download link for a model the caller owns (authenticated). The returned download_url is a TOKEN link valid for 24 hours; fetching it redirects to a storage URL minted fresh per request with a much shorter life (~30 min), so the redirect target expires long before the download_url does. vpuid/level are optional: the server resolves them from site_no (build records also carry them first-class).NoNoYesNo
get_access_infoDescribe SWATGenX access: accounts by invitation (for a named research collaboration or a funded study), studies quoted for each watershed, and calibration on account credit; how to request access. With an API key, also report the caller's current access and its status.NoYesYesNo
get_docReturn one full SWATGenX documentation chapter as markdown, by chapter slug; 'overview' is the index and lists every chapter. Retired slugs are followed to their current chapter automatically.NoYesYesNo
get_engine_infoWhere the SWAT+ engine SWATGenX runs comes from (including its parallel/OpenMP build), and how to build it from source. Returns the public fork, the build guide with the exact toolchain, and whether building is needed at all (usually it is not — downloaded models run as-is). No authentication required.NoYesYesNo
get_model_calibrationReturn the published calibration for one example model: method, calibration NSE (daily + monthly), PBIAS, evals used, and window as {fit, scored}: the years the calibration was fitted to and the years its validation was scored on. Validation NSE is included only when the scored years lie outside the fitted years. calibration_status is calibrated_and_validated or calibrated_not_validated only where the model's page shows its calibration badge (calibration_advertised), and uncalibrated otherwise, including when no calibration of the model is published. Where the example model has a recorded calibration run, its numbers are returned with either status: they are that run's scores, and the model you download may not carry that calibration. Returns an error with code=model_not_found if no such model exists at all. site_no is the model's USGS gauge or HUC outlet id.NoYesYesNo
get_order_statusCheck a model build (authenticated): state (queued/running/complete/failed), stage, and timing. order_id is the id order_model returned for the build.NoYesYesNo
list_my_modelsList the caller's models (authenticated): `models`, the model workspaces the account holds (the dashboard's list: site_no, level, vpuid, status flags), and `orders`, the builds requested through the build queue, newest first. `limit` caps each list (default 10, max 50; unbounded listing used to blow the MCP result budget at ~50 builds). `active_only=True` returns only QUEUED/DISPATCHING/RUNNING builds. Each record carries first-class site_no/level/vpuid.NoYesYesNo
order_modelStart a real SWAT+ model build (authenticated; consumes the caller's fair-use quota). Takes either a USGS gauge id (usgs_station) or a 12-digit HUC12 outlet (huc12_outlet). Returns an order_id for checking the build's status. Typical build: 20 min - 2 h. The API key comes from the X-SWATGenX-Api-Key header on the MCP connection or the api_key argument.NoNoNoNo
query_groundwaterQuery SWATGenX's national groundwater inventory (well records and lithology logs harvested from state agencies across the contiguous U.S.; live totals at https://www.swatgenx.com/api/gw-wells/summary) near a point — the subsurface data used to parameterise MODFLOW. Returns the nearest wells with lithology-interval count and a richness_tier grading what each well EXPOSES: 0 = well record with no water level or yield (many carry no logged lithology), 1 = + hydraulics (static water level / yield / depth), 2 = + screened interval & yield (groundwater-model-ready). The tier is about attribute coverage, not log detail. Per-interval depths live in the full inventory DB (Zenodo), not this index. lat/lon in decimal degrees (EPSG:4326); radius_km up to ~50.NoYesYesNo
query_pfasQuery the SWATGenX PFAS monitoring inventory (agency monitoring stations + observations): only sources whose licence allows serving them, the same set as the PFAS data API; unaudited VLM packs are excluded. Filter by two-letter `state` (e.g. 'MI') and/or `analyte` (e.g. 'PFOS', 'PFOA'): with an analyte, only stations that have at least one observation of it are returned, each with its latest recorded value (media, n_samples, n_detect, max_value, latest_value, latest_date, detection band). Units follow the medium: water / groundwater / porewater values are ng/L; sediment, soil and tissue are mass-based (ug/kg-class), so values are comparable across stations only within one `media`. Each answer counts toward the account's monthly allowance of distinct stations (a station already returned this month does not count again) and 200 new stations a day; `metering` in the reply reports the account's count. For research/screening use; not a regulatory data source.NoYesYesNo
request_modelPreview what SWATGenX WOULD build for a CONUS catchment. Takes either a USGS gauge id (usgs_station) or a 12-digit HUC12 outlet (huc12_outlet). Read-only in v1: returns whether the catchment is buildable, whether a model already exists, and the build endpoint (order_endpoint) — it does NOT start a build (that needs an authenticated account at swatgenx.com).NoYesYesNo
search_docsSearch the SWATGenX I/O reference — model bundle layout, SWAT+ input files, PFAS fate-and-transport inputs, engine run modes and NetCDF output, MODFLOW-6 coupling, calibration artifacts, service limits. Returns ranked articles, each with a matching snippet and its chapter slug. The schemas are transcribed from the engine readers/writers and include the SWATGenX extensions, which stock SWAT+ documentation does not cover.NoYesYesNo
search_swat_modelsSearch the public SWATGenX example-model catalog (built SWAT+ models for USGS gauges and HUC outlets across the conterminous US). Filter by two-letter `state`, `calibrated_only` (alias `calibrated`), and channel-count bounds. A model counts as calibrated only when the website shows it as calibrated (its calibration tier is advertised); a failed or below-satisfactory run does not. Returns model id (site_no), state, size, the calibration tier, and — when present — the headline calibration daily NSE.NoYesYesNo

Details

Registry status
Active
Published
Nov 10, 2026
Updated
Nov 10, 2026
Categories (suggested)
Knowledge and notesSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing