Zitierfest
Server Details
Cite German law correctly: verbatim statutes (federal, 16 states, EU), court decisions, legal fees
- Status
- Healthy
- Uptime
- 99.1% over 19 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 10 tools
Most tools target clearly distinct resources: statutes (gesetze_finden, gesetz, normen, suche), case law (urteile), cross-references (verweise), freshness (stand), fees (gebuehr_berechnen, gebuehren_verzeichnis), and verification (zitate_pruefen). Descriptions even carry explicit routing hints ('Nummer bekannt ... normen statt suche'), though the fee pair and suche/normen remain adjacent enough to occasionally confuse.
Casing and language are uniform (lowercase German snake_case), but the convention is mixed: some tools are bare resource nouns (gesetz, normen, urteile, verweise, stand, suche) while others are verb phrases (gebuehr_berechnen, gesetze_finden, zitate_pruefen). It stays readable but no predictable verb_noun pattern.
Ten tools is well within the ideal range and each covers a distinct slice of legal research (find statutes, read norms, search, case law, cross-refs, citation check, fees, data freshness). No obvious padding or redundancy.
Surface covers the full citation-checking workflow: locating laws, reading norms, searching by keyword, retrieving decisions, tracing cross-references, verifying quotations, plus fee tables and freshness reporting. Minor gaps remain (e.g. no explicit ECLI-based decision retrieval separate from Aktenzeichen, limited legislative-history tooling), but core workflows have no dead ends.
Available Tools
10 toolsgebuehr_berechnenGebühr berechnenARead-onlyIdempotentInspect
Gebühr aus der Wertgebührentabelle (Anlage 2) von RVG, GKG, FamGKG oder GNotKG; mit positionen eine RVG-Kostennote, mit anrechnung samt Anrechnung der Geschäftsgebühr (Vorbem. 3 Abs. 4 VV RVG). Mit auftragsdatum die damalige Tabelle (RVG, GKG, FamGKG). GNotKG: Tabelle B (Notar, Grundbuch, Register, Nachlass) und A (übrige). Antwort: gebuehr_10, gebuehr_berechnet bzw. gebuehr_tabelle_a/_b; Kostennote bis gesamtsumme; dazu fundstelle und tabelle_stand.
| Name | Required | Description | Default |
|---|---|---|---|
| satz | No | Gebührensatz, z. B. 1.3 (VV 3100), 3.0 (KV 1210 GKG). | |
| wert | Yes | Gegenstands-, Streit- oder Geschäftswert in Euro, z. B. 5000. | |
| gesetz | Yes | 'RVG' (Anwalt), 'GKG' (Gericht), 'FamGKG' (Familie), 'GNotKG' (Notar, Grundbuch, freiwillige Gerichtsbarkeit). | |
| anrechnung | No | Nur RVG-Kostennote: Anrechnung der Geschäftsgebühr nach Vorbem. 3 Abs. 4 VV RVG (zur Hälfte, höchstens 0.75), z. B. {'satz': 1.3}; optional 'wert' (übergegangener Wert), 'auf' (VV-Nummer, sonst erste Verfahrensgebühr; ohne positionen nicht möglich, weil das Standardpreset 2300 keine Verfahrensgebühr enthält). Bei mehreren Verfahrensgebühren ohne 'auf' wird die erste gewählt und in der Antwort darauf hingewiesen. | |
| positionen | No | Nur RVG, Kostennote: [{'nummer': '3100', 'satz': 1.3}, {'nummer': '3104', 'satz': 1.2}]; Pauschale 7002 und USt 7008 kommen automatisch dazu. | |
| ust_prozent | No | Kostennote: USt in %. | |
| auftragsdatum | No | RVG: Datum des unbedingten Auftrags (§ 60 RVG); GKG/FamGKG: Anhängigkeit des Verfahrens (§ 71 GKG, § 63 FamGKG); JJJJ-MM-TT. Davor die damalige Tabelle (vor 01.06.2025 KostRÄG 2021, vor 01.01.2021 2. KostRMoG, RVG vor 01.08.2013 KostRMoG 2004). Ohne Angabe die geltende Tabelle. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description discloses meaningful behavior: Pauschale 7002 and USt 7008 are added automatically, Anrechnung is capped at half/0.75, multiple Verfahrensgebühren without 'auf' fall back to the first with a notice, and historical table cutoffs are tied to dates. It also lists the response keys, which matters because there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core calculation and then packs modes, historical-table behavior and response fields into a few semicolon-heavy sentences. It is efficient with no filler, though the density makes it slightly harder to scan than a cleaner list format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a seven-parameter, no-output-schema tool, the description is complete enough: it explains the calculation source, the optional modes, automatic additions, historical table selection, GNotKG table A/B variants and the names of key response fields. Nothing essential for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains gesetz, wert, satz, positionen, anrechnung and auftragsdatum in detail. The description restates the main mode relationships but adds little parameter-level meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: calculating a fee from the statutory value-fee table under RVG, GKG, FamGKG or GNotKG. It also names the special modes (Kostennote via positionen, Anrechnung, historical tables), so the purpose is clear. It does not explicitly differentiate itself from siblings such as gebuehren_verzeichnis, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear conditional usage: use positionen for an RVG-Kostennote, use anrechnung to account for the Geschäftsgebühr, and use auftragsdatum to select the historical table. It does not state when not to use the tool or name a sibling alternative, but the mode selection guidance is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gebuehren_verzeichnisGebührenverzeichnisARead-onlyIdempotentInspect
Tatbestand, Satz oder Betrag und Anmerkung einer Nummer im Verzeichnis (Anlage 1) von RVG, GKG, FamGKG, GNotKG oder JVEG. Antwort mit abschnitt; gleiche Tatbestände stehen in mehreren Abschnitten (FamGKG 1110 Ehesache / 1420 einstweilige Anordnung).
| Name | Required | Description | Default |
|---|---|---|---|
| bis | No | Endnummer eines Bereichs, höchstens 20 Einträge. | |
| anlage | No | Nur JVEG: 1 Stundensätze (§ 9, Nr. '1'–'13', 'M 1'–'M 3'), 2 besondere Leistungen (§ 10, Nr. '100'), 3 Verkehrsdaten-Auskünfte (§ 23, Nr. '300'). | |
| gesetz | Yes | 'RVG', 'GKG', 'FamGKG', 'GNotKG', 'JVEG' (Sachverständige, Dolmetscher). | |
| nummer | Yes | '3100', 'KV 1210', '21100'; JVEG z. B. 'M 1'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read profile (readOnlyHint, idempotentHint, non-destructive, openWorld=false), so the bar is lower. The description still adds real behavioral value: it discloses the returned fields (Tatbestand, Satz/Betrag, Anmerkung) and warns that a single Tatbestand can appear in several sections, with a concrete example (FamGKG 1110 vs. 1420).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool returns, with no padding. The second sentence about sections earns its place by flagging a real result ambiguity, though the phrasing is dense and initially reads as an output-format note rather than guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining the response, and it does so by enumerating the returned components and the section field. For a simple keyed-lookup tool the agent has enough to call it correctly, though the multi-section behavior could be spelled out more explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so gesetz, nummer, anlage and bis are already fully documented in the schema. The description reinforces the statute list and the section ambiguity but contributes no syntax or constraints (e.g. the 20-entry range cap) beyond what the schema states — the baseline 3 for schema-covered parameters applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — the Tatbestand/Satz/Betrag/Anmerkung for a number in the fee schedule (Anlage 1) — and enumerates the applicable statutes (RVG, GKG, FamGKG, GNotKG, JVEG). This lets an agent tell it apart from generic retrieval tools, but it never contrasts itself with the close sibling gebuehr_berechnen (calculation vs. lookup) and uses no explicit verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when to reach for this tool versus gebuehr_berechnen or the other siblings, and no prerequisites or exclusions are given. The remark that identical Tatbestände recur in multiple sections is a usage-relevant fact but is framed as an output note rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gesetzGesetz: Übersicht, Gliederung, ÄnderungenARead-onlyIdempotentInspect
Ein ganzes Gesetz ohne Normtexte: info (Titel, Stand, Normenzahl), Gliederung, Änderungen seit einem Datum oder Nummerierungslücken.
| Name | Required | Description | Default |
|---|---|---|---|
| law | Yes | Kürzel, Groß-/Kleinschreibung egal: 'BGB', 'BayBO'. | |
| limit | No | struktur/aenderungen: 1–500 je Seite. | |
| offset | No | Blättern: next_offset der Vorantwort. | |
| ansicht | No | 'info' (Titel, Stand, Normenzahl), 'struktur' (Gliederung, word_count je Norm), 'aenderungen' (seit since_date; geaendert_am = Tag, an dem Zitierfest die Textänderung erfasst hat, nicht Inkrafttreten), 'luecken' (fehlende oder weggefallene Nummern). | info |
| rechtsraum | No | Rechtsraum-Code (bund (Bund), eu, int, tarif, by (Bayern, mit Kommunalrecht), bb, be, bw, hb, he, hh, mv, ni, nw, rp, sh, sl, sn, st, th); leer = alle. | |
| since_date | No | aenderungen: ab Datum (ISO), Standard vor einem Monat. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is fully covered. The description adds one useful scope fact (norm texts are excluded) but says nothing about result shape, pagination behavior, or what happens with an ambiguous or unknown law abbreviation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with zero filler, and the key qualifier (no norm texts) is front-loaded. It is telegraphic enough that the missing verb slightly reduces immediate readability, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter, read-only lookup with rich annotations and full schema coverage, the description covers the main modes and the scope boundary. With no output schema, it could still say more about the returned shape and how paging interacts with the views, but the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so `law`, `limit`, `offset`, `rechtsraum`, `since_date` and the `ansicht` modes are all documented in structured fields. The description's parenthetical enumeration roughly restates the `ansicht` values rather than adding syntax or edge-case guidance, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource precisely (a whole law, explicitly without norm texts) and enumerates the four things it can return: info, Gliederung, Änderungen, Nummerierungslücken. The 'ohne Normtexte' clause implicitly separates it from the `normen` sibling, though that sibling is never named and no verb is stated outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the reader must infer 'use this for law-level metadata/structure, use normen for the actual text'. There is no explicit when-to-use statement, no exclusions, and no mention of `gesetze_finden` for locating a law or `stand` for version dates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gesetze_findenGesetze findenARead-onlyIdempotentInspect
Gesetze und Kürzel nach Titelwort, Normgeber, Rechtsraum oder Quelle, tippfehlertolerant. Ohne Angabe: Bestand je Quelle. Antwort: laws nach Relevanz, matched, next_offset.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 1–500. | |
| filter | No | Kürzel oder Titelwort, tippfehlertolerant: 'Bauordnung'. | |
| offset | No | Blättern: next_offset der Vorantwort. | |
| quelle | No | Alle Gesetze einer Quelle: 'gesetze-im-internet', 'gesetze-bayern', 'eur-lex', 'brak', 'muenchen-stadtrecht', 'muenchen-stadtrecht-neu', 'regensburg-stadtrecht', 'beratzhausen-ortsrecht', 'bmf-vwv', 'brak-ccbe', 'eu-leitlinien', 'go-bund', 'landesrecht-bb', 'landesrecht-be', 'landesrecht-bw', 'landesrecht-hb', 'landesrecht-he', 'landesrecht-hh', 'landesrecht-mv', 'landesrecht-ni', 'landesrecht-nw', 'landesrecht-rp', 'landesrecht-sh', 'landesrecht-sl', 'landesrecht-sn', 'landesrecht-st', 'landesrecht-th', 'tarif-oed', 'voelkerrecht', 'vwv-bund'. | |
| rechtsraum | No | Rechtsraum-Code (bund (Bund), eu, int, tarif, by (Bayern, mit Kommunalrecht), bb, be, bw, hb, he, hh, mv, ni, nw, rp, sh, sl, sn, st, th); leer = alle. | |
| gebietskoerperschaft | No | Normgeber: 'Bund', 'Bayern', 'Brandenburg', 'Berlin', 'Baden-Württemberg', 'Bremen', 'Hessen', 'Hamburg', 'Mecklenburg-Vorpommern', 'Niedersachsen', 'Nordrhein-Westfalen', 'Rheinland-Pfalz', 'Schleswig-Holstein', 'Saarland', 'Sachsen', 'Sachsen-Anhalt', 'Thüringen', 'EU', 'München', 'Regensburg', 'Beratzhausen', 'Tarifrecht', 'Bezirk'; mit filter kombinierbar. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, closed-world), so the bar is lower. The description still adds non-obvious behavior: typo tolerance, the no-filter default of listing holdings per source, and the return shape (laws by relevance, matched, next_offset). Pagination behavior is implied via next_offset but not fully spelled out.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, zero filler, and the searchable facets are front-loaded before the default behavior and the response shape. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six optional parameters, no output schema, and rich per-parameter descriptions, the description covers purpose, defaults, and return fields adequately. A sentence on how the facet parameters interact or on paging limits would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns an extra point by enumerating the four facet dimensions (Titelwort, Normgeber, Rechtsraum, Quelle) in the order they matter and flagging that the filters combine. It does not add format detail beyond the schema, which is fine given full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource: find laws and abbreviations by title word, normgiver, legal space, or source. The four named facets make the scope concrete. It does not name or contrast with any sibling (gesetz, normen, suche), so the agent must infer that this is the multi-facet search entry point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Ohne Angabe: Bestand je Quelle' tells the agent what happens with no filters, which is real usage guidance for the default path. But there is no explicit when-to-use-this-vs-sibling guidance, even though 'gesetz', 'normen', and 'suche' sit right next to it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
normenNormen abrufenARead-onlyIdempotentInspect
Gesetzestext zum Zitieren: amtlicher Wortlaut von Paragraphen und Artikeln deutscher und EU-Normen mit Stand (§, Artikel, Anlage, Erwägungsgrund): eine, mehrere (auch aus verschiedenen Gesetzen) oder ein Bereich von/bis in einem Aufruf. Antwort: normen (je Norm zitat und Text als content oder, bei einem Absatz oder einer Norm ohne Absätze mit mehreren Sätzen, nummeriert als saetze; mit Satz/Nr. nur dieser Teil, Felder satz, nummer, einleitung), gesetze {Kürzel: stand = letzte Änderung laut Quelle, rechtsraum; quelle_veraltet nur, wenn die Quelle beim letzten Abgleich ausfiel}; nicht_gefunden mit gruende und vorschlaege; nicht_geladen (über dem Umfangsdeckel); weitere (über 20 Normen, im nächsten Aufruf).
| Name | Required | Description | Default |
|---|---|---|---|
| bis | No | Letzte Norm des Bereichs (einschließlich). | |
| law | No | Kürzel für Einträge ohne eigenes, z. B. 'BGB'; leer, wenn jeder Eintrag sein Gesetz nennt. | |
| von | No | Statt paragraphs: erste Norm eines Bereichs. | |
| absatz | No | Nur dieser Absatz (2, '1a') bei Normen ohne eigenes 'Abs.'. | |
| offset | No | Eine Norm: bei truncated mit next_offset weiterlesen. | |
| paragraphs | No | 1–20 Normen: '823', '14a', 'Art. 3', 'Anlage1', 'Erwägungsgrund 47', '§ 536 Abs. 1' (nur Abs. 1), '§ 573 Abs. 2 Nr. 2' (nur Nr. 2 mit einleitung), '§ 577a Abs. 1a S. 2' (nur Satz 2), 'Anlage 1 Nr. 7.1' (Nummer einer Anlage). Ohne law trägt jeder Eintrag sein Kürzel: ['§ 823 BGB', '§ 263 StGB']. | |
| rechtsraum | No | Landesrecht nur dieses Rechtsraums: bund (Bund), eu (EU), int (Völkerrecht), tarif (Tarifrecht öffentlicher Dienst), by (Bayern, mit Kommunalrecht), bb (Brandenburg), be (Berlin), bw (Baden-Württemberg), hb (Bremen), he (Hessen), hh (Hamburg), mv (Mecklenburg-Vorpommern), ni (Niedersachsen), nw (Nordrhein-Westfalen), rp (Rheinland-Pfalz), sh (Schleswig-Holstein), sl (Saarland), sn (Sachsen), st (Sachsen-Anhalt), th (Thüringen); Bund, EU und int bleiben erreichbar; leer = alle. | |
| materialien | No | Statt des Wortlauts die Gesetzesbegründung (BT-Drucksache, Fundstelle, Abschnitt zur Norm) für genau eine Norm; vorhanden, wo normen 'materialien: n' nennt. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish safe read-only/idempotent behavior, and the description adds substantial operational detail: response fields (normen, gesetze, nicht_gefunden, nicht_geladen, weitere), freshness via quelle_veraltet, truncation/limit behavior, and pagination via 'weitere'. This is exactly the extra context an agent needs beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, and the dense semicolon-separated response summary packs useful information without filler. However, it is a single long sentence with nested parentheticals, making it harder to scan than a more structured presentation would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no output schema, the description supplies the missing return-value structure and edge-case behavior (not found, not loaded, further results, source staleness). Combined with the 100%-covered input schema and read-only annotations, an agent has enough information to call and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already documents paragraphs, von/bis, absatz, offset, rechtsraum, materialien, and law in detail. The description mainly restates allowed input combinations and return shape rather than adding new syntax or constraints for individual parameters, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resource (amtlicher Wortlaut von Paragraphen und Artikeln deutscher und EU-Normen) and the retrieval modes (one, multiple, or range), so the purpose is unambiguous. It stops short of naming or contrasting sibling tools such as gesetz, gesetze_finden, or suche, so it does not fully satisfy the 5 criterion for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use context ('Gesetzestext zum Zitieren') and explains that one call can cover one norm, several norms (even across laws), or a range. It does not state when not to use it or which sibling to use for search/finding instead, leaving alternatives implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
standStand des BestandsARead-onlyIdempotentInspect
Aktualität des Bestands: letzte Aktualisierung, mit law die letzte Änderung dieses Gesetzes laut Quelle. Antwort: finished_at, tage_alt, ok, failed_optional (nicht aktualisierte Quellen, dazu quellen_alter je Quelle: zuletzt_aktuell, tage_alt), gesetz (mit standvermerk), ohne law zuletzt_geaendert_bund; rechtsprechung je Gruppe, mit gerichte=true je Gericht.
| Name | Required | Description | Default |
|---|---|---|---|
| law | No | Optional: letzte Änderung dieses Gesetzes. | |
| gerichte | No | Rechtsprechung je Gericht statt je Gruppe (Zahl, Zeitraum, im Aufbau). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as read-only, idempotent, non-destructive, and closed-world, so safety behavior is covered. Beyond that, the description adds useful output behavior: 'failed_optional' for non-updated sources, per-source ages, 'standvermerk', and the different shapes with and without 'law' and with 'gerichte=true'. It could still say more about what 'ok' means, but it carries substantial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and stays compact. It is dense and semicolon-heavy, listing fields and branches in one long block, but every part appears to communicate either purpose, parameter effects, or return structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description appropriately lists the response fields and conditional branches. For a two-parameter read-only status tool, it covers the essential call behavior and return shape. Minor gaps remain around exact staleness semantics and failure meanings, but nothing critical for invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters. The description adds conditional output semantics beyond the schema: with 'law' the result covers that statute's last change, without 'law' it reports 'zuletzt_geaendert_bund', and 'gerichte=true' switches jurisprudence from group-level to court-level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific concern: 'Aktualität des Bestands: letzte Aktualisierung' and explains that with 'law' it reports the last change of that statute. This is clearly a freshness/status tool rather than a search or retrieval tool, though it does not explicitly distinguish itself from siblings such as gesetz or gesetze_finden.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through parameter effects: pass 'law' to inspect a specific statute's last change, and pass 'gerichte=true' for per-court jurisprudence. However, it gives no explicit guidance on when to call this tool instead of the sibling tools, nor does it state any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sucheGesetze durchsuchenARead-onlyIdempotentInspect
Welche Vorschrift regelt das? Rechtsgrundlage oder Anspruchsgrundlage per Stichwortsuche im amtlichen Wortlaut aller Normen im Bestand, beste Treffer zuerst. Syntax: Leerzeichen = UND, OR, -Begriff, "Phrase"; Wortanfänge finden Komposita; Fachbegriffe treffen besser als ganze Fragen. Nummer bekannt ('§ 33c GewO'): normen statt suche. Ohne Treffer: Tippfehlerkorrektur, dann ODER-Suche (hinweis). Antwort: results mit snippet (Treffer fett), zitat und absatz.
| Name | Required | Description | Default |
|---|---|---|---|
| laws | No | Statt kategorie feste Kürzel: ['BGB', 'HGB']. | |
| limit | No | 1–50. | |
| query | No | 2–4 Fachbegriffe: 'Kündigung fristlos Mietvertrag'. | |
| offset | No | Blättern: next_offset der Vorantwort. | |
| queries | No | Mehrere Formulierungen, Treffer vereinigt, Trefferzahl je Formulierung in treffer_je_query: ['Kokain', 'Betäubungsmittel']. | |
| kategorie | No | Rechtsgebiet (Synonyme egal): zivilrecht, verbraucherrecht, familienrecht, erbrecht, mietrecht, arbeitsrecht, handelsrecht, gesellschaftsrecht, insolvenzrecht, wettbewerbsrecht, ipr, oeffentlichesrecht, verfassungsrecht, verwaltungsrecht, polizeirecht, baurecht, umweltrecht, energierecht, verkehrsrecht, auslaenderrecht, beamtenrecht, gesundheitsrecht, gewerberecht, sozialrecht, steuerrecht, datenschutz, strafrecht, verfahrensrecht, gebuehrenrecht, anwaltsrecht, notar, justizverwaltung, kapitalmarkt; Herkunft: landesrecht, bayern, eu, kommunalrecht, muenchen, regensburg, beratzhausen, tarifrecht. | |
| rechtsraum | No | Rechtsraum-Code (bund (Bund), eu, int, tarif, by (Bayern, mit Kommunalrecht), bb, be, bw, hb, he, hh, mv, ni, nw, rp, sh, sl, sn, st, th); leer = alle. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real behavioral detail: ranked results, the response shape (results, snippet with bolded hit, zitat, absatz) and the zero-hit path. It does not discuss limit/offset paging semantics or cost, so it stops short of full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded: purpose first, then syntax, then routing to `normen`, then the fallback workflow, then return shape. Nearly every clause carries actionable content, though the telegraphic style and count of semicolon-separated rules makes it slightly harder to parse than a clean two-or-three sentence definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 optional parameters, no output schema and no required fields, the description covers what the agent must supply (query shape, category vs law list), what happens on failure, and what comes back. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description genuinely adds a query mini-language (space = AND, OR, -term, "Phrase", prefix matching for composita) that is nowhere in the schema. It also explains the queries-array rationale and the laws-vs-kategorie split, though paging via offset stays purely schema-defined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Stichwortsuche) on a specific resource (im amtlichen Wortlaut aller Normen im Bestand) and names the ranking (beste Treffer zuerst). It also explicitly differentiates from the sibling `normen` for the known-number case. An agent can pick between them without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives both routing rules and query strategy: use `normen` when the paragraph number is known, use Fachbegriffe rather than whole questions, and on zero hits run typo correction then an OR search. This is explicit when-to/when-not guidance tied to concrete siblings and fallbacks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
urteileRechtsprechungARead-onlyIdempotentInspect
Rechtsprechung: Urteile und Beschlüsse (BGH, BVerfG, BAG … und Instanzgerichte) im amtlichen Text mit Aktenzeichen und Randnummer (geladene Gerichte nennt stand(), ohne Treffer auch umfang): Suche (query), Entscheidungen zu einer Norm (norm), Abruf per Aktenzeichen (Kopf; Gründe mit teil='gruende' und rn oder rn_von/rn_bis). Jede Entscheidung mit Zitatzeile.
| Name | Required | Description | Default |
|---|---|---|---|
| rn | No | Gründe: nur diese Randnummer (ohne Randnummern: abschnittsweise). | |
| bis | No | Filter: Datum bis (JJJJ[-MM-TT]). | |
| von | No | Filter: Datum ab (JJJJ[-MM-TT]). | |
| norm | No | Entscheidungen zur Norm ('§ 823 BGB'): Leitsatz, dann Normenkette, dann Gründe (fundstelle). | |
| teil | No | Abruf: 'kopf' oder 'gruende'. | kopf |
| limit | No | 1–20. | |
| query | No | Volltextsuche, 2–4 Fachbegriffe; mit teil='gruende' nur Randnummern-Absätze mit allen Suchwörtern. | |
| senat | No | Filter: 'VIII', '2. Strafsenat'. | |
| offset | No | Blättern: next_offset der Vorantwort. | |
| rn_bis | No | Gründe: bis Randnummer. | |
| rn_von | No | Gründe: ab Randnummer. | |
| gericht | No | Filter: Gericht, z. B. 'BGH' (geladene Gerichte: stand()). | |
| aktenzeichen | No | Abruf: Aktenzeichen, ECLI oder id eines Treffers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotentHint already declaring the safety profile, the description adds real context: results are official full text, each decision carries a Zitatzeile, and every hit is reachable by Aktenzeichen/ECLI/id. It does not discuss rate limits or result-set size behavior beyond the schema's limit field, but the added output-shape detail is meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with no filler, front-loaded with the resource name, and every clause carries semantic content. The nested parentheses make it harder to parse than necessary, which keeps it short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with no output schema, the description covers all three working modes, the kopf/gruende split, and what a result contains (official text, Aktenzeichen, Randnummer, Zitatzeile). The remaining gaps—date range, senat, pagination behavior—are fully documented in the schema, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns more by explaining inter-parameter relationships the schema states only per field—e.g. that rn and rn_von/rn_bis apply to the Gründe and pair with teil='gruende', and that query behaves differently under teil='gruende'. Date filters, senat, limit and offset are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource (Urteile und Beschlüsse from BGH, BVerfG, BAG and Instanzgerichte) in amtlicher Text with Aktenzeichen and Randnummer, and lists the three access modes (query, norm, aktenzeichen). It even routes to the sibling stand() for the list of loaded courts, so an agent can separate it from gesetz/normen without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear mode selection: full-text search via query, decisions on a statute via norm, direct retrieval via aktenzeichen, with teil='gruende' plus rn or rn_von/rn_bis for reasoning. It also explains that stand() names the loaded courts and that an empty result still returns umfang. Missing only an explicit statement of when to prefer this over the sibling suche.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verweiseQuerverweiseARead-onlyIdempotentInspect
Querverweise eines § oder Artikels: eingehend (wer zitiert § 823 BGB?) oder ausgehend (worauf verweist § 242 BGB?). Antwort: total_found, references (absatz der zitierenden Stelle, zitiert = Absatz/Nr. des Ziels, via_bereich = aus „§§ 568 bis 576“), ausdrückliche Nennungen zuerst; candidate_prefilter_truncated: sehr oft zitiert, Liste unvollständig.
| Name | Required | Description | Default |
|---|---|---|---|
| law | Yes | Kürzel, Groß-/Kleinschreibung egal: 'BGB', 'BayBO'. | |
| limit | No | 1–500. | |
| richtung | No | 'eingehend' (wer zitiert die Norm) oder 'ausgehend' (was sie zitiert). | eingehend |
| paragraph | Yes | '823', 'Art. 3' (in Artikel-Gesetzen genügt '3'); eingehend '573 Abs. 2 Nr. 2' = nur Verweise auf diesen Absatz. | |
| rechtsraum | No | Nur Verweise von bzw. auf Normen dieses Rechtsraums, Code wie bei normen (bund (Bund), eu, int, tarif, by (Bayern, mit Kommunalrecht), bb, be, bw, hb, he, hh, mv, ni, nw, rp, sh, sl, sn, st, th); leer = alle. | |
| same_law_only | No | Nur Verweise innerhalb desselben Gesetzes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description does add real behavioral value by disclosing the response shape, the ordering rule ('ausdrückliche Nennungen zuerst'), and the caveat that candidate_prefilter_truncated means the list is incomplete for heavily cited norms. However it never explains pagination or whether a truncated list can be completed, and no output schema exists to carry that burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and the two query directions, then the result fields in a compact semicolon list. Dense and largely waste-free, though the field enumeration ('total_found, references, via_bereich') makes the middle section read as a spec dump rather than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by naming the return fields and explaining via_bereich ('aus §§ 568 bis 576') and the truncation flag. It is complete for a lookup tool; the remaining gap is result-volume handling, since limit defaults to 20 and no paging behavior is described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter including limit, richtung, rechtsraum and same_law_only; the baseline of 3 applies. The description restates the richtung modes and the paragraph sub-level filter ('573 Abs. 2 Nr. 2'), but adds essentially nothing the schema does not already say.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (Querverweise) and makes the two modes unmistakable with concrete examples ('wer zitiert § 823 BGB?' vs 'worauf verweist § 242 BGB?'). It never names a sibling tool (e.g. normen or suche), so the agent must infer that this is a reference-graph lookup rather than norm-text retrieval; clear purpose, but no explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The eingangs/ausgehend distinction with concrete example queries tells the agent when to pick each mode, and the truncated-result warning signals when the output should be treated as partial. It stops short of saying what alternate tool to use for plain norm text or for free-text search across the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zitate_pruefenZitate prüfenARead-onlyIdempotentInspect
Zitate kontrollieren (Schriftsatz, Gutachten, KI-Antwort prüfen): prüft alle Normzitate, Aktenzeichen und Fundstellen eines Textes gegen den Bestand. Je Fundstelle ergebnis: verifiziert, existiert_nicht (nur Normen: Untergliederung fehlt), nicht_auffindbar (Gericht und Jahr vollständig im Bestand, kein Treffer), nicht_pruefbar, mehrdeutig, unplausibel (Aktenzeichen widerspricht dem Datum), abweichung (Angabe weicht vom Bestand ab, z. B. Datum), weggefallen (Norm aufgehoben), nichtig (vom Verfassungsgericht für nichtig erklärt), nicht_erkannt (Zitatkandidat ohne Prüfung); mit beleg (Zitat, Stand), vorschlaege und warnung (aufgehobene Entscheidung, beanstandete Norm). Erkennt auch ECLI. Bewertet nur den Bestand, nicht die Echtheit.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Zu prüfender Text (Schriftsatz, Gutachten, KI-Antwort), höchstens 60.000 Zeichen. | |
| rechtsraum | No | Land für Landesrecht ohne Landesangabe ('by'); leer = nicht raten. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), and the description adds substantial value on top: the full result vocabulary (verifiziert, existiert_nicht, nicht_auffindbar, weggefallen, nichtig, abweichung, etc.) plus returned fields (beleg, vorschlaege, warnung) and ECLI detection. The only gap is that it does not explain how ambiguous or unparseable citations are surfaced operationally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and input contexts are front-loaded before the result-code enumeration, and every clause carries information. The long semicolon-chained status list is dense and hard to scan, which costs it a point, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return semantics, and it does so exhaustively: all eleven status values are defined, including the subtle distinctions (existiert_nicht only for Normen; nicht_auffindbar when court and year exist but no match) and the warning fields. Combined with the annotations and full schema coverage, an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (text with its 60.000-character cap, rechtsraum) are already fully documented in the schema. The description adds nothing about parameter behavior, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it checks all Normzitate, Aktenzeichen and Fundstellen of a text against the corpus. The operation is unmistakably distinct from the sibling lookup tools (gesetze_finden, urteile, suche), which retrieve rather than verify a supplied text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names concrete input contexts (Schriftsatz, Gutachten, KI-Antwort) and closes with a scope exclusion: 'Bewertet nur den Bestand, nicht die Echtheit.' No sibling tool is named as an alternative, so the routing guidance is contextual rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Publisher details
- Operator
- Zitierfest
- Operator website
- https://zitierfest.de
- Vendor relationship
- First-party
- Documentation
- https://zitierfest.de/anleitung
- Trust center
- Not available
- Restrictions
- Free account required (sign-in via one-time email code; OAuth in Claude, API key for other clients). Daily usage quota on the free plan. Content: German federal, state (all 16 Länder), municipal and EU law; selected court decisions.
Related MCP Connectors
German and EU law for AI assistants: statutes and case law in current wording, with sources.
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
German law via Ansvar Gateway. Cited, OAuth + paid tier.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables querying over 6,800 German federal statutes, case law, and legislative preparatory works with verbatim source text. Integrates EU law cross-references and provides citation validation and legal stance building.186 npm23Apache 2.0

kvasir-legalofficial
FlicenseNot gradedqualityCmaintenanceVerifiable German, Austrian, Swiss and EU law: resolve citations to the wording in force, verify the citations a model produced against the official source, and walk the citation graph.-- AlicenseNot gradedqualityAmaintenanceCite-grade German legal-text infrastructure for LLM agents, providing access to federal, Länder, and EU laws with cryptographic provenance.51 PyPI2Apache 2.0
- AlicenseAqualityBmaintenanceEnables AI agents to retrieve the verbatim text of German federal and state statutes, search official case law from BGH, BAG and BVerfG, and compute procedurally exact deadlines under §§ 187–193 BGB with weekend and public-holiday adjustment. It also supplies structured statutory-element blueprints with burden-of-proof allocation and assembles citation-secured research dossiers for pleadings.6MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.