Skip to main content
Glama

DRGSystem — German medical coding catalogs

Kodierrichtlinien durchsuchen

dkr_search
Read-onlyIdempotent

Durchsucht die Deutschen Kodierrichtlinien (DKR) nach Nummer oder Text. Die Treffer stehen in 'items' und enthalten bereits den Volltext der jeweiligen Richtlinie.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoKatalogjahr (z. B. 2026). Leer lassen für das aktuellste verfügbare Jahr.
limitNoMaximale Anzahl Treffer, 1 bis 100. Standard 25.
queryYesSuchbegriff: DKR-Nummer (z. B. 'D002') oder Text der Richtlinie (z. B. 'Hauptdiagnose').

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoKatalogjahr, aus dem alle Daten dieser Antwort stammen.
focusNoDer abgefragte Kode mit allen Detaildaten. Null bei einer Suche und beim Katalog-Einstieg (leerer Kode).
itemsNoDie Kodeliste der Antwort: bei einer Abfrage die direkt untergeordneten Kodes von 'focus' (bzw. die oberste Ebene bei leerem Kode), bei einer Suche die Treffer.
parentsNoÜbergeordnete Kodes von 'focus' als Pfad von der obersten Ebene abwärts (Brotkrumen). Leer bei einer Suche und beim Katalog-Einstieg.
interpretationNoNur bei einer Suche: wie die Suche die Anfrage gelesen hat. Null außerhalb der Suche.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • addedOutput schema / properties / focus / properties / changeNote
      Added value: +{
      +  "description": "Begründung der Änderung aus Anhang B des Jahrgangs, falls InEK sie dort aufführt.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / codes
      Added value: +{
      +  "description": "Kodes, die die Richtlinie nennt, gegen ICD bzw. OPS desselben Jahrgangs aufgelöst — mit Rolle: 'Betrifft' (Regeltext, Tabellen, Schlichtung) oder 'Beispiel' (nur in Beispielen).",
      +  "items": {
      +    "properties": {
      +      "code": {
      +        "description": "Normalisierter Kode.",
      +        "type": "string"
      +      },
      +      "description": {
      +        "description": "Bezeichnung aus dem Katalog desselben Jahrgangs.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "fullCode": {
      +        "description": "Amtliche Schreibweise.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "katalog": {
      +        "description": "Katalog: ICD oder OPS.",
      +        "enum": [
      +          "ATC",
      +          "DRG",
      +          "DKR",
      +          "ICD",
      +          "IcdStats",
      +          "Orphanet",
      +          "OPS",
      +          "OpsStats",
      +          "PEPP",
      +          "ZE",
      +          "KH",
      +          "IcdAlpha",
      +          "SEG4KDE",
      +          "OpsAlpha",
      +          "LG",
      +          "BFW"
      +        ],
      +        "type": "string"
      +      },
      +      "rolle": {
      +        "description": "Rolle in der Richtlinie.",
      +        "enum": [
      +          "Betrifft",
      +          "Abgrenzung",
      +          "Erwaehnt",
      +          "Beispiel"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / focus / properties / icdCount / description
      Previous value: -"Anzahl der ICD-Kodes, die im Text der Richtlinie genannt werden. Die Kodes selbst stehen als Verweise im Text."New value: +"Anzahl der ICD-Kodes, die der Regeltext oder seine Tabellen nennen (ohne Beispiele). Die Kodes selbst stehen als Verweise im Text."
    • addedOutput schema / properties / focus / properties / icdExampleCount
      Added value: +{
      +  "description": "Anzahl der ICD-Kodes, die nur in den Beispielen der Richtlinie vorkommen.",
      +  "type": "integer"
      +}
    • changedOutput schema / properties / focus / properties / opsCount / description
      Previous value: -"Anzahl der OPS-Kodes, die im Text der Richtlinie genannt werden. Die Kodes selbst stehen als Verweise im Text."New value: +"Anzahl der OPS-Kodes, die der Regeltext oder seine Tabellen nennen (ohne Beispiele). Die Kodes selbst stehen als Verweise im Text."
    • addedOutput schema / properties / focus / properties / opsExampleCount
      Added value: +{
      +  "description": "Anzahl der OPS-Kodes, die nur in den Beispielen der Richtlinie vorkommen.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / focus / properties / previousCode
      Added value: +{
      +  "description": "Nummer der Fassung im Vorjahr, mit der verglichen wurde.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / regelereignisse
      Added value: +{
      +  "description": "Regelereignisse, die sich auf diese Richtlinie beziehen — vor allem spätere Entscheidungen des Schlichtungsausschusses, die sie auslegen.",
      +  "items": {
      +    "properties": {
      +      "aktenzeichen": {
      +        "description": "Aktenzeichen oder Nummer in der Quelle.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "aktualisiert": {
      +        "description": "Datum der letzten Überarbeitung durch die Quelle (yyyy-MM-dd).",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "anhaenge": {
      +        "description": "Dokumente der Quelle zu diesem Ereignis, je Fassung mit Geltungsjahren (neueste zuerst).",
      +        "items": {
      +          "properties": {
      +            "groesse": {
      +              "description": "Größe laut Quelle, z. B. '150KB'.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "jahrBis": {
      +              "description": "Letztes Katalogjahr dieser Fassung; null = gilt weiter bzw. unbekannt.",
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "jahrVon": {
      +              "description": "Erstes Katalogjahr dieser Fassung, falls die Quelle es nennt.",
      +              "type": [
      +                "integer",
      +                "null"
      +              ]
      +            },
      +            "titel": {
      +              "description": "Titel des Dokuments.",
      +              "type": "string"
      +            },
      +            "url": {
      +              "description": "Adresse des Dokuments.",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "anwendbarkeit": {
      +        "description": "Nur bei der Prüfung eines Falls: ob das Ereignis für diesen Fall gilt.",
      +        "enum": [
      +          "Gilt",
      +          "NurBeiLaufenderPruefung",
      +          "GiltWegenLaufenderPruefung",
      +          "NachAufnahmeVeroeffentlicht",
      +          "AnderesAufnahmedatum",
      +          "AndererJahrgang",
      +          null
      +        ],
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "fachgebiete": {
      +        "description": "Fachgebiete, die das Ereignis vor allem betrifft (Destatis-Fallverteilung bzw. OPS-Kodebereich). Leer = fachübergreifend.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "geerbtVon": {
      +        "description": "Kode, an dem das Ereignis hängt, wenn es vom übergeordneten Kode geerbt ist (z. B. 'E44' für die Abfrage 'E44.0'). Null, wenn es am abgefragten Kode selbst hängt.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "gilt": {
      +        "description": "Wofür das Ereignis gilt.",
      +        "properties": {
      +          "aufnahmeBis": {
      +            "description": "Gilt für Aufnahmen bis zu diesem Tag (yyyy-MM-dd).",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "aufnahmeVon": {
      +            "description": "Gilt für Aufnahmen ab diesem Tag (yyyy-MM-dd).",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "katalogJahrBis": {
      +            "description": "Letzter Katalogjahrgang, für den das Ereignis gilt. Leer: bis heute.",
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "katalogJahrVon": {
      +            "description": "Erster Katalogjahrgang, für den das Ereignis gilt.",
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "laufendePruefungAm": {
      +            "description": "Gilt außerdem für Rechnungen, die an diesem Stichtag (yyyy-MM-dd) in einer laufenden MD-Prüfung waren — auch wenn die Aufnahme vor 'aufnahmeVon' liegt.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "description": "Kennung des Ereignisses, an 'rules_get' zurückzugeben.",
      +        "type": "string"
      +      },
      +      "kurzfassung": {
      +        "description": "Worum es geht, in ein bis drei Sätzen.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "pruefstatus": {
      +        "description": "Wie die Angaben entstanden sind.",
      +        "enum": [
      +          "Automatisch",
      +          "Ki",
      +          "Geprueft"
      +        ],
      +        "type": "string"
      +      },
      +      "quelle": {
      +        "description": "Art der Quelle.",
      +        "enum": [
      +          "Dkr",
      +          "Schlichtung",
      +          "Klarstellung",
      +          "BfarmFaq",
      +          "Seg4",
      +          "MdRichtlinie",
      +          "Bsg",
      +          "Lsg",
      +          "Foka",
      +          "Verband"
      +        ],
      +        "type": "string"
      +      },
      +      "rolle": {
      +        "description": "Rolle des abgefragten Kodes in diesem Ereignis. Null in Listen ohne Kodebezug.",
      +        "enum": [
      +          "Betrifft",
      +          "Abgrenzung",
      +          "Erwaehnt",
      +          "Beispiel",
      +          null
      +        ],
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "seite": {
      +        "description": "Seite dieses Portals mit dem vollständigen Text, falls vorhanden.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "stellungnahmen": {
      +        "description": "Positionen Dritter, z. B. FoKA: Konsens / Dissens. Ein Dissens heißt: die Frage ist zwischen MD und Krankenhäusern umstritten.",
      +        "items": {
      +          "properties": {
      +            "position": {
      +              "description": "Position: 'Konsens', 'Konsens mit Kommentar', 'Dissens'.",
      +              "type": "string"
      +            },
      +            "stand": {
      +              "description": "Stand der Position (yyyy-MM-dd), falls angegeben.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "url": {
      +              "description": "Seite mit der Stellungnahme.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "von": {
      +              "description": "Wer Stellung nimmt, z. B. 'FoKA'.",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "titel": {
      +        "description": "Titel, wie ihn die Quelle führt.",
      +        "type": "string"
      +      },
      +      "url": {
      +        "description": "Adresse der Originalquelle.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "verbindlichkeit": {
      +        "description": "Für wen das Ereignis bindend ist.",
      +        "enum": [
      +          "Amtlich",
      +          "FuerAlle",
      +          "FuerMd",
      +          "Rechtsprechung",
      +          "Meinung"
      +        ],
      +        "type": "string"
      +      },
      +      "veroeffentlicht": {
      +        "description": "Datum der Veröffentlichung (yyyy-MM-dd).",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "volltext": {
      +        "description": "Wortlaut der Quelle in Abschnitten. In Listen nur, wenn er kurz ist; sonst null und VolltextZeichen gibt die Länge an — vollständig über Rules/Get.",
      +        "items": {
      +          "properties": {
      +            "text": {
      +              "description": "Text unverändert; Absätze durch Leerzeilen, «### » Zwischenüberschrift, «- » Aufzählung, «| » Tabellenzeile.",
      +              "type": "string"
      +            },
      +            "titel": {
      +              "description": "Überschrift des Abschnitts, wie in der Quelle.",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "volltextZeichen": {
      +        "description": "Länge des Wortlauts in Zeichen, wenn er in der Liste nicht mitgeliefert wird.",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / schlichtung
      Added value: +{
      +  "description": "Entscheidungen des Schlichtungsausschusses Bund, die in dieser Richtlinie abgedruckt sind. Sie sind für Krankenhäuser, Kassen und MD verbindlich.",
      +  "items": {
      +    "properties": {
      +      "kde": {
      +        "description": "Nummer der SEG-4-Kodierempfehlung (KDE), zu der entschieden wurde. Null, wenn die Entscheidung keine KDE betrifft.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "published": {
      +        "description": "Datum der Veröffentlichung der Entscheidung (yyyy-MM-dd).",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / textChanges
      Added value: +{
      +  "description": "Änderungen des Wortlauts gegenüber der Fassung des Vorjahres: nur die geänderten Absätze, je als Paar vorher/nachher (Verweise im Text zählen nicht). Null, wenn der Wortlaut gleich ist oder es kein Vorjahr gibt.",
      +  "items": {
      +    "properties": {
      +      "after": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "before": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / versions
      Added value: +{
      +  "description": "Fassungen dieser Richtlinie über die Jahrgänge: dieselbe Nummer mit wechselndem Versionsbuchstaben (D003l … D003u).",
      +  "items": {
      +    "properties": {
      +      "code": {
      +        "description": "Nummer mit Versionsbuchstaben in diesem Jahrgang.",
      +        "type": "string"
      +      },
      +      "year": {
      +        "description": "Jahrgang der DKR.",
      +        "type": "integer"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
  2. Changed4 schema fields changed
    • removedOutput schema / properties / focus / properties / descriptionHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / focus / properties / matchedTermHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / items / items / properties / descriptionHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / items / items / properties / matchedTermHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
  3. Changed19 schema fields changed
    • changedOutput schema / properties / focus / properties / descriptionHighlight / description
      Previous value: -"Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description'. Über MCP immer null."New value: +"Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null."
    • addedOutput schema / properties / focus / properties / groupCode
      Added value: +{
      +  "description": "Nur bei einer Suche: die Rubrik, unter der die Suche diesen Treffer einordnet — beim ICD die dreistellige Kategorie, beim OPS der vierstellige Kode. Die Liste bleibt flach; wer mag, gruppiert danach. Null außerhalb der Suche.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / icdCount
      Added value: +{
      +  "description": "Anzahl der ICD-Kodes, die im Text der Richtlinie genannt werden. Die Kodes selbst stehen als Verweise im Text.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / focus / properties / isGroupHeader
      Added value: +{
      +  "description": "Nur bei einer Suche: True, wenn diese Zeile die Rubrik selbst ist und die folgenden Zeilen mit gleichem 'groupCode' ihre Kodes sind.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / focus / properties / isSemanticMatch
      Added value: +{
      +  "description": "Nur bei einer Suche: True, wenn kein Wort der Anfrage diesen Kode erreicht hat und er über die Bedeutung gefunden wurde. Dann gibt es nichts hervorzuheben.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / focus / properties / matchedTerm
      Added value: +{
      +  "description": "Nur bei einer Suche: die Formulierung, über die der Treffer gefunden wurde, wenn sie etwas sagt, was 'description' nicht sagt — etwa der Eintrag des Alphabetischen Verzeichnisses, unter dem der Kode nachgewiesen ist. Null, wenn der Treffer sich aus der Bezeichnung selbst erklärt.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / matchedTermHighlight
      Added value: +{
      +  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      +  "items": {
      +    "type": "number"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / opsCount
      Added value: +{
      +  "description": "Anzahl der OPS-Kodes, die im Text der Richtlinie genannt werden. Die Kodes selbst stehen als Verweise im Text.",
      +  "type": "integer"
      +}
    • changedOutput schema / properties / focus / properties / treeDepth / description
      Previous value: -"Nur wenn die Liste ein aufgeklapptes Teilbaum-Listing ist: Tiefe dieser Zeile innerhalb der Liste (0 = direkt unter dem abgefragten Kode, 1 = dessen Kind usw.). Null bedeutet, dass die Zeilen der Liste in keinem Über-/Unterordnungsverhältnis zueinander stehen — etwa bei einer Suche."New value: +"Nur wenn die Liste ein aufgeklapptes Teilbaum-Listing ist: Tiefe dieser Zeile innerhalb der Liste (0 = direkt unter dem abgefragten Kode, 1 = dessen Kind usw.). Bei einer Suche null — dort sagt 'groupCode', wohin eine Zeile gehört, und die Gliederung entsteht durch Blöcke statt durch Einrückung."
    • addedOutput schema / properties / interpretation
      Added value: +{
      +  "description": "Nur bei einer Suche: wie die Suche die Anfrage gelesen hat. Null außerhalb der Suche.",
      +  "properties": {
      +    "detectedCode": {
      +      "description": "Im Suchtext erkannte Schlüsselnummer, normalisiert (z. B. 'I219', '5820'). Null, wenn die Anfrage nur Text war.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "expandedTerms": {
      +      "description": "Aufgelöste Abkürzungen, mit denen zusätzlich gesucht wurde — etwa 'KHK' auch als 'Koronare Herzkrankheit'.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "usedSemanticSearch": {
      +      "description": "True, wenn die Wortsuche keinen sicheren Treffer hatte und zusätzlich nach Bedeutung gesucht wurde.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / items / items / properties / descriptionHighlight / description
      Previous value: -"Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description'. Über MCP immer null."New value: +"Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'description' — wie wörtlich die Suchanfrage das jeweilige Wort getroffen hat. 1,00 das Wort selbst, 0,75 eine Wortform oder ein Präfix, 0,50 ein Bestandteil eines zusammengesetzten Wortes, 0,25 ein Synonym oder ein korrigierter Tippfehler. Null, wenn die Anfrage diesen Text nicht berührt hat. Über MCP immer null."
    • addedOutput schema / properties / items / items / properties / groupCode
      Added value: +{
      +  "description": "Nur bei einer Suche: die Rubrik, unter der die Suche diesen Treffer einordnet — beim ICD die dreistellige Kategorie, beim OPS der vierstellige Kode. Die Liste bleibt flach; wer mag, gruppiert danach. Null außerhalb der Suche.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / icdCount
      Added value: +{
      +  "description": "Anzahl der ICD-Kodes, die im Text der Richtlinie genannt werden. Die Kodes selbst stehen als Verweise im Text.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / items / items / properties / isGroupHeader
      Added value: +{
      +  "description": "Nur bei einer Suche: True, wenn diese Zeile die Rubrik selbst ist und die folgenden Zeilen mit gleichem 'groupCode' ihre Kodes sind.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / items / items / properties / isSemanticMatch
      Added value: +{
      +  "description": "Nur bei einer Suche: True, wenn kein Wort der Anfrage diesen Kode erreicht hat und er über die Bedeutung gefunden wurde. Dann gibt es nichts hervorzuheben.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / items / items / properties / matchedTerm
      Added value: +{
      +  "description": "Nur bei einer Suche: die Formulierung, über die der Treffer gefunden wurde, wenn sie etwas sagt, was 'description' nicht sagt — etwa der Eintrag des Alphabetischen Verzeichnisses, unter dem der Kode nachgewiesen ist. Null, wenn der Treffer sich aus der Bezeichnung selbst erklärt.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / matchedTermHighlight
      Added value: +{
      +  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'matchedTerm', gleiche Skala wie 'descriptionHighlight'. Über MCP immer null.",
      +  "items": {
      +    "type": "number"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / opsCount
      Added value: +{
      +  "description": "Anzahl der OPS-Kodes, die im Text der Richtlinie genannt werden. Die Kodes selbst stehen als Verweise im Text.",
      +  "type": "integer"
      +}
    • changedOutput schema / properties / items / items / properties / treeDepth / description
      Previous value: -"Nur wenn die Liste ein aufgeklapptes Teilbaum-Listing ist: Tiefe dieser Zeile innerhalb der Liste (0 = direkt unter dem abgefragten Kode, 1 = dessen Kind usw.). Null bedeutet, dass die Zeilen der Liste in keinem Über-/Unterordnungsverhältnis zueinander stehen — etwa bei einer Suche."New value: +"Nur wenn die Liste ein aufgeklapptes Teilbaum-Listing ist: Tiefe dieser Zeile innerhalb der Liste (0 = direkt unter dem abgefragten Kode, 1 = dessen Kind usw.). Bei einer Suche null — dort sagt 'groupCode', wohin eine Zeile gehört, und die Gliederung entsteht durch Blöcke statt durch Einrückung."
  4. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint). The description adds useful non-obvious context: hits are returned in the 'items' field and already contain the full guideline text, signaling that no follow-up fetch is needed. It does not discuss pagination or rate behavior.

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?

Two sentences, front-loaded with the core action, and the second sentence carries the useful return-shape note. No filler.

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?

For a read-only search with a fully documented schema, an output schema, and annotations, the description is nearly complete. Its only gap is guidance on search-vs-fetch (dkr_get) selection, which is minor given the tool's simple complexity.

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 year, limit, and query all described (including examples and defaults). The description's mention of 'Nummer oder Text' mirrors the schema's query description and adds no meaning beyond it, so baseline 3 applies.

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?

States a specific verb (Durchsucht) and resource (Deutsche Kodierrichtlinien) plus the searchable scope (Nummer oder Text), which is clear. It does not explicitly contrast with the sibling dkr_get, so it falls short of full sibling differentiation.

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?

Usage is implied — search by guideline number or free text — but there is no explicit when-to-use guidance and no mention of the dkr_get alternative for fetching a single guideline. The reader must infer the search-vs-get boundary.

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