SWATGenX
io.github.SWATGenX/swatgenxVersion 1.1.2SWAT+ watershed models for any river in the lower 48 states, with groundwater and PFAS data
Status
Responds460 msAnswered our handshake without sign-in.- 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 msNo sign-in
Claude Code
claude mcp add --transport http swatgenx https://www.swatgenx.com/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: swatgenx
Remote MCP server URL: https://www.swatgenx.com/mcpCursor
{
"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.
Tools
13 tools
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). | No | No | Yes | No |
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. | No | Yes | Yes | No |
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. | No | Yes | Yes | No |
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. | No | Yes | Yes | No |
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. | No | Yes | Yes | No |
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. | No | Yes | Yes | No |
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. | No | Yes | Yes | No |
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. | No | No | No | No |
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. | No | Yes | Yes | No |
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. | No | Yes | Yes | No |
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). | No | Yes | Yes | No |
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. | No | Yes | Yes | No |
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. | No | Yes | Yes | No |
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