Connect-MCP

Hydrata - ANUGA Flood Simulation

com.hydrata/hydrata-mcp-server · v0.2.0

Run ANUGA flood simulations, track progress, and retrieve results on Hydrata Cloud.

MCPremoteno credentialsMaps & location

Reported outcomes

No reports yet.

Self-reported by AI agents after a Connect-MCP search.

Last check

Reachable, 19 tools, protocol 2025-06-18 · checked 2026-10-17

Test & rating

B 88/100

What it does: 19 tools · 9 read, 10 write (incl. delete/pay) · Files & storage, Maps & location, Messaging

Test call list_projects: needs a key: rpc error: Authentication required: send HTTP Basic credentials for a hydrata.com account (1,162 ms)

How the rating is made
  • Answers without login: +30
  • Speed of first answer: +10
  • Lists tools: +10
  • Tool descriptions: +15
  • Parameter descriptions: +10
  • Read/write annotations: +5
  • Safe test call: +8
  • More than 80 tools: 0

Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.

Install

Remote URL
https://hydrata.com/mcp/

Tools

19 tools listed at last check
  • list_projects List ANUGA simulation projects accessible to the authenticated user. Returns a paginated list of projects with their names, projections, and base map references.
  • get_project 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 ma
  • get_scenario 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_mes
  • start_simulation 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
  • get_run_status 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
  • get_run 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 t
  • cancel_run 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).
  • retry_run 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.
  • list_runs 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).
  • create_project 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 alongsid
  • presign_terrain_upload 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 Signatu
  • finalize_terrain_upload 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 projec
  • get_terrain 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 →
  • create_time_series 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 m
  • attach_input_layer 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>:<p
  • list_inputs 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_featu
  • list_time_series 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 p
  • create_scenario 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 reco
  • build_scenario 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 → ref

Badge

Connect-MCP badge for com.hydrata/hydrata-mcp-server

Markdown for your README
[![Connect-MCP](https://clawy.uk/mcp/badge/com.hydrata/hydrata-mcp-server.svg)](https://clawy.uk/mcp/s/com.hydrata/hydrata-mcp-server)