German and Swiss river gauges, groundwater and flood levels from ten official sources
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
A Fluvigil API key — create a free account at fluvigil.de and generate one in the account area. The free tier covers this endpoint.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Language for classification text (headline/description); defaults to German
ISO 3166-2 code, e.g. DE-BY
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.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for classification text (headline/description); defaults to German |
| federalState | string | ISO 3166-2 code, e.g. DE-BY |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"locale": {
"enum": [
"de",
"en"
],
"type": "string",
"description": "Language for classification text (headline/description); defaults to German"
},
"federalState": {
"type": "string",
"description": "ISO 3166-2 code, e.g. DE-BY"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| stationId* | string | Namespaced station id, e.g. "lhp:RP_2640010" |
| horizonHours | number | Hours ahead, default 72, capped at 240 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"stationId"
],
"properties": {
"stationId": {
"type": "string",
"description": "Namespaced station id, e.g. \"lhp:RP_2640010\""
},
"horizonHours": {
"type": "number",
"description": "Hours ahead, default 72, capped at 240"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| to | string | ISO 8601 end, defaults to now |
| from | string | ISO 8601 start, e.g. 2026-06-01T00:00:00Z |
| type | string | Series type: level (default) or discharge (m³/s) |
| stationId* | string | Namespaced station id, e.g. "pegelonline:<uuid>" or "lhp:BY_10026301" |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"stationId"
],
"properties": {
"to": {
"type": "string",
"description": "ISO 8601 end, defaults to now"
},
"from": {
"type": "string",
"description": "ISO 8601 start, e.g. 2026-06-01T00:00:00Z"
},
"type": {
"enum": [
"level",
"discharge"
],
"type": "string",
"description": "Series type: level (default) or discharge (m³/s)"
},
"stationId": {
"type": "string",
"description": "Namespaced station id, e.g. \"pegelonline:<uuid>\" or \"lhp:BY_10026301\""
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for classification text (headline/description); defaults to German |
| stationId* | string | Namespaced station id, e.g. "pegelonline:<uuid>" or "lhp:BY_10026301" |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"stationId"
],
"properties": {
"locale": {
"enum": [
"de",
"en"
],
"type": "string",
"description": "Language for classification text (headline/description); defaults to German"
},
"stationId": {
"type": "string",
"description": "Namespaced station id, e.g. \"pegelonline:<uuid>\" or \"lhp:BY_10026301\""
}
}
}Daily weather forecast at the station coordinate (DWD data via Bright Sky).
| Argument | Type | Description |
|---|---|---|
| stationId* | string | Namespaced station id, e.g. "pegelonline:<uuid>" or "lhp:BY_10026301" |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"stationId"
],
"properties": {
"stationId": {
"type": "string",
"description": "Namespaced station id, e.g. \"pegelonline:<uuid>\" or \"lhp:BY_10026301\""
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| query | string | Station or water name, e.g. "Köln" or "Rhein" |
| locale | string | Language for classification text (headline/description); defaults to German |
| waterClass | array | Only gauges of these classes: river, lake (lakes and reservoirs), coast (coast and tide), groundwater; omit for all |
| federalState | string | ISO 3166-2 code for a German state, e.g. DE-NW; CH, AT, CZ, LU or FR for a country |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"query": {
"type": "string",
"description": "Station or water name, e.g. \"Köln\" or \"Rhein\""
},
"locale": {
"enum": [
"de",
"en"
],
"type": "string",
"description": "Language for classification text (headline/description); defaults to German"
},
"waterClass": {
"type": "array",
"items": {
"enum": [
"river",
"lake",
"coast",
"groundwater"
],
"type": "string"
},
"description": "Only gauges of these classes: river, lake (lakes and reservoirs), coast (coast and tide), groundwater; omit for all"
},
"federalState": {
"type": "string",
"description": "ISO 3166-2 code for a German state, e.g. DE-NW; CH, AT, CZ, LU or FR for a country"
}
}
}