Skip to main content
Glama

Pegel-Stammdaten

get_station
Read-onlyIdempotent

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.

Input Schema

NameRequiredDescriptionDefault
localeNoLanguage for classification text (headline/description); defaults to German
stationIdYesNamespaced station id, e.g. "pegelonline:<uuid>" or "lhp:BY_10026301"

Output Schema

NameRequiredDescriptionDefault
idYes
nameYes
unitYes
waterYes
latitudeYes
longitudeYes
thresholdsYes
waterClassYesriver | lake | coast | groundwater — the group the gauge belongs to; measurementType says what it measures
latestValueYesLatest level, in `unit`
floodWarningYesThe river section warning this gauge inherits; it describes the reach, not the gauge
sourceNoticeYesNotice 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
valueDivisorYesDivide any valueCentimeters by this to read it in `unit`
measurementTypeYesriver | groundwater | sea_level | reservoir
latestMeasuredAtYes
latestValueCentimetersYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / waterClass
      Added value: +{
      +  "description": "river | lake | coast | groundwater — the group the gauge belongs to; measurementType says what it measures",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous 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"
      +]
  2. Changed2 schema fields changed
    • changedOutput schema / properties / sourceNotice / anyOf
      Previous 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"
      +  }
      +]
    • changedOutput schema / properties / sourceNotice / description
      Previous 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"
  3. Changed2 schema fields changed
    • addedOutput schema / properties / sourceNotice
      Added 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"
      +}
    • changedOutput schema / required
      Previous 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"
      +]
  4. Changed1 schema field changed
    • addedInput schema / properties / locale
      Added value: +{
      +  "description": "Language for classification text (headline/description); defaults to German",
      +  "enum": [
      +    "de",
      +    "en"
      +  ],
      +  "type": "string"
      +}
  5. Changed2 schema fields changed
    • addedOutput schema / properties / floodWarning
      Added 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"
      +}
    • changedOutput schema / required
      Previous 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"
      +]
  6. First observed

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources