Skip to main content
Glama

DRGSystem — German medical coding catalogs

OPS durchsuchen

ops_search
Read-onlyIdempotent

Durchsucht den OPS (Operationen- und Prozedurenschlüssel) — der erste Griff für jede Frage nach einer Prozedur, gleich ob Kode, Fachbegriff, Abkürzung oder Tippfehler ('5-820', 'Appendektomie', 'Hüft-TEP', 'appendektomi'). Durchsucht neben den amtlichen Bezeichnungen auch das Alphabetische Verzeichnis, das rund 48.000 weitere Formulierungen kennt. Die Treffer stehen in 'items', sind flach nach Relevanz geordnet und enthalten die Kodier-Kennzeichen (Seitenangabe erforderlich, Zusatzkode, Einmalkode, Alters- und Geschlechtsbezug), die Angaben zum ambulanten Operieren nach § 115b SGB V, die OPS-Strukturprüfung sowie DKR- und SEG-4-Verweise. Gezeigt werden nur endständige, kodierbare Kodes — ein vierstelliger Kode mit Unterkodes ist eine Überschrift, kodiert wird der fünf- oder sechsstellige darunter. 'groupCode' nennt die vierstellige Rubrik, unter der ein Treffer einsortiert ist; 'matchedTerm' die Formulierung, unter der der Kode nachgewiesen ist, wenn die amtliche Bezeichnung den Treffer nicht selbst erklärt; 'interpretation' sagt, wie die Anfrage gelesen wurde. Für alle Angaben zu einem einzelnen Kode anschließend ops_get aufrufen. [EN] The first tool for any procedure question — codes, clinical terms, abbreviations and misspellings all go here; it searches the alphabetical index as well as the official titles. Only codable (terminal) codes are returned: a four-character code with children is a heading, never an answer.

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: OPS-Kode (z. B. '5-470', '5470', '5-820.00') oder Prozedurtext (z. B. 'Appendektomie', 'Endoprothese Hüftgelenk').

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. Changed8 schema fields changed
    • removedOutput schema / properties / focus / properties / alphaEntries / properties / value / items / properties / code
      Removed value: -{
      -  "description": "Fortlaufende Satznummer des BfArM innerhalb des Alphabetischen Verzeichnisses. Kein OPS-Kode.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / focus / properties / alphaEntries / properties / value / items / properties / textHighlight
      Removed value: -{
      -  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'text' — 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 außerhalb einer Textsuche. Über MCP immer null.",
      -  "items": {
      -    "type": "number"
      -  },
      -  "type": [
      -    "array",
      -    "null"
      -  ]
      -}
    • 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 / focus / properties / ownTitle
      Removed value: -{
      -  "description": "Titel dieser Stelle allein, ohne die Titel der übergeordneten Stellen: bei 5-820.00 also 'Nicht zementiert' statt der zusammengesetzten Bezeichnung.",
      -  "type": [
      -    "string",
      -    "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"
      -  ]
      -}
    • removedOutput schema / properties / items / items / properties / ownTitle
      Removed value: -{
      -  "description": "Titel dieser Stelle allein, ohne die Titel der übergeordneten Stellen: bei 5-820.00 also 'Nicht zementiert' statt der zusammengesetzten Bezeichnung. Null bei Kapiteln und Bereichen.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
  2. Changed5 schema fields changed
    • addedOutput schema / properties / focus / properties / statistics
      Added value: +{
      +  "description": "Wie oft der Kode in deutschen Krankenhäusern erbracht wird (Destatis, DRG-Statistik) — gezählt werden Operationen und Prozeduren, nicht Fälle, hier mit der Aufteilung nach Altersgruppen. Bereichsüberschriften und Kapitel tragen die Summe ihrer Viersteller, Fünf- und Sechssteller die Zahlen ihres Vierstellers; welcher Fall vorliegt, sagt 'scope'. Der Jahrgang ist das Datenjahr der Statistik und hinkt dem Katalog hinterher.",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "description": "Der eigentliche Wert.",
      +      "properties": {
      +        "ageGroups": {
      +          "description": "Aufteilung nach Altersgruppen, aufsteigend. Nur in der Detailansicht eines einzelnen Kodes; in Listen null.",
      +          "items": {
      +            "properties": {
      +              "female": {
      +                "description": "Davon bei weiblichen Patienten.",
      +                "type": "integer"
      +              },
      +              "fromYears": {
      +                "description": "Untergrenze der Altersgruppe in Jahren, einschließlich.",
      +                "type": "integer"
      +              },
      +              "label": {
      +                "description": "Beschriftung der Altersgruppe, wie sie der Bericht führt.",
      +                "type": "string"
      +              },
      +              "male": {
      +                "description": "Davon bei männlichen Patienten.",
      +                "type": "integer"
      +              },
      +              "procedures": {
      +                "description": "Operationen und Prozeduren in dieser Altersgruppe.",
      +                "type": "integer"
      +              },
      +              "toYears": {
      +                "description": "Obergrenze der Altersgruppe in Jahren, ausschließlich. Null bei der offenen obersten Gruppe.",
      +                "type": [
      +                  "integer",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": [
      +            "array",
      +            "null"
      +          ]
      +        },
      +        "code": {
      +          "description": "Der Kode, für den die Zahlen gelten. Weicht er vom abgefragten Kode ab, stammen sie vom vierstelligen Obercode.",
      +          "type": "string"
      +        },
      +        "female": {
      +          "description": "Davon bei weiblichen Patienten.",
      +          "type": "integer"
      +        },
      +        "male": {
      +          "description": "Davon bei männlichen Patienten.",
      +          "type": "integer"
      +        },
      +        "procedures": {
      +          "description": "Anzahl der Operationen und Prozeduren im Datenjahr. Gezählt werden Prozeduren, nicht Fälle.",
      +          "type": "integer"
      +        },
      +        "rank": {
      +          "description": "Rang nach Anzahl unter allen Kodes derselben Katalogebene (1 = am häufigsten). 0, wenn kein Rang gebildet wird.",
      +          "type": "integer"
      +        },
      +        "rankTotal": {
      +          "description": "Anzahl der Kodes derselben Katalogebene, unter denen der Rang gebildet ist.",
      +          "type": "integer"
      +        },
      +        "scope": {
      +          "description": "Worauf sich die Zahlen beziehen: 'Code' = der vierstellige Kode selbst, 'Subtree' = zusammengezählt über alle Viersteller unter dieser Bereichsüberschrift oder diesem Kapitel, 'Parent' = der vierstellige Obercode, weil die Statistik feiner nicht aufteilt.",
      +          "enum": [
      +            "Code",
      +            "Subtree",
      +            "Parent"
      +          ],
      +          "type": "string"
      +        },
      +        "shareOfYear": {
      +          "description": "Anteil an allen Operationen und Prozeduren des Datenjahres, zwischen 0 und 1.",
      +          "type": "number"
      +        },
      +        "unknown": {
      +          "description": "Davon ohne Geschlechtsangabe — die Differenz zwischen Gesamtwert und den beiden Geschlechtern. Meist 0.",
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / zusatzentgeltCodes
      Added value: +{
      +  "description": "Zusatzentgelte, die dieser Kode auslöst — weil der Zusatzentgelte-Katalog ihn listet oder einen übergeordneten Kode mit '*)' für alle Subkodes. Nur die Kodes in amtlicher Schreibweise (z. B. 'ZE105.01'); Betrag, Kombinationspartner und Fußnoten liefert die Detailabfrage.",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "description": "Der eigentliche Wert.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / zusatzentgelte
      Added value: +{
      +  "description": "Zusatzentgelte, die an diesem Kode hängen, mit Betrag, Art der Verbindung, Kombinationspartnern und den Fußnoten, die über die Abrechenbarkeit entscheiden. Bei Vierstellern und nicht endständigen Fünfstellern auch die Zusatzentgelte, die erst ihre Subkodes auslösen ('match' = 'Subcode').",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "description": "Der eigentliche Wert.",
      +      "items": {
      +        "properties": {
      +          "allowedDrgCount": {
      +            "description": "Anzahl der Fallpauschalen, neben denen das Zusatzentgelt allein abrechenbar ist (Anlage 8). 0, wenn es keine solche Beschränkung gibt.",
      +            "type": "integer"
      +          },
      +          "combinedWith": {
      +            "description": "Kombinationspartner nach der Fußnote 'Nur abrechenbar in Kombination mit einem der grau hinterlegten OPS-Kodes': für einen grau hinterlegten Kode die Hauptprozeduren, für eine Hauptprozedur die grau hinterlegten Kodes. Null, wenn das Zusatzentgelt keine solche Kombination verlangt.",
      +            "items": {
      +              "$ref": "#/properties/focus/properties/zusatzentgelte/properties/value/items/properties/matchedOps/items"
      +            },
      +            "type": [
      +              "array",
      +              "null"
      +            ]
      +          },
      +          "footnotes": {
      +            "description": "Fußnoten des Katalogs zu diesem Zusatzentgelt und seinem übergeordneten Zusatzentgelt im Volltext — Altersgrenzen, Mindestverweildauer, Schwellenwerte, Kombinationspflichten.",
      +            "items": {
      +              "properties": {
      +                "marker": {
      +                  "description": "Fußnotenzeichen, wie es im Katalog abgedruckt ist, ohne schließende Klammer (z. B. '6', '*').",
      +                  "type": "string"
      +                },
      +                "scope": {
      +                  "description": "Katalogblatt, zu dem der Fußnotenblock gehört (z. B. 'Deckblatt', 'Anlage 5'). Fußnotenzeichen sind nur innerhalb ihres Blocks eindeutig.",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "text": {
      +                  "description": "Text der Fußnote.",
      +                  "type": "string"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "groupDescription": {
      +            "description": "Titel des übergeordneten Zusatzentgelts.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "groupFullCode": {
      +            "description": "Kode des übergeordneten Zusatzentgelts, wenn 'zusatzentgelt' eine Unterposition ist (z. B. 'ZE105' zu ZE105.01). Der Titel einer Unterposition ('1 Metallspirale') ist ohne ihn nicht verständlich.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "icd": {
      +            "description": "Alle dem Zusatzentgelt zugeordneten ICD-Kodes (Anlage 7). Leer bei den meisten Zusatzentgelten.",
      +            "items": {
      +              "$ref": "#/properties/focus/properties/zusatzentgelte/properties/value/items/properties/matchedIcd/items"
      +            },
      +            "type": "array"
      +          },
      +          "isBillable": {
      +            "description": "True, wenn 'zusatzentgelt' selbst abgerechnet wird; false bei einer Überschrift, unter der die abrechenbare Unterposition nach Menge oder Dosis zu wählen ist.",
      +            "type": "boolean"
      +          },
      +          "match": {
      +            "description": "Wie der abgefragte Kode mit dem Zusatzentgelt verbunden ist: 'Code' = genau dieser Kode ist gelistet, 'Pattern' = der Katalog druckt ein Muster mit '*' (je Stern eine beliebige Stelle), auf das dieser Kode passt, 'Subcode' = Subkodes dieses Kodes sind gelistet.",
      +            "enum": [
      +              "Code",
      +              "Pattern",
      +              "Subcode"
      +            ],
      +            "type": "string"
      +          },
      +          "matchedIcd": {
      +            "description": "Die in Anlage 7 gelisteten ICD-Kodes, über die die Verbindung zustande kommt — bei einer OPS-Abfrage leer.",
      +            "items": {
      +              "properties": {
      +                "code": {
      +                  "description": "Normalisierter Schlüssel des ICD-Kodes, wie er an die ICD-Funktionen zurückzugeben ist (z. B. 'D6800').",
      +                  "type": "string"
      +                },
      +                "fullCode": {
      +                  "description": "Der ICD-Kode in amtlicher Schreibweise (z. B. 'D68.00').",
      +                  "type": "string"
      +                },
      +                "text": {
      +                  "description": "Der Text, wie ihn der Zusatzentgelte-Katalog abdruckt.",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "matchedOps": {
      +            "description": "Die im Zusatzentgelte-Katalog gelisteten OPS-Kodes, über die die Verbindung zustande kommt — bei einer ICD-Abfrage leer.",
      +            "items": {
      +              "properties": {
      +                "appliesToAllSubcodes": {
      +                  "description": "True, wenn der Katalog ein Muster mit '*' druckt, das mehrere fünf- oder sechsstellige Kodes erfasst — siehe 'pattern'.",
      +                  "type": "boolean"
      +                },
      +                "code": {
      +                  "description": "Normalisierter Schlüssel des OPS-Kodes, wie er an die OPS-Funktionen zurückzugeben ist (z. B. '8836n1'). Bei einem Muster mit '*' der feste Teil davor — der Kode, unter dem alle erfassten Kodes liegen (bei 8-826.*2 also '8826').",
      +                  "type": "string"
      +                },
      +                "fullCode": {
      +                  "description": "Der OPS-Kode in amtlicher Schreibweise, bei einem Muster mit '*' wie gedruckt (z. B. '8-836.n1', '8-826.*2').",
      +                  "type": "string"
      +                },
      +                "highlighted": {
      +                  "description": "True, wenn der Kode im Katalog grau hinterlegt ist. Graue Kodes sind die Kombinationspartner der Anlage-5-Fußnote 'Nur abrechenbar in Kombination mit einem der grau hinterlegten OPS-Kodes'.",
      +                  "type": "boolean"
      +                },
      +                "pattern": {
      +                  "description": "Normalisiertes Muster, wenn der Katalog statt eines Kodes ein Muster druckt: jedes '*' steht für genau eine beliebige Stelle (z. B. '8826*2' für 8-826.*2 = 8-826.02, 8-826.12). Erfasst sind alle Kodes, deren Anfang auf das Muster passt. Null bei einem einzelnen Kode.",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "text": {
      +                  "description": "Der Text, wie ihn der Zusatzentgelte-Katalog abdruckt — vom InEK gekürzt, nicht der vollständige OPS-Titel.",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "ops": {
      +            "description": "Alle OPS-Kodes, die das Zusatzentgelt auslösen. Bei einer ICD-Abfrage die Prozeduren, die zur Diagnose hinzukommen müssen.",
      +            "items": {
      +              "$ref": "#/properties/focus/properties/zusatzentgelte/properties/value/items/properties/matchedOps/items"
      +            },
      +            "type": "array"
      +          },
      +          "priceMax": {
      +            "description": "Größter Betrag der Unterpositionen in Euro, siehe 'priceMin'.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "priceMin": {
      +            "description": "Kleinster Betrag der Unterpositionen in Euro, wenn das Zusatzentgelt selbst keinen Betrag trägt (gestaffelt nach Menge oder Dosis). Bei 'match' = 'Subcode' nur über die Unterpositionen, die dieser Kode auslöst.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "subpositionCount": {
      +            "description": "Anzahl der Unterpositionen, die hier zusammengefasst sind (nur bei 'match' = 'Subcode'); sonst 0.",
      +            "type": "integer"
      +          },
      +          "zusatzentgelt": {
      +            "description": "Das Zusatzentgelt mit Betrag. Bei 'match' = 'Subcode' mit mehreren Unterpositionen ist es das übergeordnete Zusatzentgelt (z. B. ZE105 statt ZE105.01).",
      +            "properties": {
      +              "code": {
      +                "description": "Normalisierter Schlüssel ohne Trennzeichen, wie er für Abfragen und URLs verwendet wird (z. B. 'A010' für den ICD-Kode A01.0). Dieser Wert ist als 'code' an alle Katalog-Funktionen zurückzugeben.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "description": {
      +                "description": "Amtlicher Titel des Kodes (Diagnose-, Prozedur- bzw. Entgeltbezeichnung).",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "fullCode": {
      +                "description": "Der Kode in der amtlichen Schreibweise, wie er dem Anwender angezeigt und in Dokumenten kodiert wird (z. B. 'A01.0', '5-470.0').",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "price": {
      +                "description": "Bundeseinheitlicher Betrag des Zusatzentgelts in Euro. Null bei unbewerteten Zusatzentgelten oder wenn der Katalog einen Verweis abdruckt.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "priceNote": {
      +                "description": "Wortlaut der Betragsspalte, wenn dort statt einer Zahl ein Verweis steht (z. B. 'siehe Anlage 5').",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "description": "Herkunft des Zusatzentgelts: 'Bewertet' = mit bundeseinheitlichem Betrag, 'Unbewertet' = krankenhausindividuell zu vereinbaren.",
      +                "enum": [
      +                  "Undefined",
      +                  "Bewertet",
      +                  "Unbewertet"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / statistics
      Added value: +{
      +  "description": "Wie oft der Kode in deutschen Krankenhäusern erbracht wird (Destatis, DRG-Statistik) — gezählt werden Operationen und Prozeduren, nicht Fälle. Bereichsüberschriften und Kapitel tragen die Summe ihrer Viersteller, Fünf- und Sechssteller die Zahlen ihres Vierstellers; welcher Fall vorliegt, sagt 'scope'. Der Jahrgang ist das Datenjahr der Statistik und hinkt dem Katalog hinterher.",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "$ref": "#/properties/focus/properties/statistics/properties/value",
      +      "description": "Der eigentliche Wert."
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / zusatzentgeltCodes
      Added value: +{
      +  "description": "Zusatzentgelte, die dieser Kode auslöst — weil der Zusatzentgelte-Katalog ihn listet oder einen übergeordneten Kode mit '*)' für alle Subkodes. Nur die Kodes in amtlicher Schreibweise (z. B. 'ZE105.01'); Betrag, Kombinationspartner und Fußnoten liefert die Detailabfrage.",
      +  "properties": {
      +    "sourceYear": {
      +      "description": "Jahrgang des Katalogs, aus dem der Wert stammt. Weicht er vom abgefragten Jahr ab, liegen für das abgefragte Jahr noch keine Daten vor und es wird der letzte verfügbare Jahrgang gezeigt.",
      +      "type": "integer"
      +    },
      +    "value": {
      +      "$ref": "#/properties/focus/properties/zusatzentgeltCodes/properties/value",
      +      "description": "Der eigentliche Wert.",
      +      "items": {}
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  3. Changed15 schema fields changed
    • addedOutput schema / properties / focus / properties / abbreviations
      Added value: +{
      +  "description": "Abkürzungen aus dem amtlichen Abkürzungsverzeichnis des OPS, die im Text dieses Kodes vorkommen, mit ihrer Auflösung.",
      +  "items": {
      +    "properties": {
      +      "abbreviation": {
      +        "description": "Abkürzung, wie im amtlichen Verzeichnis geschrieben.",
      +        "type": "string"
      +      },
      +      "meaning": {
      +        "description": "Auflösung der Abkürzung.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / appendices
      Added value: +{
      +  "description": "Anhänge des Systematischen Verzeichnisses, die zu diesem Kode gehören — die Tabellen, aus denen sich Aufwandspunkte bzw. anrechenbare Therapieeinheiten errechnen.",
      +  "items": {
      +    "properties": {
      +      "codePrefixes": {
      +        "description": "Kodes, zu denen dieser Anhang gehört, als Präfix (z. B. '8-980').",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "description": "Kennung des Anhangs, z. B. 'aufwandspunkte-erwachsene'.",
      +        "type": "string"
      +      },
      +      "intro": {
      +        "description": "Erläuternder Text vor den Tabellen.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "tables": {
      +        "description": "Die Tabellen des Anhangs.",
      +        "items": {
      +          "properties": {
      +            "caption": {
      +              "description": "Tabellenüberschrift.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "footnote": {
      +              "description": "Fußnoten unter der Tabelle.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "rows": {
      +              "description": "Zeilen der Tabelle; die erste ist in der Regel die Kopfzeile.",
      +              "items": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "type": "array"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "title": {
      +        "description": "Überschrift des Anhangs.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / branch
      Added value: +{
      +  "description": "Der Dreisteller, unter dem dieser Kode steht, samt der Hinweise, die für den ganzen Zweig gelten.",
      +  "properties": {
      +    "code": {
      +      "description": "Dreisteller in amtlicher Schreibweise, z. B. '5-82'.",
      +      "type": "string"
      +    },
      +    "description": {
      +      "description": "Titel des Dreistellers.",
      +      "type": "string"
      +    },
      +    "rubrics": {
      +      "description": "Hinweise und Exklusiva, die für den ganzen Zweig gelten und damit auch für diesen Kode.",
      +      "items": {
      +        "$ref": "#/properties/focus/properties/rubrics/items"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / edition
      Added value: +{
      +  "description": "Die Ausgabe, aus der dieser Kode stammt: Version, Stand, OID und Urheberrechtsvermerk des Herausgebers.",
      +  "properties": {
      +    "copyright": {
      +      "description": "Urheberrechtsvermerk des Herausgebers.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "date": {
      +      "description": "Stand der Klassifikationsdateien.",
      +      "format": "date",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "isPreliminary": {
      +      "description": "Vorabfassung (noch nicht endgültig).",
      +      "type": "boolean"
      +    },
      +    "oid": {
      +      "description": "OID der Klassifikation.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "title": {
      +      "description": "Kurztitel, z. B. 'OPS'.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "titleLong": {
      +      "description": "Langtitel, z. B. 'Operationen- und Prozedurenschlüssel'.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "version": {
      +      "description": "Version, z. B. '2026'.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / hasCodingGuidance
      Added value: +{
      +  "description": "True, wenn für diesen Jahrgang die amtliche ClaML-Fassung vorliegt — nur sie führt Inklusiva, Exklusiva und Hinweise. False bei einer Vorabfassung: dann sagt eine leere Kodieranleitung nichts über den Kode aus, sondern nur über den Stand der Veröffentlichung.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / focus / properties / khgValidity
      Added value: +{
      +  "description": "Geltungsbereich nach dem Krankenhausfinanzierungsgesetz: 'Drg' = nur § 17b (DRG-System), 'Pepp' = nur § 17d (PEPP-System), 'Both' = beide (Regelfall), 'Neither' = in keinem der beiden Systeme zu verwenden.",
      +  "enum": [
      +    "Drg",
      +    "Pepp",
      +    "Both",
      +    "Neither"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / focus / properties / modifiers
      Added value: +{
      +  "description": "Subklassifikationslisten, aus denen die nächste Stelle dieses Kodes gebildet wird. Leer, wenn der Kode seine Subkodes selbst ausschreibt.",
      +  "items": {
      +    "properties": {
      +      "isRestricted": {
      +        "description": "True, wenn die Liste für diesen Kode eingeschränkt ist — dann sind nicht alle ihre Werte kombinierbar.",
      +        "type": "boolean"
      +      },
      +      "note": {
      +        "description": "Einleitungssatz der Subklassifikationsliste; er nennt die belegte Stelle und was sie kodiert.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "values": {
      +        "description": "Die Werte der Liste in amtlicher Reihenfolge, beschränkt auf die für diesen Kode zulässigen.",
      +        "items": {
      +          "properties": {
      +            "code": {
      +              "description": "Zeichen an der belegten Stelle, z. B. '0' oder 'x'.",
      +              "type": "string"
      +            },
      +            "description": {
      +              "description": "Bedeutung des Zeichens, z. B. 'Offen chirurgisch abdominal'.",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / ownTitle
      Added value: +{
      +  "description": "Titel dieser Stelle allein, ohne die Titel der übergeordneten Stellen: bei 5-820.00 also 'Nicht zementiert' statt der zusammengesetzten Bezeichnung.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / referencedBy
      Added value: +{
      +  "description": "Kodes, die auf diesen Kode verweisen — die Gegenrichtung der Verweise in den Rubriken. Wer sie nicht kennt, übersieht, dass ein anderer Kode die Angabe dieses Kodes verlangt.",
      +  "items": {
      +    "$ref": "#/properties/focus/properties/rubrics/items/properties/references/items"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / focus / properties / rubrics
      Added value: +{
      +  "description": "Was der Katalog zu diesem Kode sagt: Inklusiva, Exklusiva und Hinweise, mit aufgelösten Verweisen.",
      +  "items": {
      +    "properties": {
      +      "kind": {
      +        "description": "Art der Rubrik: 'Inclusion' = Inklusivum (gehört zu diesem Kode), 'Exclusion' = Exklusivum (anderswo zu kodieren), 'Note' = Hinweis, 'PreferredLong' = ausführlicher Titel.",
      +        "enum": [
      +          "None",
      +          "Inclusion",
      +          "Exclusion",
      +          "Note",
      +          "PreferredLong",
      +          "Text"
      +        ],
      +        "type": "string"
      +      },
      +      "references": {
      +        "description": "Kodes, auf die diese Rubrik verweist, mit ihrer Bezeichnung.",
      +        "items": {
      +          "properties": {
      +            "code": {
      +              "description": "Kode in der Schreibweise, mit der er im Katalog nachgeschlagen wird.",
      +              "type": "string"
      +            },
      +            "description": {
      +              "description": "Bezeichnung des verwiesenen Kodes. Null, wenn der Verweis auf einen Kode zeigt, den dieser Jahrgang nicht führt.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "fullCode": {
      +              "description": "Amtliche Schreibweise des Kodes, z. B. '5-829.1'.",
      +              "type": "string"
      +            },
      +            "isBranch": {
      +              "description": "True, wenn der Verweis auf einen Dreisteller zeigt, also auf einen ganzen Zweig statt auf einen einzelnen Kode. Ein Dreisteller hat keine eigene Kodeseite; er wird über den Kodezweig aufgeschlagen.",
      +              "type": "boolean"
      +            },
      +            "text": {
      +              "description": "Text der Verweisstelle, wenn er vom Kode abweicht — etwa '5-93b ff.' für eine ganze Gruppe.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "text": {
      +        "description": "Wortlaut der Rubrik.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / exclusionCount
      Added value: +{
      +  "description": "Anzahl der Exklusiva — Prozeduren, die ausdrücklich nicht hierher gehören, sondern an eine andere Stelle.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / items / items / properties / inclusionCount
      Added value: +{
      +  "description": "Anzahl der Inklusiva des Kodes — Formulierungen, die ausdrücklich mit ihm kodiert werden.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / items / items / properties / khgValidity
      Added value: +{
      +  "description": "Geltungsbereich nach dem Krankenhausfinanzierungsgesetz: 'Drg' = nur § 17b (DRG-System), 'Pepp' = nur § 17d (PEPP-System), 'Both' = beide (Regelfall), 'Neither' = in keinem der beiden Systeme zu verwenden.",
      +  "enum": [
      +    "Drg",
      +    "Pepp",
      +    "Both",
      +    "Neither"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / items / items / properties / noteCount
      Added value: +{
      +  "description": "Anzahl der Hinweise zur Verschlüsselung dieses Kodes.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / items / items / properties / ownTitle
      Added value: +{
      +  "description": "Titel dieser Stelle allein, ohne die Titel der übergeordneten Stellen: bei 5-820.00 also 'Nicht zementiert' statt der zusammengesetzten Bezeichnung. Null bei Kapiteln und Bereichen.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  4. Changed17 schema fields changed
    • changedInput schema / properties / query / description
      Previous value: -"Suchbegriff: OPS-Kode (z. B. '5-470') oder Prozedurtext (z. B. 'Appendektomie')."New value: +"Suchbegriff: OPS-Kode (z. B. '5-470', '5470', '5-820.00') oder Prozedurtext (z. B. 'Appendektomie', 'Endoprothese Hüftgelenk')."
    • addedOutput schema / properties / focus / properties / alphaEntries / properties / value / items / properties / textHighlight
      Added value: +{
      +  "description": "Nur für die Trefferhervorhebung im Web-Katalog: Gewicht je Zeichen von 'text' — 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 außerhalb einer Textsuche. Über MCP immer null.",
      +  "items": {
      +    "type": "number"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • 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 / 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"
      +  ]
      +}
    • 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 / 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"
      +  ]
      +}
    • 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."
  5. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnly and idempotent annotations, the description discloses substantial search behavior: it searches the Alphabetische Verzeichnis with about 48,000 extra formulations, tolerates misspellings, returns flat relevance-sorted items, includes coding flags and DKR/SEG-4 references, and suppresses non-codable headings. This is behavioral context an agent could not infer from the schema or annotations.

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 description is dense, informative, and front-loaded with purpose and scope. The English tail repeats much of the German content, so a few sentences are redundant, but there is no irrelevant filler.

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

Completeness5/5

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

For a search tool, it covers the query surface, result contents, hit ordering, terminal-code filtering, and the correct follow-up tool (ops_get). Since an output schema exists and annotations mark the operation as read-only and idempotent, no critical operational context is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description adds real value by explaining query flexibility: codes, clinical terms, abbreviations, typos, and the alphabetic-index search, with concrete examples like '5-820' and 'appendektomi'. However, the year and limit parameters are not expanded beyond what the schema already states.

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

Purpose5/5

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

The opening verb 'Durchsucht den OPS' and the phrase 'erste Griff für jede Frage nach einer Prozedur' state exactly what the tool does and its role. The description covers codes, clinical terms, abbreviations, and typos, and adds the key rule that only terminal, codable codes are returned — clearly distinguishing this search tool from a detail lookup like ops_get.

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

Usage Guidelines5/5

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

It explicitly says this is the first tool for any procedure question, and for per-code details it says to call ops_get next — naming an alternative and the condition for switching. It also states that four-digit codes with children are headings, never answers, which tells the agent when a returned hit is not an acceptable final code.

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