Hydrata - ANUGA Flood Simulation
Run ANUGA flood simulations, track progress, and retrieve results on Hydrata Cloud.
Connect it
Settings → Connectors → Add custom connector
URL: https://hydrata.com/mcp/Settings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://hydrata.com/mcp/{
"mcpServers": {
"hydrata-mcp-server": {
"url": "https://hydrata.com/mcp/"
}
}
}claude mcp add --transport http hydrata-mcp-server https://hydrata.com/mcp/{
"servers": {
"hydrata-mcp-server": {
"type": "http",
"url": "https://hydrata.com/mcp/"
}
}
}19 tools, verified live
list_projectsread-onlyList ANUGA simulation projects accessible to the authenticated user. Returns a paginated list of projects with their names, projections, and base map references.
get_projectread-onlyGet 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 bein
get_scenarioread-onlyGet 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 w
start_simulationStart 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 ca
get_run_statusread-onlyLightweight 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 bi
get_runread-onlyGet 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 capa
cancel_runcan modifyCancel 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).
retry_runRetry 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.
list_runsread-onlyList 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).
create_projectCreate 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_uplo
presign_terrain_uploadStep 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" --u
finalize_terrain_uploadStep 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
get_terrainread-onlyPoll 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_se
create_time_seriesCreate 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, ser
attach_input_layerAttach 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
list_inputsread-onlyList 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 fri
list_time_seriesread-onlyList 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/<i
create_scenarioCreate 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, durati
build_scenarioBuild 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 dedupl
Alternatives in Cloud & Infra
Compare →
UptimeRobotB
Monitor websites, APIs, and servers: create monitors, triage incidents, and query uptime stats.
TRTLS RadarB
SSL/TLS scanning, free Let's Encrypt issuance, and certificate-expiry monitoring.
DDDns DoctorB
Scan, fix, verify and monitor DNS: SPF, DMARC, DKIM, propagation, health, expiry. Validated fixes.
SESendravenB
Email infrastructure for AI agents: send, read replies as threads, campaigns, per-key limits.
Costory FinOps MCPB
FinOps agent MCP: allocated AWS, GCP, Azure, Kubernetes, SaaS & AI cost for Claude or any agent
PCPrince CloudB
Convert Markdown, HTML, and web pages to high-quality PDF with Prince.