pegel
Server Details
German and Swiss river gauges, groundwater and flood levels from ten official sources
- Status
- Healthy
- Uptime
- 97.3% over 46 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
Each tool targets a distinct resource/action: station search, station metadata, time-series readings, forecast, flood classification, and local weather. The only mild overlap is get_forecast (numeric water-level model output) versus get_flood_situation (active LHP flood class), but the descriptions draw that boundary clearly enough that misselection is unlikely.
All six tools follow a clean verb_noun pattern (get_flood_situation, get_forecast, get_readings, get_station, get_weather, search_stations), with 'get_' for retrieval and 'search_' for lookup. No casing or verb-style drift anywhere in the set.
Six tools is well-scoped for a read-only hydrological data API: one search entry point plus one tool per data facet (master data, readings, forecast, flood status, weather). Nothing looks redundant or padded.
The surface covers search, station metadata, level/discharge time series, forecast, flood status, and weather, and being a public read-only API means no write/CRUD tools are expected. Minor gaps remain, such as bulk retrieval of readings across multiple stations or explicit listing of available regions/providers, but agents can work around these via search_stations and per-station calls.
Available Tools
6 toolsget_flood_situationHochwasserlageARead-onlyIdempotentInspect
Current flood situation: stations with an active LHP flood class (1 small … 4 very large), optionally per federal state. Every result names the data provider in sourceNotice (search and flood situation: sourceNotices, keyed by sourceNoticeId); show that notice with any value, class or forecast you pass on, and the licence terms of the API require it.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Language for classification text (headline/description); defaults to German | |
| federalState | No | ISO 3166-2 code, e.g. DE-BY |
Output Schema
| Name | Required | Description |
|---|---|---|
| stations | Yes | |
| countByClass | Yes | Station count per flood class name |
| sourceNotices | Yes | Distinct notices of the listed gauges by key; a gauge names its own in sourceNoticeId |
| stationsWithFlood | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, open-world behavior, so the bar is lower, and the description still adds real value: a licence-mandated attribution obligation (the sourceNotice must be shown with any value, class or forecast passed on) and the fact that notices are keyed by sourceNoticeId. It omits only secondary traits such as result ordering or handling of an empty result set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Opens with the purpose, then moves to the attribution requirement — the right front-loading. The sourceNotice sentence is long and slightly clause-heavy, but every element (keyed by sourceNoticeId, must be shown, licence requirement) carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations cover the safety profile, the output schema covers return values, and both parameters are schema-documented, so the description only needed to add scope and the attribution constraint — which it does. Minor gaps remain around empty results and ordering, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents both locale and federalState, so the baseline is 3. The description adds the notion that federalState acts as an optional narrowing filter, but contributes nothing about the locale enum or the ISO 3166-2 format beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Current flood situation'), the exact scope (stations with an active LHP flood class 1–4) and the optional federal-state filter. Among siblings like get_readings, get_forecast and get_weather, an agent can tell immediately that this one returns flood-class warnings rather than raw measurements or forecasts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys the retrieval context (current flood situation, optionally narrowed by federal state) but never says when to prefer this over get_forecast or get_readings, nor does it state exclusions such as 'no forecast data here'. Usage is implied by the resource name rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forecastWasserstandsvorhersageARead-onlyIdempotentInspect
Newest published water-level forecast for a station: the median of the state agency model run, future points within the horizon. Only gauges whose state publishes numeric forecasts have one, so an empty result is normal. Indicative, not an official warning. Every result names the data provider in sourceNotice (search and flood situation: sourceNotices, keyed by sourceNoticeId); show that notice with any value, class or forecast you pass on, and the licence terms of the API require it.
| Name | Required | Description | Default |
|---|---|---|---|
| stationId | Yes | Namespaced station id, e.g. "lhp:RP_2640010" | |
| horizonHours | No | Hours ahead, default 72, capped at 240 |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| unit | Yes | |
| count | Yes | |
| points | Yes | |
| source | Yes | |
| stationId | Yes | |
| generatedAt | Yes | Model run time; null when none was published |
| horizonHours | Yes | |
| sourceNotice | Yes | Notice of the gauge as shown; show it with any value taken from this gauge. Null where none can be built, then no value is delivered |
| valueDivisor | Yes | Divide valueCentimeters by this to read it in `unit` |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent and open-world safety, yet the description adds material context beyond them: the value is a model median (not an observation), it is indicative rather than an official warning, empty results are expected, and passing a value on obliges the caller to display the provider notice per the licence. That is substantive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the primary purpose and then the interpretive caveats, and nearly every clause carries load (empty result, indicativeness, attribution duty). The closing attribution sentence is dense and slightly over-stuffed but not redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return structure need not be explained, and the description still covers the non-obvious semantics: expected emptiness, model provenance, and the licence obligation on sourceNotice. An agent has what it needs to call and interpret the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both stationId and horizonHours (including the 72h default and 240h cap) are already documented in the schema. The description only restates the horizon concept in prose and adds no format or edge-case detail for either parameter, so the baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('newest published water-level forecast for a station') and narrows it further to the median of the state agency model run over future points in the horizon. This is clearly distinct from get_readings/get_weather, though no sibling is named explicitly to sharpen the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the precondition that only gauges whose state publishes numeric forecasts return data and that an empty result is therefore normal, which prevents an agent from misreading a null response. It also points at where the sourceNotice is surfaced elsewhere (search and flood situation), but states no explicit when-not-to-use or alternative tool for observed readings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_readingsMessreiheARead-onlyIdempotentInspect
Time series for a station (downsampled to ≤200 points; history depth on this tier: last 90 days, default last 7 days). type "level" (default) → level series as stored valueCentimeters: centimetres above gauge zero for most gauges, but an elevation ×100 for groundwater wells and for gauges reporting an absolute elevation (Swiss gauges, the Neusiedler See) — divide by valueDivisor to read it in unit. type "discharge" → discharge Q in m³/s where the station provides it. Every result names the data provider in sourceNotice (search and flood situation: sourceNotices, keyed by sourceNoticeId); show that notice with any value, class or forecast you pass on, and the licence terms of the API require it.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ISO 8601 end, defaults to now | |
| from | No | ISO 8601 start, e.g. 2026-06-01T00:00:00Z | |
| type | No | Series type: level (default) or discharge (m³/s) | |
| stationId | Yes | Namespaced station id, e.g. "pegelonline:<uuid>" or "lhp:BY_10026301" |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | Present when the series was downsampled |
| unit | No | Unit of a level series; absent for discharge |
| count | Yes | |
| summary | Yes | Min and max (level: in unit) and latest point; null when empty |
| readings | No | Level series as stored valueCentimeters |
| discharge | No | Discharge series, m³/s |
| stationId | Yes | |
| sourceNotice | Yes | Notice of the gauge as shown; show it with any value taken from this gauge. Null where none can be built, then no value is delivered |
| valueDivisor | No | Divide valueCentimeters by this to read in unit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering read-only, idempotent, non-destructive and open-world behavior, the description still adds substantial non-obvious context: results are downsampled to ≤200 points, history is capped at 90 days, and the API licence obliges the caller to surface sourceNotice attribution. That is exactly the kind of behavioral and legal constraint annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and every clause carries real payload — units, defaults, retention, attribution. The heavy dash-clause construction makes it dense to parse, but there is little true waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description still covers the sampling cap, retention window, default range, unit interpretation and attribution obligations. For a tool with this many non-obvious semantics, nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes beyond the schema by explaining what 'level' actually means numerically (valueCentimeters, divided by valueDivisor, with the elevation ×100 quirk for wells and Swiss gauges) and confirming 'discharge' is m³/s where available. Only 'from'/'to' receive no extra treatment beyond the schema, which already documents them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Time series for a station' — and immediately constrains it with downsampling and retention limits, so an agent knows exactly what comes back. It does not explicitly name or contrast with siblings such as get_forecast or get_flood_situation, which keeps it just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implicitly tells the agent the tool is for historical/current measurement series by defaulting to the last 7 days within a 90-day depth, and it hints at other tools ('search and flood situation'), but it never states when to prefer this over get_forecast or get_flood_situation. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stationPegel-StammdatenARead-onlyIdempotentInspect
Master data of one station: measurement type, current value with its unit, thresholds (MNW/MHW, alert marks, as stored valueCentimeters), flood class, coordinates. Every result names the data provider in sourceNotice (search and flood situation: sourceNotices, keyed by sourceNoticeId); show that notice with any value, class or forecast you pass on, and the licence terms of the API require it.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | Language for classification text (headline/description); defaults to German | |
| stationId | Yes | Namespaced station id, e.g. "pegelonline:<uuid>" or "lhp:BY_10026301" |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| unit | Yes | |
| water | Yes | |
| latitude | Yes | |
| longitude | Yes | |
| thresholds | Yes | |
| waterClass | Yes | river | lake | coast | groundwater — the group the gauge belongs to; measurementType says what it measures |
| latestValue | Yes | Latest level, in `unit` |
| floodWarning | Yes | The river section warning this gauge inherits; it describes the reach, not the gauge |
| sourceNotice | Yes | Notice of the gauge as shown; show it with any value taken from this gauge. Null where none can be built, then no value is delivered |
| valueDivisor | Yes | Divide any valueCentimeters by this to read it in `unit` |
| measurementType | Yes | river | groundwater | sea_level | reservoir |
| latestMeasuredAt | Yes | |
| latestValueCentimeters | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, read-only call, so the bar is low; the description still adds non-obvious behavior: thresholds are stored as valueCentimeters, every result carries a sourceNotice, and search/flood endpoints use sourceNotices keyed by sourceNoticeId. The mandated attribution step is a genuine operational constraint not derivable from any structured field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first clause front-loads the payload contents efficiently in a single sentence. The second sentence is long and mixes the sourceNotice convention with an attribution mandate, but every element is load-bearing for an agent that must cite the provider.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no prose, and annotations carry the safety profile; the description is complete on the unusual parts (attribution requirement, threshold units). The one gap is that it never says where a valid stationId comes from, though the schema example partially covers this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the namespaced stationId format and the locale enum/default documented in the schema itself, so the baseline is 3. The description's mention of valueCentimeters describes output formatting, not input semantics, so it adds little beyond the schema for either parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('master data of one station') and enumerates the returned fields (measurement type, current value, thresholds, flood class, coordinates), which is clearly distinct from get_readings/get_forecast. It stops short of explicitly contrasting itself with search_stations or naming the sibling that supplies the stationId, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit 'use this when...' or 'use search_stations to find the id' routing, so tool selection is left to inference. The description does impose an actionable usage obligation — show sourceNotice alongside any value/class/forecast passed on, because the licence terms require it — which is real conditional guidance, just not about tool choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_weatherWettervorhersage am PegelBRead-onlyIdempotentInspect
Daily weather forecast at the station coordinate (DWD data via Bright Sky).
| Name | Required | Description | Default |
|---|---|---|---|
| stationId | Yes | Namespaced station id, e.g. "pegelonline:<uuid>" or "lhp:BY_10026301" |
Output Schema
| Name | Required | Description |
|---|---|---|
| daily | Yes | |
| available | Yes | False when the forecast provider is unreachable |
| stationId | Yes | |
| attribution | Yes | |
| stationName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about daily granularity and the underlying data source (DWD via Bright Sky), but it does not disclose rate limits, caching, freshness, or other operational behavior beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every element—daily granularity, station coordinate scope, and data source—earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with full schema coverage, rich annotations, and an output schema, the description is largely complete: it identifies the resource, location basis, and data origin. The only notable gap is the lack of explicit sibling routing, which could matter when get_forecast is also present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single stationId parameter already includes format examples in the schema. The description implies that the station id resolves to a coordinate used for the forecast, which adds a little meaning, but it provides no additional syntax, constraints, or edge-case handling beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (daily weather forecast), scope (at the station coordinate), and data source (DWD data via Bright Sky). It is clear enough to distinguish from water-level siblings like get_readings or get_flood_situation, but it does not explicitly differentiate from get_forecast, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool returns but gives no when-to-use guidance, prerequisites, or alternatives among the six sibling tools. There is no indication of when to prefer get_weather over get_forecast or other forecast/observation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stationsPegel suchenARead-onlyIdempotentInspect
Search stations in Germany and its neighbouring countries — river gauges, groundwater wells, reservoirs, coastal gauges — by name or water body, optionally filtered by region (a German federal state or a country code). latestValue is given in the station's unit. Every result names the data provider in sourceNotice (search and flood situation: sourceNotices, keyed by sourceNoticeId); show that notice with any value, class or forecast you pass on, and the licence terms of the API require it.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Station or water name, e.g. "Köln" or "Rhein" | |
| locale | No | Language for classification text (headline/description); defaults to German | |
| waterClass | No | Only gauges of these classes: river, lake (lakes and reservoirs), coast (coast and tide), groundwater; omit for all | |
| federalState | No | ISO 3166-2 code for a German state, e.g. DE-NW; CH, AT, CZ, LU or FR for a country |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | Present when the result was capped |
| stations | Yes | |
| totalMatches | Yes | Matches before the result cap |
| sourceNotices | Yes | Distinct notices of the listed gauges by key; a gauge names its own in sourceNoticeId |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld safety, but the description adds genuinely useful behavioral context beyond them: latestValue is expressed in the station's own unit, and every result carries a provider notice in sourceNotice that the API licence requires be shown. That attribution obligation is real operational guidance not present in structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and the content is dense with useful facts, but the attribution clause is convoluted (the parenthetical 'search and flood situation: sourceNotices, keyed by sourceNoticeId') and the run-on final sentence makes the compliance requirement harder to parse than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape needn't be explained, and the description still adds the two things an agent needs operationally: unit semantics for latestValue and the sourceNotice attribution duty. For a 0-required-param search tool with full annotation coverage, this is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents query, locale, waterClass and federalState. The description restates the region-filter semantics (state or country code) and name/water-body lookup, but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (stations/gauges) and enumerates the concrete station types covered (river gauges, groundwater wells, reservoirs, coastal gauges). The plural search framing clearly contrasts with the singular get_station sibling, so an agent can distinguish them without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes the lookup mode (by name or water body, optional region filter), which implies when to reach for it, but never states when NOT to use it or names alternatives like get_station for ID-based retrieval. Usage is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
get_station2 fields changed- added
Output schema / properties / waterClassAdded value: +{ + "description": "river | lake | coast | groundwater — the group the gauge belongs to; measurementType says what it measures", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "id", - "name", - "water", - "latitude", - "longitude", - "measurementType", - "latestValue", - "unit", - "valueDivisor", - "latestValueCentimeters", - "latestMeasuredAt", - "thresholds", - "floodWarning", - "sourceNotice" -]New value: +[ + "id", + "name", + "water", + "latitude", + "longitude", + "measurementType", + "waterClass", + "latestValue", + "unit", + "valueDivisor", + "latestValueCentimeters", + "latestMeasuredAt", + "thresholds", + "floodWarning", + "sourceNotice" +]
- Changed
search_stations3 fields changed- added
Input schema / properties / waterClassAdded value: +{ + "description": "Only gauges of these classes: river, lake (lakes and reservoirs), coast (coast and tide), groundwater; omit for all", + "items": { + "enum": [ + "river", + "lake", + "coast", + "groundwater" + ], + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / stations / items / properties / waterClassAdded value: +{ + "description": "river | lake | coast | groundwater — the group the gauge belongs to; measurementType says what it measures", + "type": "string" +} - changed
Output schema / properties / stations / items / requiredPrevious value: -[ - "id", - "name", - "water", - "federalState", - "measurementType", - "latestValue", - "unit", - "latestValueCentimeters", - "lhpClass", - "floodWarning", - "sourceNoticeId" -]New value: +[ + "id", + "name", + "water", + "federalState", + "measurementType", + "waterClass", + "latestValue", + "unit", + "latestValueCentimeters", + "lhpClass", + "floodWarning", + "sourceNoticeId" +]
5 tool updates
- Changed
get_flood_situation4 fields changed- added
Output schema / properties / sourceNoticesAdded value: +{ + "additionalProperties": { + "additionalProperties": {}, + "properties": { + "fetchedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "When the values were fetched, UTC" + }, + "form": { + "description": "full-only: show the full text, never shorten; short-allowed", + "type": "string" + }, + "id": { + "description": "Key of the source record", + "type": "string" + }, + "licence": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "parts": { + "items": { + "additionalProperties": {}, + "properties": { + "fetchedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "When the values were fetched, UTC" + }, + "form": { + "description": "full-only: show the full text, never shorten; short-allowed", + "type": "string" + }, + "id": { + "description": "Key of the source record", + "type": "string" + }, + "licence": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "permissionBasis": { + "type": "string" + }, + "rightsHolder": { + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "stampedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The provider's own time stamp, UTC" + }, + "stationLink": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Origin page of this gauge where one is required" + }, + "text": { + "description": "The full notice as plain text", + "type": "string" + }, + "textShort": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Shortened notice; null where it must never be shortened" + } + }, + "required": [ + "id", + "form", + "permissionBasis", + "licence", + "sourceName", + "sourceUrl", + "rightsHolder", + "fetchedAt", + "stampedAt", + "stationLink", + "text", + "textShort" + ], + "type": "object" + }, + "type": "array" + }, + "permissionBasis": { + "type": "string" + }, + "rightsHolder": { + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "stampedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The provider's own time stamp, UTC" + }, + "stationLink": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Origin page of this gauge where one is required" + }, + "text": { + "description": "The full notice as plain text", + "type": "string" + }, + "textShort": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Shortened notice; null where it must never be shortened" + } + }, + "required": [ + "id", + "form", + "permissionBasis", + "licence", + "sourceName", + "sourceUrl", + "rightsHolder", + "fetchedAt", + "stampedAt", + "stationLink", + "text", + "textShort", + "parts" + ], + "type": "object" + }, + "description": "Distinct notices of the listed gauges by key; a gauge names its own in sourceNoticeId", + "propertyNames": { + "type": "string" + }, + "type": "object" +} - added
Output schema / properties / stations / items / properties / sourceNoticeIdAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Key into sourceNotices; the flood class is delivered under this notice" +} - changed
Output schema / properties / stations / items / requiredPrevious value: -[ - "id", - "name", - "water", - "federalState", - "lhpClass", - "lhpClassName" -]New value: +[ + "id", + "name", + "water", + "federalState", + "lhpClass", + "lhpClassName", + "sourceNoticeId" +] - changed
Output schema / requiredPrevious value: -[ - "stationsWithFlood", - "countByClass", - "stations" -]New value: +[ + "stationsWithFlood", + "countByClass", + "sourceNotices", + "stations" +]
- Changed
get_forecast2 fields changed- added
Output schema / properties / sourceNoticeAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "disclaimer": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Liability disclaimer" + }, + "fetchedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "When the values were fetched, UTC" + }, + "form": { + "description": "full-only: show the full text, never shorten; short-allowed", + "type": "string" + }, + "id": { + "description": "Key of the source record", + "type": "string" + }, + "licence": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "noOfficialWarning": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Statement that the values are no official warning" + }, + "parts": { + "items": { + "additionalProperties": {}, + "properties": { + "fetchedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "When the values were fetched, UTC" + }, + "form": { + "description": "full-only: show the full text, never shorten; short-allowed", + "type": "string" + }, + "id": { + "description": "Key of the source record", + "type": "string" + }, + "licence": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "permissionBasis": { + "type": "string" + }, + "rightsHolder": { + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "stampedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The provider's own time stamp, UTC" + }, + "stationLink": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Origin page of this gauge where one is required" + }, + "text": { + "description": "The full notice as plain text", + "type": "string" + }, + "textShort": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Shortened notice; null where it must never be shortened" + } + }, + "required": [ + "id", + "form", + "permissionBasis", + "licence", + "sourceName", + "sourceUrl", + "rightsHolder", + "fetchedAt", + "stampedAt", + "stationLink", + "text", + "textShort" + ], + "type": "object" + }, + "type": "array" + }, + "permissionBasis": { + "type": "string" + }, + "rawData": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Notice that the values are preliminary, unchecked raw data" + }, + "rightsHolder": { + "type": "string" + }, + "sourceLine": { + "description": "Credit line of the provider", + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "stampedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The provider's own time stamp, UTC" + }, + "stationLink": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Origin page of this gauge where one is required" + }, + "termsPath": { + "type": "string" + }, + "text": { + "description": "The full notice as plain text", + "type": "string" + }, + "textShort": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Shortened notice; null where it must never be shortened" + } + }, + "required": [ + "id", + "form", + "permissionBasis", + "licence", + "sourceName", + "sourceUrl", + "rightsHolder", + "fetchedAt", + "stampedAt", + "stationLink", + "text", + "textShort", + "parts", + "sourceLine", + "rawData", + "disclaimer", + "noOfficialWarning", + "termsPath" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Notice of the gauge as shown; show it with any value taken from this gauge. Null where none can be built, then no value is delivered" +} - changed
Output schema / requiredPrevious value: -[ - "stationId", - "horizonHours", - "unit", - "valueDivisor", - "generatedAt", - "source", - "count", - "points", - "note" -]New value: +[ + "stationId", + "horizonHours", + "sourceNotice", + "unit", + "valueDivisor", + "generatedAt", + "source", + "count", + "points", + "note" +]
- Changed
get_readings2 fields changed- changed
Output schema / properties / sourceNotice / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "disclaimer": { - "description": "Liability disclaimer", - "type": "string" - }, - "id": { - "type": "string" - }, - "noOfficialWarning": { - "description": "Statement that the values are no official warning", - "type": "string" - }, - "rawData": { - "description": "Notice that the values are preliminary, unchecked raw data", - "type": "string" - }, - "sourceLine": { - "description": "Credit line of the provider", - "type": "string" - }, - "termsPath": { - "type": "string" - } - }, - "required": [ - "id", - "sourceLine", - "rawData", - "disclaimer", - "noOfficialWarning", - "termsPath" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "disclaimer": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Liability disclaimer" + }, + "fetchedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "When the values were fetched, UTC" + }, + "form": { + "description": "full-only: show the full text, never shorten; short-allowed", + "type": "string" + }, + "id": { + "description": "Key of the source record", + "type": "string" + }, + "licence": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "noOfficialWarning": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Statement that the values are no official warning" + }, + "parts": { + "items": { + "additionalProperties": {}, + "properties": { + "fetchedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "When the values were fetched, UTC" + }, + "form": { + "description": "full-only: show the full text, never shorten; short-allowed", + "type": "string" + }, + "id": { + "description": "Key of the source record", + "type": "string" + }, + "licence": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "permissionBasis": { + "type": "string" + }, + "rightsHolder": { + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "stampedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The provider's own time stamp, UTC" + }, + "stationLink": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Origin page of this gauge where one is required" + }, + "text": { + "description": "The full notice as plain text", + "type": "string" + }, + "textShort": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Shortened notice; null where it must never be shortened" + } + }, + "required": [ + "id", + "form", + "permissionBasis", + "licence", + "sourceName", + "sourceUrl", + "rightsHolder", + "fetchedAt", + "stampedAt", + "stationLink", + "text", + "textShort" + ], + "type": "object" + }, + "type": "array" + }, + "permissionBasis": { + "type": "string" + }, + "rawData": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Notice that the values are preliminary, unchecked raw data" + }, + "rightsHolder": { + "type": "string" + }, + "sourceLine": { + "description": "Credit line of the provider", + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "stampedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The provider's own time stamp, UTC" + }, + "stationLink": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Origin page of this gauge where one is required" + }, + "termsPath": { + "type": "string" + }, + "text": { + "description": "The full notice as plain text", + "type": "string" + }, + "textShort": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Shortened notice; null where it must never be shortened" + } + }, + "required": [ + "id", + "form", + "permissionBasis", + "licence", + "sourceName", + "sourceUrl", + "rightsHolder", + "fetchedAt", + "stampedAt", + "stationLink", + "text", + "textShort", + "parts", + "sourceLine", + "rawData", + "disclaimer", + "noOfficialWarning", + "termsPath" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / sourceNotice / descriptionPrevious value: -"Present for gauges whose provider demands a notice; show it with any value taken from this gauge"New value: +"Notice of the gauge as shown; show it with any value taken from this gauge. Null where none can be built, then no value is delivered"
- Changed
get_station2 fields changed- changed
Output schema / properties / sourceNotice / anyOfPrevious value: -[ - { - "additionalProperties": {}, - "properties": { - "disclaimer": { - "description": "Liability disclaimer", - "type": "string" - }, - "id": { - "type": "string" - }, - "noOfficialWarning": { - "description": "Statement that the values are no official warning", - "type": "string" - }, - "rawData": { - "description": "Notice that the values are preliminary, unchecked raw data", - "type": "string" - }, - "sourceLine": { - "description": "Credit line of the provider", - "type": "string" - }, - "termsPath": { - "type": "string" - } - }, - "required": [ - "id", - "sourceLine", - "rawData", - "disclaimer", - "noOfficialWarning", - "termsPath" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "disclaimer": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Liability disclaimer" + }, + "fetchedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "When the values were fetched, UTC" + }, + "form": { + "description": "full-only: show the full text, never shorten; short-allowed", + "type": "string" + }, + "id": { + "description": "Key of the source record", + "type": "string" + }, + "licence": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "noOfficialWarning": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Statement that the values are no official warning" + }, + "parts": { + "items": { + "additionalProperties": {}, + "properties": { + "fetchedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "When the values were fetched, UTC" + }, + "form": { + "description": "full-only: show the full text, never shorten; short-allowed", + "type": "string" + }, + "id": { + "description": "Key of the source record", + "type": "string" + }, + "licence": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "permissionBasis": { + "type": "string" + }, + "rightsHolder": { + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "stampedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The provider's own time stamp, UTC" + }, + "stationLink": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Origin page of this gauge where one is required" + }, + "text": { + "description": "The full notice as plain text", + "type": "string" + }, + "textShort": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Shortened notice; null where it must never be shortened" + } + }, + "required": [ + "id", + "form", + "permissionBasis", + "licence", + "sourceName", + "sourceUrl", + "rightsHolder", + "fetchedAt", + "stampedAt", + "stationLink", + "text", + "textShort" + ], + "type": "object" + }, + "type": "array" + }, + "permissionBasis": { + "type": "string" + }, + "rawData": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Notice that the values are preliminary, unchecked raw data" + }, + "rightsHolder": { + "type": "string" + }, + "sourceLine": { + "description": "Credit line of the provider", + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "stampedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The provider's own time stamp, UTC" + }, + "stationLink": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Origin page of this gauge where one is required" + }, + "termsPath": { + "type": "string" + }, + "text": { + "description": "The full notice as plain text", + "type": "string" + }, + "textShort": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Shortened notice; null where it must never be shortened" + } + }, + "required": [ + "id", + "form", + "permissionBasis", + "licence", + "sourceName", + "sourceUrl", + "rightsHolder", + "fetchedAt", + "stampedAt", + "stationLink", + "text", + "textShort", + "parts", + "sourceLine", + "rawData", + "disclaimer", + "noOfficialWarning", + "termsPath" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / sourceNotice / descriptionPrevious value: -"Present for gauges whose provider demands a notice; show it with any value taken from this gauge"New value: +"Notice of the gauge as shown; show it with any value taken from this gauge. Null where none can be built, then no value is delivered"
- Changed
search_stations16 fields changed- added
Output schema / properties / sourceNotices / additionalProperties / properties / fetchedAtAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "When the values were fetched, UTC" +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / formAdded value: +{ + "description": "full-only: show the full text, never shorten; short-allowed", + "type": "string" +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / idAdded value: +{ + "description": "Key of the source record", + "type": "string" +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / licenceAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / partsAdded value: +{ + "items": { + "additionalProperties": {}, + "properties": { + "fetchedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "When the values were fetched, UTC" + }, + "form": { + "description": "full-only: show the full text, never shorten; short-allowed", + "type": "string" + }, + "id": { + "description": "Key of the source record", + "type": "string" + }, + "licence": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "permissionBasis": { + "type": "string" + }, + "rightsHolder": { + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "sourceUrl": { + "type": "string" + }, + "stampedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The provider's own time stamp, UTC" + }, + "stationLink": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Origin page of this gauge where one is required" + }, + "text": { + "description": "The full notice as plain text", + "type": "string" + }, + "textShort": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Shortened notice; null where it must never be shortened" + } + }, + "required": [ + "id", + "form", + "permissionBasis", + "licence", + "sourceName", + "sourceUrl", + "rightsHolder", + "fetchedAt", + "stampedAt", + "stationLink", + "text", + "textShort" + ], + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / permissionBasisAdded value: +{ + "type": "string" +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / rightsHolderAdded value: +{ + "type": "string" +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / sourceNameAdded value: +{ + "type": "string" +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / sourceUrlAdded value: +{ + "type": "string" +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / stampedAtAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The provider's own time stamp, UTC" +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / stationLinkAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Origin page of this gauge where one is required" +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / textAdded value: +{ + "description": "The full notice as plain text", + "type": "string" +} - added
Output schema / properties / sourceNotices / additionalProperties / properties / textShortAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Shortened notice; null where it must never be shortened" +} - added
Output schema / properties / sourceNotices / additionalProperties / requiredAdded value: +[ + "id", + "form", + "permissionBasis", + "licence", + "sourceName", + "sourceUrl", + "rightsHolder", + "fetchedAt", + "stampedAt", + "stationLink", + "text", + "textShort", + "parts" +] - changed
Output schema / properties / sourceNotices / descriptionPrevious value: -"Provider notices of the listed gauges by id; a gauge names its own in sourceNoticeId"New value: +"Distinct notices of the listed gauges by key; a gauge names its own in sourceNoticeId" - changed
Output schema / properties / stations / items / properties / sourceNoticeId / descriptionPrevious value: -"Key into sourceNotices; null if none applies"New value: +"Key into sourceNotices; null where no notice can be built (no value then)"
3 tool updates
- Changed
get_readings2 fields changed- added
Output schema / properties / sourceNoticeAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "disclaimer": { + "description": "Liability disclaimer", + "type": "string" + }, + "id": { + "type": "string" + }, + "noOfficialWarning": { + "description": "Statement that the values are no official warning", + "type": "string" + }, + "rawData": { + "description": "Notice that the values are preliminary, unchecked raw data", + "type": "string" + }, + "sourceLine": { + "description": "Credit line of the provider", + "type": "string" + }, + "termsPath": { + "type": "string" + } + }, + "required": [ + "id", + "sourceLine", + "rawData", + "disclaimer", + "noOfficialWarning", + "termsPath" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Present for gauges whose provider demands a notice; show it with any value taken from this gauge" +} - changed
Output schema / requiredPrevious value: -[ - "stationId", - "count", - "summary" -]New value: +[ + "stationId", + "sourceNotice", + "count", + "summary" +]
- Changed
get_station2 fields changed- added
Output schema / properties / sourceNoticeAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "disclaimer": { + "description": "Liability disclaimer", + "type": "string" + }, + "id": { + "type": "string" + }, + "noOfficialWarning": { + "description": "Statement that the values are no official warning", + "type": "string" + }, + "rawData": { + "description": "Notice that the values are preliminary, unchecked raw data", + "type": "string" + }, + "sourceLine": { + "description": "Credit line of the provider", + "type": "string" + }, + "termsPath": { + "type": "string" + } + }, + "required": [ + "id", + "sourceLine", + "rawData", + "disclaimer", + "noOfficialWarning", + "termsPath" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Present for gauges whose provider demands a notice; show it with any value taken from this gauge" +} - changed
Output schema / requiredPrevious value: -[ - "id", - "name", - "water", - "latitude", - "longitude", - "measurementType", - "latestValue", - "unit", - "valueDivisor", - "latestValueCentimeters", - "latestMeasuredAt", - "thresholds", - "floodWarning" -]New value: +[ + "id", + "name", + "water", + "latitude", + "longitude", + "measurementType", + "latestValue", + "unit", + "valueDivisor", + "latestValueCentimeters", + "latestMeasuredAt", + "thresholds", + "floodWarning", + "sourceNotice" +]
- Changed
search_stations4 fields changed- added
Output schema / properties / sourceNoticesAdded value: +{ + "additionalProperties": { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + "description": "Provider notices of the listed gauges by id; a gauge names its own in sourceNoticeId", + "propertyNames": { + "type": "string" + }, + "type": "object" +} - added
Output schema / properties / stations / items / properties / sourceNoticeIdAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Key into sourceNotices; null if none applies" +} - changed
Output schema / properties / stations / items / requiredPrevious value: -[ - "id", - "name", - "water", - "federalState", - "measurementType", - "latestValue", - "unit", - "latestValueCentimeters", - "lhpClass", - "floodWarning" -]New value: +[ + "id", + "name", + "water", + "federalState", + "measurementType", + "latestValue", + "unit", + "latestValueCentimeters", + "lhpClass", + "floodWarning", + "sourceNoticeId" +] - changed
Output schema / requiredPrevious value: -[ - "totalMatches", - "stations" -]New value: +[ + "totalMatches", + "sourceNotices", + "stations" +]
3 tool updates
- Changed
get_flood_situation1 field changed- added
Input schema / properties / localeAdded value: +{ + "description": "Language for classification text (headline/description); defaults to German", + "enum": [ + "de", + "en" + ], + "type": "string" +}
- Changed
get_station1 field changed- added
Input schema / properties / localeAdded value: +{ + "description": "Language for classification text (headline/description); defaults to German", + "enum": [ + "de", + "en" + ], + "type": "string" +}
- Changed
search_stations1 field changed- added
Input schema / properties / localeAdded value: +{ + "description": "Language for classification text (headline/description); defaults to German", + "enum": [ + "de", + "en" + ], + "type": "string" +}
2 tool updates
- Changed
get_station2 fields changed- added
Output schema / properties / floodWarningAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "infoUrl": { + "type": "string" + }, + "level": { + "description": "1 no particular vigilance … 4 exceptional flood", + "type": "number" + }, + "levelLabel": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "providerLabel": { + "description": "Credit line of the warning service", + "type": "string" + }, + "publishedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sectionCode": { + "type": "string" + }, + "sectionName": { + "type": "string" + } + }, + "required": [ + "provider", + "providerLabel", + "sectionCode", + "sectionName", + "level", + "levelLabel", + "publishedAt", + "infoUrl" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "The river section warning this gauge inherits; it describes the reach, not the gauge" +} - changed
Output schema / requiredPrevious value: -[ - "id", - "name", - "water", - "latitude", - "longitude", - "measurementType", - "latestValue", - "unit", - "valueDivisor", - "latestValueCentimeters", - "latestMeasuredAt", - "thresholds" -]New value: +[ + "id", + "name", + "water", + "latitude", + "longitude", + "measurementType", + "latestValue", + "unit", + "valueDivisor", + "latestValueCentimeters", + "latestMeasuredAt", + "thresholds", + "floodWarning" +]
- Changed
search_stations2 fields changed- added
Output schema / properties / stations / items / properties / floodWarningAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "infoUrl": { + "type": "string" + }, + "level": { + "description": "1 no particular vigilance … 4 exceptional flood", + "type": "number" + }, + "levelLabel": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "providerLabel": { + "description": "Credit line of the warning service", + "type": "string" + }, + "publishedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sectionCode": { + "type": "string" + }, + "sectionName": { + "type": "string" + } + }, + "required": [ + "provider", + "providerLabel", + "sectionCode", + "sectionName", + "level", + "levelLabel", + "publishedAt", + "infoUrl" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "The river section warning this gauge inherits; it describes the reach, not the gauge" +} - changed
Output schema / properties / stations / items / requiredPrevious value: -[ - "id", - "name", - "water", - "federalState", - "measurementType", - "latestValue", - "unit", - "latestValueCentimeters", - "lhpClass" -]New value: +[ + "id", + "name", + "water", + "federalState", + "measurementType", + "latestValue", + "unit", + "latestValueCentimeters", + "lhpClass", + "floodWarning" +]
1 tool update
- Changed
search_stations1 field changed- changed
Input schema / properties / federalState / descriptionPrevious value: -"ISO 3166-2 code for a German state, e.g. DE-NW; CH, AT or CZ for a country"New value: +"ISO 3166-2 code for a German state, e.g. DE-NW; CH, AT, CZ, LU or FR for a country"
1 tool update
- Changed
search_stations2 fields changed- changed
Input schema / properties / federalState / descriptionPrevious value: -"ISO 3166-2 code for a German state, e.g. DE-NW; CH or AT for a country"New value: +"ISO 3166-2 code for a German state, e.g. DE-NW; CH, AT or CZ for a country" - changed
Output schema / properties / stations / items / properties / unit / descriptionPrevious value: -"cm for rivers; m ü. NN / m ü. M. for wells and Swiss gauges"New value: +"cm over gauge zero; m ü. NN for wells; the datum unit (m ü. M., m ü. A.) for gauges reporting an absolute elevation"
6 tool updates
- First observed
get_flood_situation - First observed
get_forecast - First observed
get_readings - First observed
get_station - First observed
get_weather - First observed
search_stations
Related MCP Connectors
Real-time water levels and flow rates from USGS stream gauges
UK river levels and rainfall, bathing waters, flood warnings, weather, earthquakes and the GB…
Access UK flood warnings, river levels, water quality, Met Office forecasts, and carbon data
River levels & flood alerts: USGS gauges. $0.01/query. Register in-session — free testnet funds.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides access to real-time and historical water conditions of the Aare river in Switzerland, including water temperature, flow rates, swimming recommendations, and data from multiple monitoring locations along the river.55 npm1GPL 3.0
- AlicenseCqualityAmaintenanceProvides Swiss Aare river swimming data including water temperature, flow rates, safety assessments, and forecasts. Enables AI assistants to answer questions about current conditions, compare cities, and provide safety recommendations based on official BAFU thresholds.424MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to look up official Austrian municipal data by place name, GKZ or coordinates, returning weather forecasts and nowcasts from GeoSphere Austria alongside nearby and current water-level readings from eHYD. Answers come as compact JSON with source attribution, timestamps, licenses and units, plus tools for searching municipalities and checking flood situations by province.MIT
- AlicenseAqualityAmaintenanceKeyless remote MCP server for German public-infrastructure open data: weather, air quality, traffic, public transit, parking and roadworks across 84+ German cities (DWD, Umweltbundesamt, Mobilithek, GovData). 38 read-only tools.1214Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.