Skip to main content
Glama
Hydrata

Hydrata MCP Server

Official
by Hydrata

Correct a time series

update_time_series
Idempotent

Correct an existing time series by patching only the fields you provide, so wrong data is fixed without replacing the whole record; new rows are validated before saving.

Instructions

Correct a time series you created (PATCH; only the fields you pass change).

Use it to fix a series instead of leaving a wrong one behind. The same rules as create_time_series apply to new rows (units match the type, a hydrograph or hyetograph ends at 0 unless hold_last_value, at least 2 rows, no negative rain or flow, not all zero) and Hydrata refuses with the reason in plain words. A series already used by a built scenario changes the scenario: it needs a rebuild and the user reviews it again. Returns a compact record, not the rows.

Input Schema

NameRequiredDescriptionDefault
dataNoReplacement rows: {"rowData": [{"timestamp": "<ISO 8601>", "value": <number>}, ...]}. Validated here before anything is sent; Hydrata refuses fewer than 2 rows, negative rain or flow values and an all-zero rain or flow series.
nameNoNew name (a rainfall polygon binds to its gauge by this exact name)
unitsNoNew units (must match the series_type, as in create_time_series)
methodNoOne short phrase saying how you got the new numbers. Replaces the earlier account.
series_idYesThe time series id (from list_time_series or create_time_series)
project_idYesThe project ID
descriptionNoNew description
series_typeNoNew series_type: hyetograph, hydrograph, stage or generic
hold_last_valueNoSet true only when the last value is meant to be held

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: discloses that only passed fields change, that Hydrata rejects requests with plain-language reasons, and — critically — that correcting a series already used by a built scenario forces a rebuild and user re-review. That downstream consequence is exactly the kind of side effect annotations cannot express. It also notes the return is a compact record rather than rows.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the verb and the PATCH contract in the first clause, then layers validation rules, then the scenario consequence in order of increasing risk. No sentence is padding; the density is appropriate for a nine-parameter mutation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the operation semantics, validation behavior, failure modes, and the cross-tool side effect on built scenarios, which is the main risk an agent needs to know before calling. An output schema exists, and the description still usefully clarifies the return shape is a compact record rather than the rows.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3 and the schema already documents every parameter including the rowData shape and validation limits. The description adds the conditional rule that a hydrograph or hyetograph must end at 0 unless hold_last_value, but that constraint already appears in the parameter docs, so it is mostly reinforcing rather than new.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Correct a time series you created') and immediately distinguishes the operation as a PATCH with partial-update semantics. An agent can tell it apart from create_time_series and delete_time_series without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use it to fix a series instead of leaving a wrong one behind' gives a clear trigger condition, and the explicit cross-reference to create_time_series rules tells the agent what validation contract applies. It does not, however, state when to prefer delete_time_series plus recreate over a correction, so the alternative path is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.