MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Code & DevOps

SWATGenX

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

Checks passed
14 / 22

1 failed · 7 not measured

Median response
692 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
13

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 709 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name swatgenx.

  • Pass
    Lists tools

    tools/list returned 13 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 692 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 707 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    0 of 33 parameters have a description (0%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Not measured
    Website matches publisher

    This namespace is not a reverse domain, so the website comparison does not apply.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Pass
    Repo owner matches

    The GitHub repository owner matches the namespace login.

  • Pass
    Recently updated

    Updated 2026-11-10T03:27:02.16364Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using SWATGenX

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

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

Capabilities

Tools 13

download_model

Get 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).

Discovered
get_access_info

Describe 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.

Discovered
get_doc

Return 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.

Discovered
get_engine_info

Where 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.

Discovered
get_model_calibration

Return 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.

Discovered
get_order_status

Check a model build (authenticated): state (queued/running/complete/failed), stage, and timing. order_id is the id order_model returned for the build.

Discovered
list_my_models

List 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.

Discovered
order_model

Start 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.

Discovered
query_groundwater

Query 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.

Discovered
query_pfas

Query 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.

Discovered
request_model

Preview 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).

Discovered
search_docs

Search 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.

Discovered
search_swat_models

Search 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.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected709 ms13
Connected674 ms13