MCP server that wraps the Dagster GraphQL API — manage runs, assets, schedules, sensors, and backfills from any MCP client
Hydrata - ANUGA Flood Simulation is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Run ANUGA flood simulations, track progress, and retrieve results on Hydrata Cloud.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http hydrata-anuga-flood-simulation-mcp https://hydrata.com/mcp/
# 2 — ask your agent for something these tools do
# list_projects, get_project, get_scenario and 16 more
Hydrata - ANUGA Flood Simulation costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http hydrata-anuga-flood-simulation-mcp https://hydrata.com/mcp/Reconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
19 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
List ANUGA simulation projects accessible to the authenticated user. Returns a paginated list of projects with their names, projections, and base map references.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | integer | no | Page number (default 1) |
| page_size | integer | no | Results per page, max 100 (default 100) |
Get one ANUGA project: id, name, projection, visibility, your role, its base map — and the link to it. Returns the project record (id, name, projection (EPSG code), simple_view_config, visibility, owner_username, my_role, base_map) plus ui_url: the link that opens the project's map, for the user (<site>/catalogue/#/map/<base_map>; null while a new project's map is still being
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
Get a scenario's COMPACT state: its computed_status, inputs, estimate and price. Returns a compact record, never the raw ~50 KB detail: scenario_id, computed_status, mesh_triangle_count_estimate and its _breakdown, latest_run_is_valid, the latest run's run_id, run_status, error_message, user_message, status_detail and mesh_triangle_count — plus what the scenario IS and wha
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
| scenario_id | integer | yes | The scenario ID |
Start a flood simulation run for a built scenario. The scenario must be in 'built' status. Returns 202 with the new run. The run transitions through: built → queued → computing → processing → complete. After starting, poll get_run_status to track progress. Returns 409 if the scenario is not in the correct state. The returned run record has its presigned s3_*_url links elided (6-hour capabiliti
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenario_id | integer | yes | The scenario ID to run |
| compute_backend | string | no | Compute backend: 'local' (Celery), 'ec2' (dedicated instance), or 'batch' (AWS Batch spot, cheapest). Default: 'local' |
Lightweight status check for a simulation run (fast, <50ms). Use this for polling instead of get_run. Returns only: id, status, phase, progress_pct (0-100), eta_seconds, error_message, and compute_backend. phase is never empty: it is status, except preparing_inputs while a computing run has no progress yet (it is downloading its input package and building the domain — minutes on a big
| Parameter | Type | Required | Notes |
|---|---|---|---|
| run_id | integer | yes | The run ID |
Get full details of a simulation run including timing and results. Returns the complete run record: status, progress, timing (start/end timestamps, duration), compute details (backend, instance type, cost), mesh info, error messages, and result log. Use get_run_status for lightweight polling; use this for final results. The presigned s3_*_url download links are ELIDED — each is a 6-hour capabi
| Parameter | Type | Required | Notes |
|---|---|---|---|
| run_id | integer | yes | The run ID |
Cancel an in-flight simulation run. Works on runs in built, queued, or computing status. Cleans up compute resources (terminates EC2 instance, Celery task, or Batch job). Returns 409 if the run is already in a terminal state (complete, cancelled, or error).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| run_id | integer | yes | The run ID to cancel |
Retry a failed simulation run. Resets an errored run back to 'created' status and triggers a new package build. The same run ID is reused. Only valid when status is 'error'. Returns 409 for any other state.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| run_id | integer | yes | The run ID to retry |
List all simulation runs across all scenarios in a project. Returns a paginated list of runs. Optionally filter by status to find active, completed, or failed runs. Each row's presigned s3_*_url download links are elided (6-hour capabilities).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
| status_filter | no | Filter by status: created, building, built, queued, computing, processing, complete, error, cancelled. Omit for all. | |
| page | integer | no | Page number (default 1) |
| page_size | integer | no | Results per page, max 100 (default 100) |
Create a new ANUGA project. Returns the project record including its id, base_map and ui_url. The caller's own account becomes the owner. projection is the projected CRS every scenario in the project is meshed and run in — pick the UTM zone covering the site. The project's map is created alongside it; ui_url opens it — give it to the user. Next step for a new project: presign_terrain_upload.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Project name |
| projection | string | yes | Working CRS as an EPSG string, normally the UTM zone of the site, e.g. 'EPSG:32756' (WGS 84 / UTM 56S) |
Step 1 of a terrain import: get a presigned S3 PUT URL for a GeoTIFF DEM. The agent moves the bytes itself — no tool accepts file contents. After this call, PUT the file straight to upload_url, sending the SAME Content-Type you passed here (it is part of the signature; a mismatch is a 403 SignatureDoesNotMatch before it is anything else): curl -sS -X PUT -H "Content-Type: image/tiff" --upl
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
| filename | string | yes | Base name of the GeoTIFF, e.g. 'dem.tif' (a name only — never contents) |
| content_type | string | no | MIME type the PUT will send (default 'image/tiff'). It is SIGNED into the URL, so the PUT must send exactly this Content-Type header. |
| size | no | File size in bytes (stat -c %s <file>). The API rejects > 5 GiB up front. Omit if unknown. |
Step 2 of a terrain import: register the PUT GeoTIFF as a Terrain and start the import. Call this only after the presigned PUT returned 200. Creates the Terrain row (status creating) and queues the import chain — reproject to UTM, publish the layer + hillshade, style — which also seeds the project's six default boundary, friction, inflow, rainfall, building and mesh-region rows. Returns 202 wit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
| staging_key | string | yes | staging_key returned by presign_terrain_upload |
| process_id | string | no | process_id returned by presign_terrain_upload (pass it so the upload's progress record is reused; the API tolerates its absence) |
| title | string | no | Terrain title (default: the filename without .tif) |
Poll a terrain's import until it is ready (or error), bounded by timeout_seconds. Returns outcome — exactly one of ready, error, timed_out, not_found (the project has no terrain yet; an unknown terrain_id is an API 404 error instead) — plus the last status seen (creating → styling → ready | error) and phase (that status, or not_found; never empty), polls, elapsed_seconds a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
| terrain_id | no | The terrain ID from finalize_terrain_upload. Omit to follow the project's newest terrain. | |
| timeout_seconds | integer | no | How long this call keeps polling before it returns timed_out (default 240, ceiling 280 — the prod /mcp/ proxy cuts a call at 300 s). 0 = one status read, no waiting. |
| poll_interval_seconds | number | no | Seconds between polls (default 5) |
Create a time series (rain gauge, hydrograph, tide/stage) in a project. POSTs /projects/<id>/time-series/ with series_type and units as top-level fields. series_type is checked against the four choices and data against the {"rowData": [{timestamp, value}, ...]} shape before any request is made — the API answers 500 (not 400) to a malformed row. Returns a compact record — id, name, series_
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
| name | string | yes | Series name, kept VERBATIM — a rainfall polygon binds to its gauge by this exact name (its data property), so use the name the GeoJSON features carry |
| data | object | yes | The rows: {"rowData": [{"timestamp": "1998-08-17T00:00:00", "value": 1.5}, ...]}. Timestamps ISO 8601 (a trailing Z is tolerated), values numeric. Validated here before anything is sent. |
| description | string | no | Free-text description (optional) |
| series_type | string | no | One of hyetograph (rainfall depth/intensity — the default), hydrograph (flow, read by the Hydrographs panel and inflow boundaries), stage (water level, e.g. a tide) or generic. Sent as a top-level fie |
| units | string | no | Display label for the values, e.g. 'mm/hr', 'm^3/s', 'm' (optional) |
| source | string | no | Where the data came from, e.g. a gauge id or agency (optional) |
| location_name | string | no | Human-readable location of the gauge (optional) |
| timezone | string | no | IANA timezone of the timestamps (default 'UTC'), e.g. 'Australia/Sydney' |
Attach a GeoJSON you uploaded to GeoNode as the project's boundary, friction, inflow, rainfall, building, mesh_region or culvert layer. The agent moves the bytes: first upload the GeoJSON yourself, with the same credential, to GeoNode's upload endpoint at the site origin: curl -sS -u <user>:<password> -F "base_file=@/path/rainfall.geojson" https://<site>/api/v2/uploads/upload/ → JSON with `
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
| kind | string | yes | Which input the uploaded layer is: boundary, friction, inflow, rainfall, building, mesh_region or culvert ('structure' is a deprecated alias of building). breakline is refused (see below). |
| execution_id | string | yes | execution_id returned by your multipart POST to <origin>/api/v2/uploads/upload/ |
| timeout_seconds | integer | no | How long this call keeps polling the upload before it returns timed_out (default 240, ceiling 280 — the prod /mcp/ proxy cuts a call at 300 s). 0 = one status read, no waiting. |
| poll_interval_seconds | number | no | Seconds between polls (default 5) |
List every input layer row of a project, per kind, with whether it has features. For each of boundary, friction, inflow, rainfall, building, mesh_region and culvert: the rows (row_id, title, gn_layer — the dataset pk — and dataset_alternate, the workspace:name WFS typename) and has_features. has_features comes from the API for boundary, rainfall, mesh_region and culvert; for frictio
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
List a project's time series (rain gauges, hydrographs, tides) — never their rows. Each series: id, name (a rainfall polygon binds to its gauge by this exact name), series_type, units, timezone, row_count, first_timestamp and last_timestamp. The data rows themselves are dropped (a project's list is megabytes); fetch one series with the REST API (GET /projects/<id>/time-series/<id>
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
Create a DRAFT scenario (no build, no run) and report its mesh-triangle estimate. POSTs /projects/<id>/scenarios/ with the write fields, then GETs the scenario detail — the create response carries NO estimate; the detail's mesh_triangle_count_estimate (+ _breakdown) does. Returns a compact record (the same fields get_scenario answers with): id, name, the FK ids as stored, resolution, duration
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
| name | string | yes | Scenario name |
| resolution | number | yes | Mesh resolution as a LENGTH in metres (ANUGA maximum_triangle_area = resolution²/2). Coarser (larger) = fewer triangles: on a ~13 km² boundary 36-40 m gives ~16-20k triangles, 10 m ~255k, 1 m ~25M (re |
| duration | integer | yes | Simulation duration in seconds (e.g. 43200 = 12 h) |
| terrain | no | Terrain id (get_terrain → terrain.id); the build fails without one | |
| boundary | no | Boundary row id (attach_input_layer kind=boundary → row_id) | |
| friction | no | Friction row id (optional) | |
| inflow | no | Inflow row id (optional; the build needs an inflow OR a rainfall) | |
| rainfall | no | Rainfall row id (optional; the build needs an inflow OR a rainfall) | |
| building | no | Building row id (optional) | |
| mesh_region | no | MeshRegion row id (optional): finer meshing inside its polygons, each feature's resolution a LENGTH in metres (see the units note). | |
| culvert | no | Culvert row id (optional; attach_input_layer kind=culvert → row_id). The build refuses a culvert missing its shape, size or invert levels. | |
| description | string | no | Free-text description (optional) |
| structure | no | Deprecated alias of building (TASK-3586); ignored when building is given. |
Build a scenario's package (mesh + inputs) after showing what it will cost, and poll until built. Order of operations, so the number is shown before anything is spent: 1. GET the scenario detail. A record with no boundary/computed_status keys is a non-member's read of a public project → refused: a build needs the EDITOR role. 2. Re-call checks on latest_run (a re-POST is NOT deduplic
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_id | integer | yes | The project ID |
| scenario_id | integer | yes | The scenario ID from create_scenario |
| confirm | boolean | no | Required (true) when the estimate is above 100,000 triangles — the tool refuses first and tells you the number. Default false. |
| rebuild | boolean | no | true to dispatch a NEW build of a scenario whose latest run is already built/complete and still valid (default false: the tool returns that state instead of duplicating the build). |
| timeout_seconds | integer | no | How long this call keeps polling before it returns timed_out (default 240, ceiling 280 — the prod /mcp/ proxy cuts a call at 300 s). 0 = one status read, no waiting. |
| poll_interval_seconds | number | no | Seconds between polls (default 5) |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Hydrata - ANUGA Flood Simulation or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 0.2.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Hydrata - ANUGA Flood Simulation can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.