PRIMAMCP
Server Details
Search German and EU law from official sources with your AI assistant. PRIMAMCP provides citable legal texts via MCP, with daily updates and hosting in Germany.
- Status
- Healthy
- Uptime
- 98.0% over 81 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 11 tools
The legal tools are well-differentiated by retrieval mode: legal_lookup (known citation), legal_lookup_batch (bulk citations), legal_search (topic), and legal_find_citing_decisions (citation inventory) are explicitly cross-referenced in their descriptions. The only mild overlaps are legal_search with cited_norm versus legal_find_citing_decisions, and the generic list_resources/read_resource pair which could be mistaken for a legal lookup path.
Nine tools follow a clean legal_<verb>_<noun> snake_case pattern (legal_lookup, legal_get_toc, legal_list_laws, etc.). The two generic MCP resource tools break the prefix convention, but their names remain readable and their separate role is obvious.
Eleven tools is well within a healthy range for a legal research server spanning norm retrieval, case law, legislative materials, and document structure. Each tool maps to a distinct retrieval mode and none feel padded.
The surface covers the full research lifecycle: discover laws (list_laws), navigate structure (get_toc, get_context), resolve citations (lookup, lookup_batch), semantic search, citing decisions, and legislative intent (get_materials). Minor gaps remain, such as no dedicated tool for browsing decisions by court/docket or for citation-graph traversal as a first-class operation, though these can be worked around via legal_lookup on cited_norms.
Available Tools
11 toolslegal_find_citing_decisionsFind Citing Court DecisionsARead-onlyIdempotentInspect
List German federal court decisions (BGH, BVerwG, BFH, BAG, BSG, BVerfG, BPatG, GmSOGB), German state court decisions (Sächsisches OVG, Oberverwaltungsgericht NRW, Oberlandesgericht Düsseldorf, Oberlandesgericht Hamm, Oberlandesgericht Köln, Landesarbeitsgericht Düsseldorf, Landesarbeitsgericht Hamm, Landesarbeitsgericht Köln, Landessozialgericht NRW, Finanzgericht Düsseldorf, Finanzgericht Köln, Finanzgericht Münster, Verfassungsgerichtshof NRW) and EU court decisions (EuGH, EuG) citing a specific legal provision — the raw citation inventory, newest first. legal_search with the cited_norm filter searches within the same population and ranks the candidates against a specific question or fact pattern.
Matching is at paragraph level: '§ 280 Abs. 1 BGB' finds all decisions citing § 280 BGB. Returns decisions with Leitsatz (key legal principle summary) and ECLI identifier. Each decision also exposes a cited_norms array — a list of canonical citation strings (e.g. ['Art. 101 AEUV', '§ 280 BGB', 'Art. 6 DSGVO']) describing the other provisions the decision references. Pass an element back to legal_lookup to retrieve the norm's text and walk the citation graph (e.g. discover which BGB / DSGVO articles a BGH judgment hinges on, then resolve them in turn). German provisions, EU treaty articles (AEUV / EUV) and EU instruments with a registered short alias resolve directly — EuGH prose like 'der Verordnung (EU) 2016/679' is reverse-mapped to those aliases (DSGVO, KIVO, DSA, …) where one exists. A numbered EU instrument without a registered alias is shown in the compact 'EURL 98/59' form: it identifies the instrument but is not yet resolvable via legal_lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of decisions to return (default 10). | |
| cited_norm | Yes | The legal provision, e.g. '§ 823 BGB', 'Art. 6 DSGVO'. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. The transposition norm covers everyday German case law, the directive article EU-level interpretation. EU regulations (DSGVO, MDR) are cited directly. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint), the description reveals paragraph-level matching behavior ('§ 280 Abs. 1 BGB' finds all decisions citing § 280 BGB) and the paragraph level is not visible in the schema. It also discloses the resolution rules for EU instruments, including that some will be shown in compact 'EURL 98/59' form and are not resolvable via legal_lookup. These behavioral traits materially affect agent expectations.
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 long but every sentence contributes functional detail, from the court list to the matching rule to the citation-graph workflow. It is front-loaded with the core purpose and the distinction from legal_search. Although dense, it is not padded; a 4 reflects that it could be tightened slightly without losing information.
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?
Given the tool's complexity — a broad court population, paragraph-level matching, and EU instrument resolution — the description covers all essential aspects: scope, behavior, output fields, and integration with legal_lookup. It also benefits from an output schema, so return structure is already defined. No critical operational detail 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?
The schema already covers the cited_norm parameter's examples and directive/transposition distinction (100% coverage), so the baseline is 3. The description adds important semantic detail: the paragraph-level matching rule clarifies that the filter is not exact string matching, and the EU instrument resolution paragraph explains how the parameter will be interpreted for EU instruments. This goes beyond the schema's description.
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 opens with 'List ... court decisions ... citing a specific legal provision — the raw citation inventory, newest first,' providing a specific verb and resource. It explicitly distinguishes itself from the sibling legal_search by stating that legal_search ranks candidates against a question or fact pattern, while this tool returns the raw, newest-first inventory. This makes the tool's unique role clear.
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 explicitly names legal_search as the alternative and explains the selection criterion: use this tool for an exhaustive citation inventory, use legal_search when ranking against a specific question or fact pattern. It also points to legal_lookup for resolving elements of the cited_norms array, giving a concrete workflow. This is explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legal_get_contextGet Surrounding ProvisionsARead-onlyIdempotentInspect
Get a stored text section and its neighbours in document order, including consecutive provisions, parts of a long provision or sections of a court decision. Serves questions that span consecutive provisions or need the surrounding context of a norm's scope.
Requires a norm_id from legal_search, legal_lookup or legal_get_toc. Returns target, before and after sections, with up to 10 neighbours in each direction. Each section's id is a valid norm_id for a subsequent call. A window may cross provision boundaries; norm_key identifies which provision each section belongs to. legal_get_toc gives the law-wide overview.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Number of stored text sections after the target (max 10). | |
| before | No | Number of stored text sections before the target (max 10). | |
| norm_id | Yes | norm_id from legal_search, legal_lookup or legal_get_toc, or a section's id from legal_get_context. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and idempotent annotations, the description discloses return structure (target, before, after sections with up to 10 neighbors each), that windows may cross provision boundaries, and that section IDs can be reused as norm_ids. These are valuable behavioral details not derivable from 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 description is two tight paragraphs with the core purpose front-loaded, followed by usage and return details. Every sentence adds value, with no redundancy or filler.
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?
The description, combined with the output schema and annotations, fully equips an agent to call the tool correctly: it covers input requirements, output structure, boundary-crossing behavior, and ID reuse. 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 descriptions cover all parameters (100% coverage). The description adds context about norm_id's provenance and reuse, enhancing the schema's meaning. However, after/before parameters are not further elaborated, so a 4 is appropriate given the high baseline.
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 clearly states the tool retrieves a stored text section and its neighbors in document order, explicitly covering consecutive provisions and court decision sections. It distinguishes itself from siblings by emphasizing context retrieval, which is unique among the listed tools.
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 explicitly states when to use: for questions spanning consecutive provisions or needing surrounding context. It also specifies the required input source (norm_id from legal_search, legal_lookup, or legal_get_toc) and contrasts with legal_get_toc for law-wide overviews, effectively guiding tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legal_get_materialsGet Legislative Materials (Begründung)ARead-onlyIdempotentInspect
Return the official legislative reasoning (Gesetzesbegründung / explanatory memorandum from a Bundestags-Drucksache) for a specific German federal provision — the source for genetic/historical interpretation: what the legislator intended with this norm.
It answers questions that turn on a norm's purpose (ratio legis / 'why does this rule exist'), the meaning of an unclear or undefined term, whether a regulatory gap is planwidrig (grounds an analogy) or a deliberate silence (grounds an Umkehrschluss), or what a specific amendment was meant to achieve — the everyday uses of materials in an Auslegung or a Schriftsatz. Weight: the Begründung is strong evidence of legislative intent but not binding, and the statutory wording stays the outer limit of any reading.
Pass a provision like '§ 823 BGB' or 'Art. 87a GG'. Returns the linked Begründungs-Abschnitte newest first, each with its 'BT-Drs.' Fundstelle, the reasoning text, and the other norms the same change amended ('target_norm_keys'). Complements legal_find_citing_decisions (how courts apply a norm) with the drafting intent behind it. Covers amendments since 1949 to German federal law (gesetze-im-internet corpus) only; an unknown or non-German provision returns no materials. Excerpts are prepared from the Bundestag-extracted text, not the original PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of Begründung segments to return (default 10). | |
| citation | Yes | The legal provision, e.g. '§ 823 BGB', 'Art. 87a GG'. | |
| jurisdiction | No | Legal orders the call covers, one or more ('de', 'eu', 'de_by', 'de_nw', 'de_sn'). Materials exist for German federal law only: a scope without 'de' returns a hint instead of materials. Omitted, the account's legal order applies. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, it discloses output ordering (newest first), returned fields (BT-Drs. Fundstelle, reasoning text, target_norm_keys), scope-failure behavior, source-text caveats, and the evidentiary weight of the Begründung. No behavior contradicts 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 main purpose is front-loaded and the description is dense with useful legal context rather than filler. It is somewhat long, but the length is largely justified by the tool's specialized legal domain and scope caveats.
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?
The description covers purpose, usage scenarios, scope limits, output shape, source caveats, and evidentiary weight. With annotations and an output schema already present, this leaves no material gap for correct invocation.
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 schema already documents citation, limit, and jurisdiction thoroughly. The description reinforces citation examples and jurisdiction scoping but does not add substantial meaning beyond the schema, particularly for the limit parameter.
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 opens with a specific verb and resource: returning the official legislative reasoning (Gesetzesbegründung) for a specific German federal provision. It also states the scope and distinguishes the tool from legal_find_citing_decisions, which covers how courts apply a norm rather than drafting intent.
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 explicit use cases—norm purpose, unclear terms, planwidrig gaps, deliberate silence, and amendment intent—and names the complementary sibling tool. It also clearly excludes non-German or unknown provisions and states the corpus scope from 1949 onward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legal_get_statsShow Corpus StatisticsARead-onlyIdempotentInspect
Get database and search index statistics including counts of laws, norms, and indexed vectors. Use for health checks or to understand the scope of the legal corpus.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds detail about the nature of the statistics (database and search index, specific counts), which is useful but minimal. No contradiction with 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 description is two sentences with no wasted words. It front-loads the core function (getting statistics) and then provides usage context. 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?
The tool has no parameters, the annotations fully disclose safety and idempotency, and an output schema exists to define the return format. The description covers the tool's purpose and use cases completely for an agent to decide when to call 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?
The tool has zero parameters and the schema is an empty object (100% coverage). The description does not need to explain parameters since none exist. Baseline of 4 is appropriate for a no-parameter tool.
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 clearly states the tool retrieves database and search index statistics, listing specific counts (laws, norms, indexed vectors). It uses a specific verb (get) and resource (stats), and is distinct from all sibling tools, which focus on searching, looking up, or retrieving materials rather than corpus statistics.
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 explicitly states when to use the tool: for health checks or understanding the scope of the legal corpus. It does not mention alternative tools, but no sibling tool serves this purpose, so the guidance is clear and sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legal_get_tocBrowse Law Table of ContentsARead-onlyIdempotentInspect
Get the table of contents of a specific law or court decision. Returns norm keys (e.g. '§ 1', 'Art. 3'), titles, and chapter headings in document order.
Gives the overview of a law's structure; a returned norm_id feeds legal_get_context for the full text. Paginated for large laws.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max entries per page (default 100). | |
| offset | No | Start position for pagination. | |
| language | No | Document language: 'de' (documents in German, of every legal order in the scope) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English. | |
| source_type | No | 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk', 'taetigkeitsberichte' or 'gesetzesmaterialien'. Empty = auto-detect; where an abbreviation names a law in two sources, the answer lists both. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents. | |
| jurisdiction | No | Legal orders the law must belong to, one or more ('de', 'eu', 'de_by', 'de_nw', 'de_sn'; 'de' matches federal AND state law). Omitted, every legal order answers, and where the abbreviation names laws of several, the account's legal order decides; jurisdiction_scope names it. | |
| law_abbreviation | Yes | Law abbreviation, e.g. 'bgb', 'dsgvo', 'stgb'. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 adds real value beyond that: it discloses the pagination trait ('Paginated for large laws') and the ordering and shape of entries, both of which the annotations do not convey. Return format is partly redundant with the output schema, which slightly limits the gain.
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 short paragraphs with no waste, and each sentence does work: what is returned is front-loaded, followed by the workflow link and the pagination caveat. Nothing repeats the schema or the annotations.
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?
An output schema exists and annotations cover safety, so the description does not need to explain return values, yet it still gives a useful shape preview. It is complete enough to call the tool correctly. A small gap remains: the description does not mention that language and source_type map to separate corpora and are auto-detected, though the schema covers that in detail.
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?
With 100% schema description coverage, the baseline is 3 because the schema already documents all six parameters, including the limit/offset pagination semantics and the language-corpus nuance. The description mentions pagination generally but adds no parameter-level detail or syntax beyond what the schema provides.
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 (Get the table of contents) and resource (law or court decision), and further specifies the returned elements: norm keys, titles, chapter headings, in document order. The distinction from legal_get_context is made explicit, so an agent can tell the two apart without opening either 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?
It states its role clearly as the structural overview and routes the agent onward: 'a returned norm_id feeds legal_get_context for the full text.' That is concrete workflow guidance. It stops short of saying when NOT to use it, or how it relates to siblings such as legal_search or legal_list_laws, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legal_list_lawsList Available LawsARead-onlyIdempotentInspect
List available laws, regulations, and court decisions in the database. Returns abbreviation, title, source type, jurisdiction, document kind, and version date for each entry.
Unfiltered listings can contain thousands of entries; pass a search term or source_type to keep responses focused. Useful for discovering valid law abbreviations to use as filters in legal_search; legal_get_toc shows a listed law's structure.
Not an existence check for a specific law: EUR-Lex entries store the official long title, so a short name or number can miss a law that is in the corpus. legal_lookup with a citation or legal_search with a topic provides alternative retrieval paths; a missing match does not prove absence from the corpus.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per page (default 50). | |
| query | No | Case-insensitive search on abbreviation, title and official short designation ('Elektronischer-Rechtsverkehr-Verordnung'), e.g. 'bgb', 'datenschutz'. Also accepts a CELEX number ('32022L2555') or an EU instrument reference ('2022/2555', 'Richtlinie (EU) 2022/2555') and resolves it to the stored law. | |
| offset | No | Start position for pagination. | |
| language | No | Document language: 'de' (documents in German, of every legal order in the scope) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English. | |
| source_type | No | Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk', 'taetigkeitsberichte' or 'gesetzesmaterialien'. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents. | |
| jurisdiction | No | Jurisdictions to list, one or more: 'de' (all German law — matches federal AND state law; federal only is source_type='gii'), 'eu', 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only). A value matches its own family only: 'de' adds no EU law. Omitted, the account's legal order applies — for a German account German and EU law. | |
| document_kind | No | Filter by document class: the norm subtypes 'statute', 'regulation' and 'directive' form ONE class (any of them lists all three); 'decision' (court case-law), 'guidance' (supervisory-authority soft law, EDSA/DSK/activity reports) and 'explanatory_memorandum' (legislative materials) are separate classes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent safety profile, and the description adds substantive context beyond them: unfiltered listings can return thousands of entries, and — critically — a missing match does not prove absence because EUR-Lex stores official long titles. That caveat prevents a false negative interpretation of results.
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, then narrowing guidance, then the negative caveat — a sensible order with no filler sentences. Slightly long, and the enumerated return fields partly duplicate the output schema, but each paragraph carries distinct value.
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?
Seven optional parameters, full schema descriptions, annotations, and an output schema are all present; the description covers the remaining gaps an agent needs — result volume, filter strategy, and the risk of false negatives. Nothing material is missing for correct invocation.
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 would be 3, but the description adds functional intent by recommending 'pass a search term or source_type to keep responses focused', tying filters to a concrete effect on result size. It stops short of explaining limit/offset pagination or the language corpus split, which the schema already covers.
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 ('List available laws, regulations, and court decisions') plus the fields returned, so the agent knows exactly what it gets. It explicitly distinguishes itself from legal_search, legal_get_toc, and legal_lookup, which are the nearest siblings.
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 concrete when-to-use guidance ('discovering valid law abbreviations to use as filters in legal_search'), a performance caveat for unfiltered calls, and an explicit when-not-to-use ('Not an existence check for a specific law') with two named alternatives. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legal_lookupLook Up Provision by CitationARead-onlyIdempotentInspect
Retrieve a specific legal provision by citation (e.g. '§ 823 BGB', 'Art. 6 DSGVO', '§ 280 Abs. 1 BGB'), or a court decision by Aktenzeichen or ECLI (e.g. 'VII ZR 184/14', 'BGH VII ZR 184/14', 'C-184/14', 'ECLI:DE:BGH:2017:050117BVIIZR184.14.0'). Citation order is flexible — '§ 9 DSGVO', 'DSGVO Art. 9', 'Artikel 9 DSGVO' all resolve correctly. is_exact_match reports whether the citation was matched exactly; non-exact results can be a semantic fallback, the first section of an annex, or an uncertain decision match. The result hint explains which case applies; found=true alone does not prove citation identity. Provision text is reassembled where available; content_truncated and the result hint identify incomplete text and its continuation. An ambiguous provision returns found=false with stored candidates and citation_forms: complete citations that select each printing, including a source occurrence where required. Select an EUR-Lex article reprint with its quoted complete key, e.g. '"Art. 45 (2)" reg_2013_153'. An unquoted paragraph qualifier does not select a printing. Quote a complete stored document-part key when its title contains article references; the quoted key takes precedence over coordinates within that title. A decision lookup returns its lead section (Leitsatz); further sections are reachable via legal_get_toc or legal_get_context on the returned norm_id. Where an abbreviation names laws of several legal orders and neither the scope nor the cited provision decides, the result is found=false with reason='ambiguous_jurisdiction' and one candidate per law, each with the legal_lookup arguments that resolve exactly it; also_exists_in on a hit lists the other laws the abbreviation names.
| Name | Required | Description | Default |
|---|---|---|---|
| citation | Yes | Full citation string, e.g. '§ 823 BGB' or 'VII ZR 184/14' | |
| language | No | Document language: 'de' (documents in German, of every legal order in the scope) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English. | |
| source_type | No | Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk', 'taetigkeitsberichte' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents. | |
| jurisdiction | No | Legal orders the cited law or decision must belong to, one or more: 'de' (all German law — federal AND state), 'eu', 'de_by', 'de_nw', 'de_sn'. A value matches its own family only: 'de' adds no EU law. Omitted, every legal order answers, and where an abbreviation names laws of several (e.g. 'EUV': a German Verordnung and the EU Treaty), the account's legal order decides; jurisdiction_scope names it. Set, nothing outside it answers: a not_found then lists in also_exists_in where the cited law exists. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although annotations already declare a safe read-only, idempotent operation, the description adds substantial behavioral context beyond them: is_exact_match caveats, semantic fallback, truncated content, ambiguous candidates, citation_forms, lead-section-only decision returns, and ambiguous_jurisdiction results. These details materially affect how an agent should interpret the response.
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 purpose and then proceeds through edge cases in a logical order. It is long, but the length is largely earned by the complexity of citation resolution; a few sentences are dense or repetitive, but there is little outright waste.
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?
Given the four parameters, full schema coverage, output schema, and annotations, the description is complete enough for an agent to call the tool correctly. It covers citation matching, ambiguity, jurisdiction conflicts, truncated text, and how decision results relate to legal_get_toc and legal_get_context.
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 parameter baseline is already strong, but the description adds important citation-format semantics: legal citation ordering is flexible, quoted complete keys select specific printings, and unquoted paragraph qualifiers do not. It adds less detail about language and source_type than the schema already provides, which keeps it from a 5.
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 first sentence states a specific verb and resource: retrieve a legal provision by citation or a court decision by Aktenzeichen/ECLI. The examples and the explicit distinction between provision lookup and decision lookup make the tool's scope immediately clear, and it is distinguishable from legal_lookup_batch and legal_search.
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 gives clear operational context: flexible citation order, quoted complete keys for EUR-Lex reprints and document-part titles, decision lead sections, and ambiguous-jurisdiction behavior. It does not explicitly name when to prefer legal_search or legal_lookup_batch instead, so it stops short of full when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legal_lookup_batchLook Up Multiple ProvisionsARead-onlyIdempotentInspect
Retrieve multiple cited provisions or decisions in a single call without semantic fallback. Accepts 1-20 citations — norm citations and court-decision references, same forms as legal_lookup (e.g. ['§ 823 BGB', 'Art. 6 DSGVO', 'VII ZR 184/14']). Citations not found appear as found=false. Norm citations require an exact match. Decision references follow the same resolution as legal_lookup and can yield ambiguous, relaxed-reference or title-only matches; is_exact_match and the hint report that uncertainty. Each entry has its own match status and any ambiguity or truncation hint. Provision ambiguities include candidates and reachable citation_forms, as in legal_lookup. Decision matches return the lead section, not the complete judgment. Fuzzy resolution of a hard-to-find provision belongs to legal_lookup, not to this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Document language: 'de' (documents in German, of every legal order in the scope) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English. | |
| citations | Yes | List of citation strings, e.g. ['§ 823 BGB', 'Art. 6 DSGVO']. Max 20. | |
| source_type | No | Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk', 'taetigkeitsberichte' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents. | |
| jurisdiction | No | Legal orders the cited law or decision must belong to, one or more: 'de' (all German law — federal AND state), 'eu', 'de_by', 'de_nw', 'de_sn'. A value matches its own family only: 'de' adds no EU law. Omitted, every legal order answers, and where an abbreviation names laws of several (e.g. 'EUV': a German Verordnung and the EU Treaty), the account's legal order decides; jurisdiction_scope names it. Set, nothing outside it answers: a not_found then lists in also_exists_in where the cited law exists. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the read-only/idempotent profile, and the description adds substantial behavior beyond that: misses return found=false, norm citations require exact matches, decision references can yield ambiguous/relaxed/title-only matches reported via is_exact_match and hints, and decision matches return only the lead section rather than the full judgment. That is exactly the uncertainty and truncation context an agent needs.
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 scope, then the failure/uncertainty semantics, then the sibling exclusion. Slightly repetitive around ambiguity ('can yield ambiguous...' followed by 'any ambiguity or truncation hint' and 'Provision ambiguities include candidates'), which costs a point but nothing is padded.
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?
An output schema exists, yet the description still covers the result shape that matters for interpretation — per-entry match status, found=false, is_exact_match, hints, candidates and citation_forms, and the lead-section limitation for decisions. Nothing needed to call or interpret 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 documents citations, language, source_type and jurisdiction in depth. The description reinforces the citation forms and the 1-20 bound but adds no meaning beyond the schema for the three filter parameters. 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 ('Retrieve multiple cited provisions or decisions in a single call') and immediately bounds the scope with 'without semantic fallback'. It distinguishes itself from the sibling legal_lookup explicitly, so an agent can choose between them without opening either 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 the when ('multiple cited provisions... in a single call', 1-20 citations) and the when-not ('Fuzzy resolution of a hard-to-find provision belongs to legal_lookup, not to this tool'). The alternative tool is named and the condition that routes to it is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
legal_searchSearch Legal DocumentsARead-onlyIdempotentInspect
Search legal documents across jurisdictions (DE federal, EU, Bavaria, North Rhine-Westphalia, Saxony) using hybrid semantic + keyword search. Returns ranked results with content snippets, not full text.
Suitable for topic questions and case facts when the relevant provision or decision is not yet known. A known citation is resolved by legal_lookup; several known citations by legal_lookup_batch. Natural-language questions using the documents' terminology usually rank better than keyword lists or doctrinal labels, e.g. 'Wann verjährt ein Schadensersatzanspruch?' or 'Wie sind mehrdeutige Vertragsklauseln auszulegen?'. Ranking indicates textual relevance, not legal applicability or exhaustive coverage. document_kind separates norms from case-law: the three norm subtypes ('statute'/'regulation'/'directive') form one filter class — any of them admits all three, so an EU regulation or directive is never hidden by a reflexive 'statute'. 'decision' restricts to court decisions and drops every norm before ranking, so it can hide the statute that answers a rule question. Without a document_kind filter, norms, case law and guidance can rank together, subject to other filters. This supports mixed questions (norm + its case-law application) and unclear German-vs-EU scope (e.g. data protection: BDSG vs DSGVO). Legislative materials are excluded by default and require explicit scope. A statute law_abbreviation combined with a decision scope ('decision', a decision source_type, court or decision_type) yields an empty set, because decisions carry file-number identifiers, not statute abbreviations; cited_norm filters decisions by the provision they cite. legal://filter_values documents the per-value definitions and the disambiguation list. law_abbreviation and source_type restrict the law and source respectively; when omitted, they add no restriction. Without jurisdiction and language the account's scope applies, named in jurisdiction_scope. legal://rechtsrahmen lists which law governs which domain (EU vs national, substantive vs procedural).
Common mix-ups (which law governs):
Procedural law by jurisdiction: ZPO (zivilrecht), STPO (strafrecht), VWGO (verwaltungsrecht), ARBGG (arbeitsrecht), SGG (sozialrecht), BVERFGG (verfassungsrecht), FAMFG (familienrecht)
AO, ESTG, KSTG, USTG, FGO: AO=procedure, EStG/KStG/UStG=substantive
VVG, BGB: Insurance rescission → BGB §§ 812ff, not VVG
VERSAUSGLG, FAMFG: VersAusglG=substantive, FamFG=procedure
APOG, AMG: ApoG=operation, AMG=drug approval
WEHRPFLG, SG: WPflG=conscription, SG=soldiers
AGG, BETRVG: AGG=anti-discrimination, BetrVG=works council
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Filter by court: BGH, BVerwG, BFH, BAG, BSG, BVerfG, BPatG, GmSOGB, Sächsisches OVG, Oberverwaltungsgericht NRW, Oberlandesgericht Düsseldorf, Oberlandesgericht Hamm, Oberlandesgericht Köln, Landesarbeitsgericht Düsseldorf, Landesarbeitsgericht Hamm, Landesarbeitsgericht Köln, Landessozialgericht NRW, Finanzgericht Düsseldorf, Finanzgericht Köln, Finanzgericht Münster, Verfassungsgerichtshof NRW, EuGH, EuG. | |
| limit | No | Number of results to return (default 5). | |
| query | Yes | Natural-language question or case facts, e.g. 'Wann verjährt ein Schadensersatzanspruch?'. Terms used in the relevant legal documents help retrieval. | |
| chapter | No | Narrows to one chapter/section within a law; reduces recall. Only meaningful together with law_abbreviation. | |
| date_to | No | Include results until this date (YYYY-MM-DD). | |
| language | No | Document language: 'de' (documents in German, of every legal order in the scope) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English. | |
| date_from | No | Include results from this date onwards (YYYY-MM-DD). | |
| cited_norm | No | Restrict results to court decisions that verifiably cite this provision (citation-graph filter, e.g. '§ 573 BGB' or 'Art. 6 DSGVO'). With a case-specific query — e.g. query='Eigenbedarfskündigung Härtefall hohes Alter', cited_norm='§ 573 BGB' — citing candidates are ranked by relevance to the query. A citation does not establish applicability to the facts. legal_find_citing_decisions yields the unranked inventory, newest first. Matching is paragraph-level (Abs./Satz/Nr. are ignored). Only court decisions carry citations, so this filter implicitly restricts to case law — no document_kind needed. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. The transposition norm covers everyday German case law, the directive article EU-level interpretation. EU regulations (DSGVO, MDR) are cited directly. | |
| source_type | No | Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU legislation, including regulations like DSGVO/DSA, directives and treaties), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions, 2010 onwards), 'bverfge' (BVerfG leading decisions from the official reporter BVerfGE, up to 2009 — the reported slice, not every BVerfG decision of that era), 'bverwg' (BVerwG judgments (Urteile) up to 2009), 'bgh' (BGH decisions 2000 to 2009), 'bpatg' (BPatG decisions 2000 to 2009, mostly trademark and patent appeals), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'edsa' (EDPB/EDSA data-protection guidance — soft law, not enacted norms; mostly English, see the language parameter), 'dsk' (Datenschutzkonferenz guidance: Orientierungshilfen, Kurzpapiere, Beschlüsse — the German supervisory authorities' reading of GDPR/BDSG), 'taetigkeitsberichte' (activity reports of 17 German supervisory authorities, all but Thuringia, from 2018, one section per case with authority, report and printed page — the single authority's enforcement practice), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials are opt-in: they appear with this value or document_kind='explanatory_memorandum', not in an unfiltered search). Empty = no source filter. | |
| jurisdiction | No | Jurisdictions to search, one or more: 'de' (all German law — matches federal AND state law, incl. Staatsverträge like the Medienstaatsvertrag), 'eu' (EU), 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only — Saxon state law is not in the corpus, so this matches Saxon court decisions). A value matches its own family only: 'de' adds no EU law, ['de', 'eu'] covers both; source_type='gii' restricts to federal statutes. Omitted, the account's legal order applies — for a German account German and EU law — and jurisdiction_scope names it. | |
| decision_type | No | Filter by decision type: 'Urteil' or 'Beschluss'. | |
| document_kind | No | Filter by document class: the three norm subtypes 'statute', 'regulation' and 'directive' form ONE filter class — any of them admits all three, so they need not be told apart, and an EU regulation or directive is never hidden by a reflexive 'statute'. Three values discriminate: 'decision' restricts to court case-law (how a norm is applied), 'guidance' restricts to supervisory-authority soft law (EDPB/EDSA and Datenschutzkonferenz — authoritative readings of the GDPR/BDSG, not enacted norms and not binding), and 'explanatory_memorandum' restricts to legislative materials (Gesetzesbegründung / BT-Drucksachen — the legislator's intent behind a norm; ratio legis, purpose of an amendment). Materials are opt-in: reachable via this value, source_type='gesetzesmaterialien', or legal_get_materials for one provision, not in an unfiltered search. Empty = no document-class filter: norms, case law and guidance can rank together, subject to other filters. legal://filter_values documents the per-value definitions and disambiguation. | |
| law_abbreviation | No | Restrict to the named document, e.g. 'bgb', 'dsgvo'. A statute abbreviation does not select decisions citing that statute; cited_norm selects those decisions. Omitted or null = no law filter. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, idempotent, closed-world read, so the burden is low, yet the description adds substantial non-obvious behavior: ranking reflects textual relevance not legal applicability, coverage is not exhaustive, legislative materials are opt-in and absent from unfiltered searches, DE and EN are separate corpora, and jurisdiction values match only their own family. These are exactly the traits that change how an agent should trust and interpret results.
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?
Well front-loaded and organized into scope, routing, filter semantics, and a bulleted disambiguation list. But the trailing 'common mix-ups' block is a long domain-knowledge primer on which code governs which field — useful reference material, yet only loosely tied to invoking this tool and duplicative of the legal://rechtsrahmen resource it points to.
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 hybrid search with an output schema, the definition covers what an agent needs to call it correctly: retrieval mode, ranking caveats, default account scope, filter interactions, and the empty-result trap. Return shape is deferred to the output schema, which is the right division of labor.
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?
With 100% schema coverage the baseline is 3, and much of the parameter prose (language, jurisdiction, document_kind, source_type) restates schema text nearly verbatim. It earns above baseline by adding cross-parameter semantics the schema cannot express: the three norm subtypes collapse into one filter class, cited_norm implicitly restricts to case law, and the directive-article-vs-transposition-norm distinction for EU filters.
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 verb (search) and resource (legal documents) and immediately bounds scope: five jurisdictions, hybrid semantic + keyword retrieval, ranked snippets rather than full text. It also distinguishes itself from the two most confusable siblings by name (legal_lookup for a known citation, legal_lookup_batch for several), so an agent can route correctly without opening any 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?
Explicitly states the use case (topic questions and case facts where the provision or decision is unknown), names the alternatives for the complementary case, and recommends natural-language phrasing with concrete example queries. It goes further by warning about filter traps — 'decision' dropping norms before ranking, statute abbreviation combined with a decision scope yielding an empty set — which is guidance an agent would otherwise have to learn by failing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_resourcesList ResourcesARead-onlyInspect
List all available resources and resource templates.
Returns JSON with resource metadata. Static resources have a 'uri' field, while templates have a 'uri_template' field with placeholders like {name}.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds that results split into static resources ('uri') versus templates ('uri_template'), which is genuinely useful behavioral context. It does not cover pagination or whether the list is complete/unbounded, so with annotations carrying the safety burden a 3 is appropriate.
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 sentences with the core purpose front-loaded and no filler. The second/third sentences describe the return shape, which slightly overlaps the existing output schema, but the uri vs uri_template distinction earns its place as a discriminator for callers.
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?
An output schema already exists, so the description is not obligated to explain return values, yet it does add a useful layer about the two result shapes. Combined with the readOnly annotation and zero parameters, an agent has what it needs; only the relationship to read_resource is unstated.
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?
Zero parameters, so there is no parameter semantics to convey and the baseline of 4 applies. The description correctly focuses on output structure instead of inventing parameter detail.
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 ("List all available resources and resource templates") and further clarifies the two categories it returns. It is clear on its own, but never names or contrasts with the obvious sibling read_resource, so a small amount of differentiation is left to inference.
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?
No explicit when-to-use or when-not-to-use guidance, and no mention of read_resource as the follow-up action. Usage is only implied by the discovery nature of the tool. For a zero-arg catalog tool this is adequate but thin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_resourceRead ResourceARead-onlyInspect
Read a resource by its URI.
For static resources, provide the exact URI. For templated resources, provide the URI with template parameters filled in.
Returns the resource content as a string. Binary content is base64-encoded.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes | The URI of the resource to read |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds genuine behavioral context beyond that: the return is a string and binary payloads are base64-encoded, which materially affects how an agent must handle the result. It omits error/not-found behavior, but the encoding disclosure is a real addition.
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 sentences, front-loaded with the core action and then the two caveats an agent needs. Zero wasted words, though the 'Returns...' sentence partially overlaps the existing output schema.
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 an output schema present and annotations covering the read-only profile, the description need not detail return structure. It supplies the URI-construction nuance and encoding caveat, leaving only minor gaps such as invalid-URI or missing-resource behavior.
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% with a single string parameter, so baseline would be 3. The description goes beyond the schema by specifying that templated resources require the URI with template parameters already filled in, which is meaningful semantic guidance the schema does not carry.
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 gives a specific verb and resource ('Read a resource by its URI'), which cleanly separates it from list_resources and the legal_* tools. It does not explicitly name or contrast with any sibling, so it lands at a solid but not exemplary 4.
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 explains how to construct the URI for static vs templated resources, which is practical invocation guidance, but never states when to pick this tool over alternatives (e.g., list_resources first, or the legal_* lookups) or any preconditions. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- Changed
legal_get_toc2 fields changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "enum": [ - "bayern_gesetze", - "bgh", - "bpatg", - "bverfge", - "bverwg", - "dsk", - "edsa", - "eurlex", - "eurlex_caselaw", - "gesetzesmaterialien", - "gii", - "nrw_gesetze", - "nrw_rechtsprechung", - "rechtsprechung", - "sachsen_rechtsprechung", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bgh", + "bpatg", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "taetigkeitsberichte", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Empty = auto-detect; where an abbreviation names a law in two sources, the answer lists both. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."New value: +"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk', 'taetigkeitsberichte' or 'gesetzesmaterialien'. Empty = auto-detect; where an abbreviation names a law in two sources, the answer lists both. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."
- Changed
legal_list_laws3 fields changed- changed
Input schema / properties / document_kind / descriptionPrevious value: -"Filter by document class: the norm subtypes 'statute', 'regulation' and 'directive' form ONE class (any of them lists all three); 'decision' (court case-law), 'guidance' (supervisory-authority soft law, EDSA/DSK) and 'explanatory_memorandum' (legislative materials) are separate classes."New value: +"Filter by document class: the norm subtypes 'statute', 'regulation' and 'directive' form ONE class (any of them lists all three); 'decision' (court case-law), 'guidance' (supervisory-authority soft law, EDSA/DSK/activity reports) and 'explanatory_memorandum' (legislative materials) are separate classes." - changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "enum": [ - "bayern_gesetze", - "bgh", - "bpatg", - "bverfge", - "bverwg", - "dsk", - "edsa", - "eurlex", - "eurlex_caselaw", - "gesetzesmaterialien", - "gii", - "nrw_gesetze", - "nrw_rechtsprechung", - "rechtsprechung", - "sachsen_rechtsprechung", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bgh", + "bpatg", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "taetigkeitsberichte", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."New value: +"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk', 'taetigkeitsberichte' or 'gesetzesmaterialien'. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."
- Changed
legal_lookup2 fields changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "enum": [ - "bayern_gesetze", - "bgh", - "bpatg", - "bverfge", - "bverwg", - "dsk", - "edsa", - "eurlex", - "eurlex_caselaw", - "gesetzesmaterialien", - "gii", - "nrw_gesetze", - "nrw_rechtsprechung", - "rechtsprechung", - "sachsen_rechtsprechung", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bgh", + "bpatg", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "taetigkeitsberichte", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."New value: +"Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk', 'taetigkeitsberichte' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."
- Changed
legal_lookup_batch2 fields changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "enum": [ - "bayern_gesetze", - "bgh", - "bpatg", - "bverfge", - "bverwg", - "dsk", - "edsa", - "eurlex", - "eurlex_caselaw", - "gesetzesmaterialien", - "gii", - "nrw_gesetze", - "nrw_rechtsprechung", - "rechtsprechung", - "sachsen_rechtsprechung", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bgh", + "bpatg", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "taetigkeitsberichte", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."New value: +"Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk', 'taetigkeitsberichte' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."
- Changed
legal_search2 fields changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "enum": [ - "bayern_gesetze", - "bgh", - "bpatg", - "bverfge", - "bverwg", - "dsk", - "edsa", - "eurlex", - "eurlex_caselaw", - "gesetzesmaterialien", - "gii", - "nrw_gesetze", - "nrw_rechtsprechung", - "rechtsprechung", - "sachsen_rechtsprechung", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bgh", + "bpatg", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "taetigkeitsberichte", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU legislation, including regulations like DSGVO/DSA, directives and treaties), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions, 2010 onwards), 'bverfge' (BVerfG leading decisions from the official reporter BVerfGE, up to 2009 — the reported slice, not every BVerfG decision of that era), 'bverwg' (BVerwG judgments (Urteile) up to 2009), 'bgh' (BGH decisions 2000 to 2009), 'bpatg' (BPatG decisions 2000 to 2009, mostly trademark and patent appeals), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'edsa' (EDPB/EDSA data-protection guidance — soft law, not enacted norms; mostly English, see the language parameter), 'dsk' (Datenschutzkonferenz guidance: Orientierungshilfen, Kurzpapiere, Beschlüsse — the German supervisory authorities' reading of GDPR/BDSG), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials are opt-in: they appear with this value or document_kind='explanatory_memorandum', not in an unfiltered search). Empty = no source filter."New value: +"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU legislation, including regulations like DSGVO/DSA, directives and treaties), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions, 2010 onwards), 'bverfge' (BVerfG leading decisions from the official reporter BVerfGE, up to 2009 — the reported slice, not every BVerfG decision of that era), 'bverwg' (BVerwG judgments (Urteile) up to 2009), 'bgh' (BGH decisions 2000 to 2009), 'bpatg' (BPatG decisions 2000 to 2009, mostly trademark and patent appeals), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'edsa' (EDPB/EDSA data-protection guidance — soft law, not enacted norms; mostly English, see the language parameter), 'dsk' (Datenschutzkonferenz guidance: Orientierungshilfen, Kurzpapiere, Beschlüsse — the German supervisory authorities' reading of GDPR/BDSG), 'taetigkeitsberichte' (activity reports of 17 German supervisory authorities, all but Thuringia, from 2018, one section per case with authority, report and printed page — the single authority's enforcement practice), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials are opt-in: they appear with this value or document_kind='explanatory_memorandum', not in an unfiltered search). Empty = no source filter."
3 tool updates
- Changed
legal_get_materials3 fields changed- added
Input schema / properties / citationAdded value: +{ + "description": "The legal provision, e.g. '§ 823 BGB', 'Art. 87a GG'.", + "maxLength": 200, + "minLength": 1, + "type": "string" +} - removed
Input schema / properties / normRemoved value: -{ - "description": "The legal provision, e.g. '§ 823 BGB', 'Art. 87a GG'.", - "maxLength": 200, - "minLength": 1, - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "norm" -]New value: +[ + "citation" +]
- Changed
legal_list_laws2 fields changed- added
Input schema / properties / queryAdded value: +{ + "anyOf": [ + { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Case-insensitive search on abbreviation, title and official short designation ('Elektronischer-Rechtsverkehr-Verordnung'), e.g. 'bgb', 'datenschutz'. Also accepts a CELEX number ('32022L2555') or an EU instrument reference ('2022/2555', 'Richtlinie (EU) 2022/2555') and resolves it to the stored law." +} - removed
Input schema / properties / searchRemoved value: -{ - "anyOf": [ - { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Case-insensitive search on abbreviation, title and official short designation ('Elektronischer-Rechtsverkehr-Verordnung'), e.g. 'bgb', 'datenschutz'. Also accepts a CELEX number ('32022L2555') or an EU instrument reference ('2022/2555', 'Richtlinie (EU) 2022/2555') and resolves it to the stored law." -}
- Changed
legal_search2 fields changed- added
Input schema / properties / limitAdded value: +{ + "default": 5, + "description": "Number of results to return (default 5).", + "maximum": 50, + "minimum": 1, + "type": "integer" +} - removed
Input schema / properties / top_kRemoved value: -{ - "default": 5, - "description": "Number of results to return (default 5).", - "maximum": 50, - "minimum": 1, - "type": "integer" -}
5 tool updates
- Changed
legal_get_toc2 fields changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "enum": [ - "bayern_gesetze", - "bverfge", - "bverwg", - "dsk", - "edsa", - "eurlex", - "eurlex_caselaw", - "gesetzesmaterialien", - "gii", - "nrw_gesetze", - "nrw_rechtsprechung", - "rechtsprechung", - "sachsen_rechtsprechung", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bgh", + "bpatg", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Empty = auto-detect; where an abbreviation names a law in two sources, the answer lists both. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."New value: +"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Empty = auto-detect; where an abbreviation names a law in two sources, the answer lists both. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."
- Changed
legal_list_laws2 fields changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "enum": [ - "bayern_gesetze", - "bverfge", - "bverwg", - "dsk", - "edsa", - "eurlex", - "eurlex_caselaw", - "gesetzesmaterialien", - "gii", - "nrw_gesetze", - "nrw_rechtsprechung", - "rechtsprechung", - "sachsen_rechtsprechung", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bgh", + "bpatg", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."New value: +"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."
- Changed
legal_lookup2 fields changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "enum": [ - "bayern_gesetze", - "bverfge", - "bverwg", - "dsk", - "edsa", - "eurlex", - "eurlex_caselaw", - "gesetzesmaterialien", - "gii", - "nrw_gesetze", - "nrw_rechtsprechung", - "rechtsprechung", - "sachsen_rechtsprechung", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bgh", + "bpatg", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."New value: +"Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."
- Changed
legal_lookup_batch2 fields changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "enum": [ - "bayern_gesetze", - "bverfge", - "bverwg", - "dsk", - "edsa", - "eurlex", - "eurlex_caselaw", - "gesetzesmaterialien", - "gii", - "nrw_gesetze", - "nrw_rechtsprechung", - "rechtsprechung", - "sachsen_rechtsprechung", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bgh", + "bpatg", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."New value: +"Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'bgh', 'bpatg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."
- Changed
legal_search2 fields changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "enum": [ - "bayern_gesetze", - "bverfge", - "bverwg", - "dsk", - "edsa", - "eurlex", - "eurlex_caselaw", - "gesetzesmaterialien", - "gii", - "nrw_gesetze", - "nrw_rechtsprechung", - "rechtsprechung", - "sachsen_rechtsprechung", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bgh", + "bpatg", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU legislation, including regulations like DSGVO/DSA, directives and treaties), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions, 2010 onwards), 'bverfge' (BVerfG leading decisions from the official reporter BVerfGE, up to 2009 — the reported slice, not every BVerfG decision of that era), 'bverwg' (BVerwG judgments (Urteile) up to 2009), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'edsa' (EDPB/EDSA data-protection guidance — soft law, not enacted norms; mostly English, see the language parameter), 'dsk' (Datenschutzkonferenz guidance: Orientierungshilfen, Kurzpapiere, Beschlüsse — the German supervisory authorities' reading of GDPR/BDSG), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials are opt-in: they appear with this value or document_kind='explanatory_memorandum', not in an unfiltered search). Empty = no source filter."New value: +"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU legislation, including regulations like DSGVO/DSA, directives and treaties), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions, 2010 onwards), 'bverfge' (BVerfG leading decisions from the official reporter BVerfGE, up to 2009 — the reported slice, not every BVerfG decision of that era), 'bverwg' (BVerwG judgments (Urteile) up to 2009), 'bgh' (BGH decisions 2000 to 2009), 'bpatg' (BPatG decisions 2000 to 2009, mostly trademark and patent appeals), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'edsa' (EDPB/EDSA data-protection guidance — soft law, not enacted norms; mostly English, see the language parameter), 'dsk' (Datenschutzkonferenz guidance: Orientierungshilfen, Kurzpapiere, Beschlüsse — the German supervisory authorities' reading of GDPR/BDSG), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials are opt-in: they appear with this value or document_kind='explanatory_memorandum', not in an unfiltered search). Empty = no source filter."
4 tool updates
- Changed
legal_get_materials1 field changed- added
Input schema / properties / jurisdictionAdded value: +{ + "anyOf": [ + { + "items": { + "description": "Jurisdiction of the legal document.", + "enum": [ + "de", + "eu", + "de_by", + "de_sn", + "de_nw" + ], + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Legal orders the call covers, one or more ('de', 'eu', 'de_by', 'de_nw', 'de_sn'). Materials exist for German federal law only: a scope without 'de' returns a hint instead of materials. Omitted, the account's legal order applies." +}
- Changed
legal_get_toc1 field changed- added
Input schema / properties / jurisdictionAdded value: +{ + "anyOf": [ + { + "items": { + "description": "Jurisdiction of the legal document.", + "enum": [ + "de", + "eu", + "de_by", + "de_sn", + "de_nw" + ], + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Legal orders the law must belong to, one or more ('de', 'eu', 'de_by', 'de_nw', 'de_sn'; 'de' matches federal AND state law). Omitted, every legal order answers, and where the abbreviation names laws of several, the account's legal order decides; jurisdiction_scope names it." +}
- Changed
legal_lookup4 fields changed- added
Input schema / properties / jurisdictionAdded value: +{ + "anyOf": [ + { + "items": { + "description": "Jurisdiction of the legal document.", + "enum": [ + "de", + "eu", + "de_by", + "de_sn", + "de_nw" + ], + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Legal orders the cited law or decision must belong to, one or more: 'de' (all German law — federal AND state), 'eu', 'de_by', 'de_nw', 'de_sn'. A value matches its own family only: 'de' adds no EU law. Omitted, every legal order answers, and where an abbreviation names laws of several (e.g. 'EUV': a German Verordnung and the EU Treaty), the account's legal order decides; jurisdiction_scope names it. Set, nothing outside it answers: a not_found then lists in also_exists_in where the cited law exists." +} - added
Input schema / properties / source_typeAdded value: +{ + "anyOf": [ + { + "enum": [ + "bayern_gesetze", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents." +} - removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / anyOfAdded value: +[ + { + "additionalProperties": true, + "allOf": [ + { + "if": { + "properties": { + "reason": { + "enum": [ + "ambiguous_abbreviation", + "ambiguous_jurisdiction" + ] + } + }, + "required": [ + "reason" + ] + }, + "then": { + "properties": { + "candidates": { + "items": { + "properties": { + "arguments": { + "properties": { + "citation": { + "type": "string" + }, + "language": { + "type": "string" + }, + "source_type": { + "type": "string" + } + }, + "required": [ + "citation", + "source_type", + "language" + ], + "type": "object" + }, + "jurisdiction": { + "type": "string" + }, + "law_abbreviation": { + "type": "string" + }, + "source_type": { + "type": "string" + } + }, + "required": [ + "law_abbreviation", + "source_type", + "jurisdiction", + "arguments" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "candidates", + "candidate_count", + "hint" + ] + } + } + ], + "properties": { + "also_exists_in": { + "items": { + "properties": { + "jurisdiction": { + "type": "string" + }, + "law_abbreviation": { + "type": "string" + }, + "source_type": { + "type": "string" + } + }, + "required": [ + "law_abbreviation", + "source_type", + "jurisdiction" + ], + "type": "object" + }, + "type": "array" + }, + "candidate_count": { + "type": "integer" + }, + "citation": { + "type": "string" + }, + "found": { + "type": "boolean" + }, + "hint": { + "type": "string" + }, + "jurisdiction_scope": { + "properties": { + "jurisdictions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "language": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "jurisdictions", + "language", + "source" + ], + "type": "object" + }, + "reason": { + "enum": [ + "unparseable_citation", + "not_found", + "ambiguous_abbreviation", + "ambiguous_jurisdiction", + "ambiguous_provision" + ] + } + }, + "required": [ + "found", + "jurisdiction_scope" + ], + "type": "object" + }, + { + "required": [ + "notice" + ], + "type": "object" + } +]
- Changed
legal_lookup_batch4 fields changed- added
Input schema / properties / jurisdictionAdded value: +{ + "anyOf": [ + { + "items": { + "description": "Jurisdiction of the legal document.", + "enum": [ + "de", + "eu", + "de_by", + "de_sn", + "de_nw" + ], + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Legal orders the cited law or decision must belong to, one or more: 'de' (all German law — federal AND state), 'eu', 'de_by', 'de_nw', 'de_sn'. A value matches its own family only: 'de' adds no EU law. Omitted, every legal order answers, and where an abbreviation names laws of several (e.g. 'EUV': a German Verordnung and the EU Treaty), the account's legal order decides; jurisdiction_scope names it. Set, nothing outside it answers: a not_found then lists in also_exists_in where the cited law exists." +} - added
Input schema / properties / source_typeAdded value: +{ + "anyOf": [ + { + "enum": [ + "bayern_gesetze", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Source the cited law or decision must come from: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. An abbreviation names one law per source, so the source selects exactly one law — also between federal and state law, which 'de' covers together. Omitted, every source answers. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents." +} - removed
Output schema / additionalPropertiesRemoved value: -true - added
Output schema / anyOfAdded value: +[ + { + "additionalProperties": true, + "properties": { + "found_count": { + "type": "integer" + }, + "jurisdiction_scope": { + "properties": { + "jurisdictions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "language": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "jurisdictions", + "language", + "source" + ], + "type": "object" + }, + "not_found_count": { + "type": "integer" + }, + "results": { + "items": { + "additionalProperties": true, + "allOf": [ + { + "if": { + "properties": { + "reason": { + "enum": [ + "ambiguous_abbreviation", + "ambiguous_jurisdiction" + ] + } + }, + "required": [ + "reason" + ] + }, + "then": { + "properties": { + "candidates": { + "items": { + "properties": { + "arguments": { + "properties": { + "citation": { + "type": "string" + }, + "language": { + "type": "string" + }, + "source_type": { + "type": "string" + } + }, + "required": [ + "citation", + "source_type", + "language" + ], + "type": "object" + }, + "jurisdiction": { + "type": "string" + }, + "law_abbreviation": { + "type": "string" + }, + "source_type": { + "type": "string" + } + }, + "required": [ + "law_abbreviation", + "source_type", + "jurisdiction", + "arguments" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "candidates", + "candidate_count", + "hint" + ] + } + } + ], + "properties": { + "also_exists_in": { + "items": { + "properties": { + "jurisdiction": { + "type": "string" + }, + "law_abbreviation": { + "type": "string" + }, + "source_type": { + "type": "string" + } + }, + "required": [ + "law_abbreviation", + "source_type", + "jurisdiction" + ], + "type": "object" + }, + "type": "array" + }, + "candidate_count": { + "type": "integer" + }, + "citation": { + "type": "string" + }, + "found": { + "type": "boolean" + }, + "hint": { + "type": "string" + }, + "reason": { + "enum": [ + "unparseable_citation", + "not_found", + "ambiguous_abbreviation", + "ambiguous_jurisdiction", + "ambiguous_provision" + ] + } + }, + "required": [ + "found" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "type": "integer" + } + }, + "required": [ + "results", + "found_count", + "not_found_count", + "total", + "jurisdiction_scope" + ], + "type": "object" + }, + { + "required": [ + "notice" + ], + "type": "object" + } +]
5 tool updates
- Changed
legal_get_toc2 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"Document language: 'de' (German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (documents in German, of every legal order in the scope) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English." - changed
Input schema / properties / source_type / descriptionPrevious value: -"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Empty = auto-detect; where an abbreviation names a law in two sources, the answer lists both. Note: 'edsa' is published mostly in English: language='en' covers the full set, the DE default only the translated documents."New value: +"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Empty = auto-detect; where an abbreviation names a law in two sources, the answer lists both. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."
- Changed
legal_list_laws4 fields changed- changed
Input schema / properties / jurisdiction / anyOfPrevious value: -[ - { - "description": "Jurisdiction of the legal document.", - "enum": [ - "de", - "eu", - "de_by", - "de_sn", - "de_nw" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "description": "Jurisdiction of the legal document.", + "enum": [ + "de", + "eu", + "de_by", + "de_sn", + "de_nw" + ], + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / jurisdiction / descriptionPrevious value: -"Filter by jurisdiction: 'de' (all German law — matches federal AND state law; federal only is source_type='gii'), 'eu', 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only). Empty = no jurisdiction filter."New value: +"Jurisdictions to list, one or more: 'de' (all German law — matches federal AND state law; federal only is source_type='gii'), 'eu', 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only). A value matches its own family only: 'de' adds no EU law. Omitted, the account's legal order applies — for a German account German and EU law." - changed
Input schema / properties / language / descriptionPrevious value: -"Document language: 'de' (German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (documents in German, of every legal order in the scope) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English." - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Note: 'edsa' is published mostly in English: language='en' covers the full set, the DE default only the translated documents."New value: +"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Note: 'edsa' is published mostly in English: language='en' covers the full set, the German corpus only the translated documents."
- Changed
legal_lookup1 field changed- changed
Input schema / properties / language / descriptionPrevious value: -"Document language: 'de' (German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (documents in German, of every legal order in the scope) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."
- Changed
legal_lookup_batch1 field changed- changed
Input schema / properties / language / descriptionPrevious value: -"Document language: 'de' (German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (documents in German, of every legal order in the scope) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."
- Changed
legal_search3 fields changed- changed
Input schema / properties / jurisdiction / anyOfPrevious value: -[ - { - "description": "Jurisdiction of the legal document.", - "enum": [ - "de", - "eu", - "de_by", - "de_sn", - "de_nw" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "description": "Jurisdiction of the legal document.", + "enum": [ + "de", + "eu", + "de_by", + "de_sn", + "de_nw" + ], + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Input schema / properties / jurisdiction / descriptionPrevious value: -"Filter by jurisdiction: 'de' (all German law — matches federal AND state law, incl. Staatsverträge like the Medienstaatsvertrag), 'eu' (EU), 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only — Saxon state law is not in the corpus, so this matches Saxon court decisions). 'de' includes state law; source_type='gii' restricts to federal statutes. Empty = no jurisdiction filter."New value: +"Jurisdictions to search, one or more: 'de' (all German law — matches federal AND state law, incl. Staatsverträge like the Medienstaatsvertrag), 'eu' (EU), 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only — Saxon state law is not in the corpus, so this matches Saxon court decisions). A value matches its own family only: 'de' adds no EU law, ['de', 'eu'] covers both; source_type='gii' restricts to federal statutes. Omitted, the account's legal order applies — for a German account German and EU law — and jurisdiction_scope names it." - changed
Input schema / properties / language / descriptionPrevious value: -"Document language: 'de' (German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (documents in German, of every legal order in the scope) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."
5 tool updates
- Changed
legal_get_toc2 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"Document language: 'de' (default, German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English." - changed
Input schema / properties / law_abbreviation / maxLengthPrevious value: -128New value: +512
- Changed
legal_list_laws1 field changed- changed
Input schema / properties / language / descriptionPrevious value: -"Document language: 'de' (default, German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."
- Changed
legal_lookup1 field changed- changed
Input schema / properties / language / descriptionPrevious value: -"Document language: 'de' (default, German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."
- Changed
legal_lookup_batch1 field changed- changed
Input schema / properties / language / descriptionPrevious value: -"Document language: 'de' (default, German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."
- Changed
legal_search2 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"Document language: 'de' (default, German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). Omitted, the account's document language applies ('de' unless the account sets another). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English." - changed
Input schema / properties / law_abbreviation / anyOfPrevious value: -[ - { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +]
7 tool updates
- Changed
legal_find_citing_decisions1 field changed- changed
Input schema / properties / cited_norm / descriptionPrevious value: -"The legal provision, e.g. '§ 823 BGB', 'Art. 6 DSGVO'. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. The transposition norm covers everyday German case law, the directive article EU-level interpretation; a plain legal_search on the topic reveals the transposition norm when it is unknown. EU regulations (DSGVO, MDR) are cited directly."New value: +"The legal provision, e.g. '§ 823 BGB', 'Art. 6 DSGVO'. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. The transposition norm covers everyday German case law, the directive article EU-level interpretation. EU regulations (DSGVO, MDR) are cited directly."
- Changed
legal_get_context3 fields changed- changed
Input schema / properties / after / descriptionPrevious value: -"Number of norms after the target (max 10)."New value: +"Number of stored text sections after the target (max 10)." - changed
Input schema / properties / before / descriptionPrevious value: -"Number of norms before the target (max 10)."New value: +"Number of stored text sections before the target (max 10)." - changed
Input schema / properties / norm_id / descriptionPrevious value: -"norm_id from a prior legal_search or legal_lookup result."New value: +"norm_id from legal_search, legal_lookup or legal_get_toc, or a section's id from legal_get_context."
- Changed
legal_get_toc4 fields changed- changed
Input schema / properties / language / anyOfPrevious value: -[ - { - "description": "Content language of legal documents.\n\nUses StrEnum so values compare equal to plain strings for\nseamless PostgreSQL/Qdrant compatibility.", - "enum": [ - "de", - "en" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Document language, independent of the language of the answer.", + "enum": [ + "de", + "en" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / language / descriptionPrevious value: -"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (default, German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English." - changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", - "enum": [ - "gii", - "eurlex", - "eurlex_caselaw", - "rechtsprechung", - "sachsen_rechtsprechung", - "sachsen_gesetze", - "bayern_gesetze", - "nrw_gesetze", - "nrw_rechtsprechung", - "gesetzesmaterialien", - "edsa", - "bverfge", - "bverwg", - "verwaltungsvorschriften", - "dsk" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Leave empty to auto-detect; where an abbreviation names a law in two sources, the answer lists them so you can retry. Note: 'edsa' is published mostly in English: language='en' covers the full set, the DE default only the translated documents."New value: +"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Empty = auto-detect; where an abbreviation names a law in two sources, the answer lists both. Note: 'edsa' is published mostly in English: language='en' covers the full set, the DE default only the translated documents."
- Changed
legal_list_laws6 fields changed- changed
Input schema / properties / document_kind / anyOfPrevious value: -[ - { - "description": "Legal document type classification.\n\nUses StrEnum so values compare equal to plain strings for\nseamless PostgreSQL/Qdrant compatibility.", - "enum": [ - "statute", - "regulation", - "directive", - "decision", - "explanatory_memorandum", - "guidance" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Document class: legislation, court decisions, legislative materials or guidance.", + "enum": [ + "statute", + "regulation", + "directive", + "decision", + "explanatory_memorandum", + "guidance" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / jurisdiction / anyOfPrevious value: -[ - { - "description": "Legal jurisdiction identifiers.\n\nUses StrEnum so values compare equal to plain strings for\nseamless PostgreSQL/Qdrant compatibility.", - "enum": [ - "de", - "eu", - "de_by", - "de_sn", - "de_nw" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Jurisdiction of the legal document.", + "enum": [ + "de", + "eu", + "de_by", + "de_sn", + "de_nw" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / jurisdiction / descriptionPrevious value: -"Filter by jurisdiction: 'de' (all German law — matches federal AND state law; for federal only use source_type='gii'), 'eu', 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only). Leave empty for all jurisdictions."New value: +"Filter by jurisdiction: 'de' (all German law — matches federal AND state law; federal only is source_type='gii'), 'eu', 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only). Empty = no jurisdiction filter." - changed
Input schema / properties / language / anyOfPrevious value: -[ - { - "description": "Content language of legal documents.\n\nUses StrEnum so values compare equal to plain strings for\nseamless PostgreSQL/Qdrant compatibility.", - "enum": [ - "de", - "en" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Document language, independent of the language of the answer.", + "enum": [ + "de", + "en" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / language / descriptionPrevious value: -"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (default, German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English." - changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", - "enum": [ - "gii", - "eurlex", - "eurlex_caselaw", - "rechtsprechung", - "sachsen_rechtsprechung", - "sachsen_gesetze", - "bayern_gesetze", - "nrw_gesetze", - "nrw_rechtsprechung", - "gesetzesmaterialien", - "edsa", - "bverfge", - "bverwg", - "verwaltungsvorschriften", - "dsk" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +]
- Changed
legal_lookup2 fields changed- changed
Input schema / properties / language / anyOfPrevious value: -[ - { - "description": "Content language of legal documents.\n\nUses StrEnum so values compare equal to plain strings for\nseamless PostgreSQL/Qdrant compatibility.", - "enum": [ - "de", - "en" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Document language, independent of the language of the answer.", + "enum": [ + "de", + "en" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / language / descriptionPrevious value: -"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (default, German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."
- Changed
legal_lookup_batch2 fields changed- changed
Input schema / properties / language / anyOfPrevious value: -[ - { - "description": "Content language of legal documents.\n\nUses StrEnum so values compare equal to plain strings for\nseamless PostgreSQL/Qdrant compatibility.", - "enum": [ - "de", - "en" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Document language, independent of the language of the answer.", + "enum": [ + "de", + "en" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / language / descriptionPrevious value: -"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (default, German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."
- Changed
legal_search14 fields changed- changed
Input schema / properties / chapter / descriptionPrevious value: -"Filter by chapter/section within a law. Rarely needed — can reduce recall. Only useful with law_abbreviation."New value: +"Narrows to one chapter/section within a law; reduces recall. Only meaningful together with law_abbreviation." - changed
Input schema / properties / cited_norm / descriptionPrevious value: -"Restrict results to court decisions that verifiably cite this provision (citation-graph filter, e.g. '§ 573 BGB' or 'Art. 6 DSGVO'). Combine with a case-specific query — e.g. query='Eigenbedarfskündigung Härtefall hohes Alter', cited_norm='§ 573 BGB' — to get decisions that both apply the provision AND match the facts of the case. It yields the case law for a specific provision and question; legal_find_citing_decisions yields the unranked inventory, newest first. Matching is paragraph-level (Abs./Satz/Nr. are ignored). Only court decisions carry citations, so this filter implicitly restricts to case law — no document_kind needed. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. The transposition norm covers everyday German case law, the directive article EU-level interpretation; a plain legal_search on the topic reveals the transposition norm when it is unknown. EU regulations (DSGVO, MDR) are cited directly."New value: +"Restrict results to court decisions that verifiably cite this provision (citation-graph filter, e.g. '§ 573 BGB' or 'Art. 6 DSGVO'). With a case-specific query — e.g. query='Eigenbedarfskündigung Härtefall hohes Alter', cited_norm='§ 573 BGB' — citing candidates are ranked by relevance to the query. A citation does not establish applicability to the facts. legal_find_citing_decisions yields the unranked inventory, newest first. Matching is paragraph-level (Abs./Satz/Nr. are ignored). Only court decisions carry citations, so this filter implicitly restricts to case law — no document_kind needed. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. The transposition norm covers everyday German case law, the directive article EU-level interpretation. EU regulations (DSGVO, MDR) are cited directly." - changed
Input schema / properties / court / anyOfPrevious value: -[ - { - "description": "Courts available as search filter.\n\nValues match the ``extra.gericht`` Qdrant payload field used by\nboth Rechtsprechung-im-Internet (German federal courts) and\nEUR-Lex case law (EU courts).", - "enum": [ - "BGH", - "BVerfG", - "BVerwG", - "BFH", - "BAG", - "BSG", - "BPatG", - "GmSOGB", - "Sächsisches OVG", - "Oberverwaltungsgericht NRW", - "Oberlandesgericht Düsseldorf", - "Oberlandesgericht Hamm", - "Oberlandesgericht Köln", - "Landesarbeitsgericht Düsseldorf", - "Landesarbeitsgericht Hamm", - "Landesarbeitsgericht Köln", - "Landessozialgericht NRW", - "Finanzgericht Düsseldorf", - "Finanzgericht Köln", - "Finanzgericht Münster", - "Verfassungsgerichtshof NRW", - "EuGH", - "EuG" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "German federal and state courts and EU courts available as search filters.", + "enum": [ + "BGH", + "BVerfG", + "BVerwG", + "BFH", + "BAG", + "BSG", + "BPatG", + "GmSOGB", + "Sächsisches OVG", + "Oberverwaltungsgericht NRW", + "Oberlandesgericht Düsseldorf", + "Oberlandesgericht Hamm", + "Oberlandesgericht Köln", + "Landesarbeitsgericht Düsseldorf", + "Landesarbeitsgericht Hamm", + "Landesarbeitsgericht Köln", + "Landessozialgericht NRW", + "Finanzgericht Düsseldorf", + "Finanzgericht Köln", + "Finanzgericht Münster", + "Verfassungsgerichtshof NRW", + "EuGH", + "EuG" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / decision_type / anyOfPrevious value: -[ - { - "description": "Decision types available as search filter.\n\nValues match the ``doktyp`` field in Rechtsprechung-im-Internet XML\nand the Qdrant payload ``decision_type`` field.\n\nNote: ``Gerichtsbescheid`` exists in the XML but is intentionally\nexcluded from the filter enum — it is rare and not useful as a\nuser-facing filter. The parser handles it internally.", - "enum": [ - "Urteil", - "Beschluss" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Type of court decision: judgment (Urteil) or order (Beschluss).", + "enum": [ + "Urteil", + "Beschluss" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / document_kind / anyOfPrevious value: -[ - { - "description": "Legal document type classification.\n\nUses StrEnum so values compare equal to plain strings for\nseamless PostgreSQL/Qdrant compatibility.", - "enum": [ - "statute", - "regulation", - "directive", - "decision", - "explanatory_memorandum", - "guidance" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Document class: legislation, court decisions, legislative materials or guidance.", + "enum": [ + "statute", + "regulation", + "directive", + "decision", + "explanatory_memorandum", + "guidance" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / document_kind / descriptionPrevious value: -"Filter by document class: the three norm subtypes 'statute', 'regulation' and 'directive' form ONE filter class — any of them admits all three, so you cannot (and need not) tell them apart, and an EU regulation or directive is never hidden by a reflexive 'statute'. Three values discriminate: 'decision' restricts to court case-law (how a norm is applied), 'guidance' restricts to supervisory-authority soft law (EDPB/EDSA and Datenschutzkonferenz — authoritative readings of the GDPR/BDSG, not enacted norms and not binding), and 'explanatory_memorandum' restricts to legislative materials (Gesetzesbegründung / BT-Drucksachen — the legislator's intent behind a norm; ratio legis, purpose of an amendment). Materials are opt-in: reachable via this value, source_type='gesetzesmaterialien', or legal_get_materials for one provision, not in an unfiltered search. Leave empty for mixed questions. legal://filter_values documents the per-value definitions and disambiguation."New value: +"Filter by document class: the three norm subtypes 'statute', 'regulation' and 'directive' form ONE filter class — any of them admits all three, so they need not be told apart, and an EU regulation or directive is never hidden by a reflexive 'statute'. Three values discriminate: 'decision' restricts to court case-law (how a norm is applied), 'guidance' restricts to supervisory-authority soft law (EDPB/EDSA and Datenschutzkonferenz — authoritative readings of the GDPR/BDSG, not enacted norms and not binding), and 'explanatory_memorandum' restricts to legislative materials (Gesetzesbegründung / BT-Drucksachen — the legislator's intent behind a norm; ratio legis, purpose of an amendment). Materials are opt-in: reachable via this value, source_type='gesetzesmaterialien', or legal_get_materials for one provision, not in an unfiltered search. Empty = no document-class filter: norms, case law and guidance can rank together, subject to other filters. legal://filter_values documents the per-value definitions and disambiguation." - changed
Input schema / properties / jurisdiction / anyOfPrevious value: -[ - { - "description": "Legal jurisdiction identifiers.\n\nUses StrEnum so values compare equal to plain strings for\nseamless PostgreSQL/Qdrant compatibility.", - "enum": [ - "de", - "eu", - "de_by", - "de_sn", - "de_nw" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Jurisdiction of the legal document.", + "enum": [ + "de", + "eu", + "de_by", + "de_sn", + "de_nw" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / jurisdiction / descriptionPrevious value: -"Filter by jurisdiction: 'de' (all German law — matches federal AND state law, incl. Staatsverträge like the Medienstaatsvertrag), 'eu' (EU), 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only — Saxon state law is not in the corpus, so this matches Saxon court decisions). 'de' includes state law; source_type='gii' restricts to federal statutes. Leave empty for cross-jurisdiction search."New value: +"Filter by jurisdiction: 'de' (all German law — matches federal AND state law, incl. Staatsverträge like the Medienstaatsvertrag), 'eu' (EU), 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only — Saxon state law is not in the corpus, so this matches Saxon court decisions). 'de' includes state law; source_type='gii' restricts to federal statutes. Empty = no jurisdiction filter." - changed
Input schema / properties / language / anyOfPrevious value: -[ - { - "description": "Content language of legal documents.\n\nUses StrEnum so values compare equal to plain strings for\nseamless PostgreSQL/Qdrant compatibility.", - "enum": [ - "de", - "en" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Document language, independent of the language of the answer.", + "enum": [ + "de", + "en" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / language / descriptionPrevious value: -"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."New value: +"Document language: 'de' (default, German-language documents from German and EU sources) or 'en' (currently EDPB/EDSA data-protection guidance only). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English." - changed
Input schema / properties / law_abbreviation / descriptionPrevious value: -"Filter by law abbreviation, e.g. 'bgb', 'dsgvo'. Leave empty for thematic questions."New value: +"Restrict to the named document, e.g. 'bgb', 'dsgvo'. A statute abbreviation does not select decisions citing that statute; cited_norm selects those decisions. Omitted or null = no law filter." - changed
Input schema / properties / query / descriptionPrevious value: -"Search query as a natural sentence using statutory language (not keywords or doctrinal terms)."New value: +"Natural-language question or case facts, e.g. 'Wann verjährt ein Schadensersatzanspruch?'. Terms used in the relevant legal documents help retrieval." - changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", - "enum": [ - "gii", - "eurlex", - "eurlex_caselaw", - "rechtsprechung", - "sachsen_rechtsprechung", - "sachsen_gesetze", - "bayern_gesetze", - "nrw_gesetze", - "nrw_rechtsprechung", - "gesetzesmaterialien", - "edsa", - "bverfge", - "bverwg", - "verwaltungsvorschriften", - "dsk" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "bayern_gesetze", + "bverfge", + "bverwg", + "dsk", + "edsa", + "eurlex", + "eurlex_caselaw", + "gesetzesmaterialien", + "gii", + "nrw_gesetze", + "nrw_rechtsprechung", + "rechtsprechung", + "sachsen_rechtsprechung", + "verwaltungsvorschriften" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU regulations like DSGVO, DSA), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions, 2010 onwards), 'bverfge' (BVerfG leading decisions from the official reporter BVerfGE, up to 2009 — the reported slice, not every BVerfG decision of that era), 'bverwg' (BVerwG judgments (Urteile) up to 2009), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'edsa' (EDPB/EDSA data-protection guidance — soft law, not enacted norms; mostly English, see the language parameter), 'dsk' (Datenschutzkonferenz guidance: Orientierungshilfen, Kurzpapiere, Beschlüsse — the German supervisory authorities' reading of GDPR/BDSG), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials are opt-in: they appear with this value or document_kind='explanatory_memorandum', not in an unfiltered search). Leave empty for cross-source search."New value: +"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU legislation, including regulations like DSGVO/DSA, directives and treaties), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions, 2010 onwards), 'bverfge' (BVerfG leading decisions from the official reporter BVerfGE, up to 2009 — the reported slice, not every BVerfG decision of that era), 'bverwg' (BVerwG judgments (Urteile) up to 2009), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'edsa' (EDPB/EDSA data-protection guidance — soft law, not enacted norms; mostly English, see the language parameter), 'dsk' (Datenschutzkonferenz guidance: Orientierungshilfen, Kurzpapiere, Beschlüsse — the German supervisory authorities' reading of GDPR/BDSG), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials are opt-in: they appear with this value or document_kind='explanatory_memorandum', not in an unfiltered search). Empty = no source filter."
6 tool updates
- Changed
legal_find_citing_decisions1 field changed- changed
Input schema / properties / cited_norm / descriptionPrevious value: -"The legal provision, e.g. '§ 823 BGB', 'Art. 6 DSGVO'. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. Prefer the transposition norm for everyday German case law, the directive article for EU-level interpretation; run a plain legal_search first if you do not know the transposition norm. EU regulations (DSGVO, MDR) are cited directly."New value: +"The legal provision, e.g. '§ 823 BGB', 'Art. 6 DSGVO'. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. The transposition norm covers everyday German case law, the directive article EU-level interpretation; a plain legal_search on the topic reveals the transposition norm when it is unknown. EU regulations (DSGVO, MDR) are cited directly."
- Changed
legal_get_toc2 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. Set 'en' only when the user explicitly works in English or asks for the English version."New value: +"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English." - changed
Input schema / properties / source_type / descriptionPrevious value: -"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Leave empty to auto-detect; where an abbreviation names a law in two sources, the answer lists them so you can retry. Note: 'edsa' is published mostly in English — pair it with language='en', or the DE default leaves you only the few translated documents."New value: +"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Leave empty to auto-detect; where an abbreviation names a law in two sources, the answer lists them so you can retry. Note: 'edsa' is published mostly in English: language='en' covers the full set, the DE default only the translated documents."
- Changed
legal_list_laws2 fields changed- changed
Input schema / properties / language / descriptionPrevious value: -"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. Set 'en' only when the user explicitly works in English or asks for the English version."New value: +"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English." - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Note: 'edsa' is published mostly in English — pair it with language='en', or the DE default leaves you only the few translated documents."New value: +"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Note: 'edsa' is published mostly in English: language='en' covers the full set, the DE default only the translated documents."
- Changed
legal_lookup1 field changed- changed
Input schema / properties / language / descriptionPrevious value: -"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. Set 'en' only when the user explicitly works in English or asks for the English version."New value: +"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."
- Changed
legal_lookup_batch1 field changed- changed
Input schema / properties / language / descriptionPrevious value: -"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. Set 'en' only when the user explicitly works in English or asks for the English version."New value: +"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English."
- Changed
legal_search5 fields changed- changed
Input schema / properties / cited_norm / descriptionPrevious value: -"Restrict results to court decisions that verifiably cite this provision (citation-graph filter, e.g. '§ 573 BGB' or 'Art. 6 DSGVO'). Combine with a case-specific query — e.g. query='Eigenbedarfskündigung Härtefall hohes Alter', cited_norm='§ 573 BGB' — to get decisions that both apply the provision AND match the facts of the case. This is the preferred way to find case law for a specific provision and a specific question. Matching is paragraph-level (Abs./Satz/Nr. are ignored). Only court decisions carry citations, so this filter implicitly restricts to case law — no document_kind needed. For the raw citation inventory of a provision (newest first), use legal_find_citing_decisions instead. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. Prefer the transposition norm for everyday German case law, the directive article for EU-level interpretation; run a plain legal_search first if you do not know the transposition norm. EU regulations (DSGVO, MDR) are cited directly."New value: +"Restrict results to court decisions that verifiably cite this provision (citation-graph filter, e.g. '§ 573 BGB' or 'Art. 6 DSGVO'). Combine with a case-specific query — e.g. query='Eigenbedarfskündigung Härtefall hohes Alter', cited_norm='§ 573 BGB' — to get decisions that both apply the provision AND match the facts of the case. It yields the case law for a specific provision and question; legal_find_citing_decisions yields the unranked inventory, newest first. Matching is paragraph-level (Abs./Satz/Nr. are ignored). Only court decisions carry citations, so this filter implicitly restricts to case law — no document_kind needed. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. The transposition norm covers everyday German case law, the directive article EU-level interpretation; a plain legal_search on the topic reveals the transposition norm when it is unknown. EU regulations (DSGVO, MDR) are cited directly." - changed
Input schema / properties / document_kind / descriptionPrevious value: -"Filter by document class: the three norm subtypes 'statute', 'regulation' and 'directive' form ONE filter class — any of them admits all three, so you cannot (and need not) tell them apart, and an EU regulation or directive is never hidden by a reflexive 'statute'. Three values discriminate: 'decision' restricts to court case-law (prefer it for how-a-norm-is-applied questions), 'guidance' restricts to supervisory-authority soft law (EDPB/EDSA and Datenschutzkonferenz — authoritative readings of the GDPR/BDSG, not enacted norms and not binding), and 'explanatory_memorandum' restricts to legislative materials (Gesetzesbegründung / BT-Drucksachen — the legislator's intent behind a norm; prefer it for ratio-legis or purpose-of-an-amendment questions). Materials are opt-in: an unfiltered search never returns them — set this value (or source_type='gesetzesmaterialien') to search them, or use legal_get_materials for a specific provision. Leave empty for mixed questions. See legal://filter_values for the per-value definitions and disambiguation."New value: +"Filter by document class: the three norm subtypes 'statute', 'regulation' and 'directive' form ONE filter class — any of them admits all three, so you cannot (and need not) tell them apart, and an EU regulation or directive is never hidden by a reflexive 'statute'. Three values discriminate: 'decision' restricts to court case-law (how a norm is applied), 'guidance' restricts to supervisory-authority soft law (EDPB/EDSA and Datenschutzkonferenz — authoritative readings of the GDPR/BDSG, not enacted norms and not binding), and 'explanatory_memorandum' restricts to legislative materials (Gesetzesbegründung / BT-Drucksachen — the legislator's intent behind a norm; ratio legis, purpose of an amendment). Materials are opt-in: reachable via this value, source_type='gesetzesmaterialien', or legal_get_materials for one provision, not in an unfiltered search. Leave empty for mixed questions. legal://filter_values documents the per-value definitions and disambiguation." - changed
Input schema / properties / jurisdiction / descriptionPrevious value: -"Filter by jurisdiction: 'de' (all German law — matches federal AND state law, incl. Staatsverträge like the Medienstaatsvertrag), 'eu' (EU), 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only). For federal statutes ONLY, use source_type='gii' instead. Leave empty for cross-jurisdiction search."New value: +"Filter by jurisdiction: 'de' (all German law — matches federal AND state law, incl. Staatsverträge like the Medienstaatsvertrag), 'eu' (EU), 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only — Saxon state law is not in the corpus, so this matches Saxon court decisions). 'de' includes state law; source_type='gii' restricts to federal statutes. Leave empty for cross-jurisdiction search." - changed
Input schema / properties / language / descriptionPrevious value: -"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. Set 'en' only when the user explicitly works in English or asks for the English version."New value: +"Corpus language: 'de' (default — the full German + EU corpus) or 'en' (English-language corpus: currently EDPB/EDSA data-protection guidance only; much smaller than 'de'). DE and EN are separate corpora — a document published in both languages has one entry per language under the same abbreviation. 'en' selects the English corpus regardless of the answer language; 'edsa' is published mostly in English." - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU regulations like DSGVO, DSA), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions, 2010 onwards), 'bverfge' (BVerfG leading decisions from the official reporter BVerfGE, up to 2009 — the reported slice, not every BVerfG decision of that era), 'bverwg' (BVerwG judgments (Urteile) up to 2009), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'edsa' (EDPB/EDSA data-protection guidance — soft law, not enacted norms; mostly English, see the language parameter), 'dsk' (Datenschutzkonferenz guidance: Orientierungshilfen, Kurzpapiere, Beschlüsse — the German supervisory authorities' reading of GDPR/BDSG), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials appear ONLY when explicitly requested via this value or document_kind='explanatory_memorandum' — an unfiltered search never returns them). Leave empty for cross-source search."New value: +"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU regulations like DSGVO, DSA), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions, 2010 onwards), 'bverfge' (BVerfG leading decisions from the official reporter BVerfGE, up to 2009 — the reported slice, not every BVerfG decision of that era), 'bverwg' (BVerwG judgments (Urteile) up to 2009), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'edsa' (EDPB/EDSA data-protection guidance — soft law, not enacted norms; mostly English, see the language parameter), 'dsk' (Datenschutzkonferenz guidance: Orientierungshilfen, Kurzpapiere, Beschlüsse — the German supervisory authorities' reading of GDPR/BDSG), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials are opt-in: they appear with this value or document_kind='explanatory_memorandum', not in an unfiltered search). Leave empty for cross-source search."
1 tool update
- Changed
legal_get_toc1 field changed- changed
Input schema / properties / source_type / descriptionPrevious value: -"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Leave empty to auto-detect. Note: 'edsa' is published mostly in English — pair it with language='en', or the DE default leaves you only the few translated documents."New value: +"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Leave empty to auto-detect; where an abbreviation names a law in two sources, the answer lists them so you can retry. Note: 'edsa' is published mostly in English — pair it with language='en', or the DE default leaves you only the few translated documents."
3 tool updates
- Changed
legal_get_toc1 field changed- changed
Input schema / properties / source_type / descriptionPrevious value: -"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', or 'verwaltungsvorschriften'. Leave empty to auto-detect."New value: +"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Leave empty to auto-detect. Note: 'edsa' is published mostly in English — pair it with language='en', or the DE default leaves you only the few translated documents."
- Changed
legal_list_laws3 fields changed- changed
Input schema / properties / document_kind / descriptionPrevious value: -"Filter by document class: the norm subtypes 'statute', 'regulation' and 'directive' form ONE class (any of them lists all three); 'decision' is separate and restricts to court case-law."New value: +"Filter by document class: the norm subtypes 'statute', 'regulation' and 'directive' form ONE class (any of them lists all three); 'decision' (court case-law), 'guidance' (supervisory-authority soft law, EDSA/DSK) and 'explanatory_memorandum' (legislative materials) are separate classes." - changed
Input schema / properties / jurisdiction / descriptionPrevious value: -"Filter by jurisdiction: 'de' (all German law — matches federal AND state law; for federal only use source_type='gii'), 'eu', 'de_by' (Bavaria only), 'de_sn' (Saxony only). Leave empty for all jurisdictions."New value: +"Filter by jurisdiction: 'de' (all German law — matches federal AND state law; for federal only use source_type='gii'), 'eu', 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only). Leave empty for all jurisdictions." - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', or 'verwaltungsvorschriften'."New value: +"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'bverfge', 'bverwg', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', 'verwaltungsvorschriften', 'edsa', 'dsk' or 'gesetzesmaterialien'. Note: 'edsa' is published mostly in English — pair it with language='en', or the DE default leaves you only the few translated documents."
- Changed
legal_search3 fields changed- changed
Input schema / properties / document_kind / descriptionPrevious value: -"Filter by document class: the three norm subtypes 'statute', 'regulation' and 'directive' form ONE filter class — any of them admits all three, so you cannot (and need not) tell them apart, and an EU regulation or directive is never hidden by a reflexive 'statute'. Two values discriminate: 'decision' restricts to court case-law (prefer it for how-a-norm-is-applied questions), and 'explanatory_memorandum' restricts to legislative materials (Gesetzesbegründung / BT-Drucksachen — the legislator's intent behind a norm; prefer it for ratio-legis or purpose-of-an-amendment questions). Materials are opt-in: an unfiltered search never returns them — set this value (or source_type='gesetzesmaterialien') to search them, or use legal_get_materials for a specific provision. Leave empty for mixed questions. See legal://filter_values for the per-value definitions and disambiguation."New value: +"Filter by document class: the three norm subtypes 'statute', 'regulation' and 'directive' form ONE filter class — any of them admits all three, so you cannot (and need not) tell them apart, and an EU regulation or directive is never hidden by a reflexive 'statute'. Three values discriminate: 'decision' restricts to court case-law (prefer it for how-a-norm-is-applied questions), 'guidance' restricts to supervisory-authority soft law (EDPB/EDSA and Datenschutzkonferenz — authoritative readings of the GDPR/BDSG, not enacted norms and not binding), and 'explanatory_memorandum' restricts to legislative materials (Gesetzesbegründung / BT-Drucksachen — the legislator's intent behind a norm; prefer it for ratio-legis or purpose-of-an-amendment questions). Materials are opt-in: an unfiltered search never returns them — set this value (or source_type='gesetzesmaterialien') to search them, or use legal_get_materials for a specific provision. Leave empty for mixed questions. See legal://filter_values for the per-value definitions and disambiguation." - changed
Input schema / properties / jurisdiction / descriptionPrevious value: -"Filter by jurisdiction: 'de' (all German law — matches federal AND state law, incl. Staatsverträge like the Medienstaatsvertrag), 'eu' (EU), 'de_by' (Bavaria only), 'de_sn' (Saxony only). For federal statutes ONLY, use source_type='gii' instead. Leave empty for cross-jurisdiction search."New value: +"Filter by jurisdiction: 'de' (all German law — matches federal AND state law, incl. Staatsverträge like the Medienstaatsvertrag), 'eu' (EU), 'de_by' (Bavaria only), 'de_nw' (North Rhine-Westphalia only), 'de_sn' (Saxony only). For federal statutes ONLY, use source_type='gii' instead. Leave empty for cross-jurisdiction search." - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU regulations like DSGVO, DSA), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials appear ONLY when explicitly requested via this value or document_kind='explanatory_memorandum' — an unfiltered search never returns them). Leave empty for cross-source search."New value: +"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU regulations like DSGVO, DSA), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions, 2010 onwards), 'bverfge' (BVerfG leading decisions from the official reporter BVerfGE, up to 2009 — the reported slice, not every BVerfG decision of that era), 'bverwg' (BVerwG judgments (Urteile) up to 2009), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'edsa' (EDPB/EDSA data-protection guidance — soft law, not enacted norms; mostly English, see the language parameter), 'dsk' (Datenschutzkonferenz guidance: Orientierungshilfen, Kurzpapiere, Beschlüsse — the German supervisory authorities' reading of GDPR/BDSG), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials appear ONLY when explicitly requested via this value or document_kind='explanatory_memorandum' — an unfiltered search never returns them). Leave empty for cross-source search."
1 tool update
- Changed
legal_list_laws1 field changed- changed
Input schema / properties / search / descriptionPrevious value: -"Case-insensitive search on abbreviation and title, e.g. 'bgb', 'datenschutz'. Also accepts a CELEX number ('32022L2555') or an EU instrument reference ('2022/2555', 'Richtlinie (EU) 2022/2555') and resolves it to the stored law."New value: +"Case-insensitive search on abbreviation, title and official short designation ('Elektronischer-Rechtsverkehr-Verordnung'), e.g. 'bgb', 'datenschutz'. Also accepts a CELEX number ('32022L2555') or an EU instrument reference ('2022/2555', 'Richtlinie (EU) 2022/2555') and resolves it to the stored law."
2 tool updates
- Changed
legal_find_citing_decisions1 field changed- changed
Input schema / properties / cited_norm / descriptionPrevious value: -"The legal provision, e.g. '§ 823 BGB', 'Art. 6 DSGVO'."New value: +"The legal provision, e.g. '§ 823 BGB', 'Art. 6 DSGVO'. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. Prefer the transposition norm for everyday German case law, the directive article for EU-level interpretation; run a plain legal_search first if you do not know the transposition norm. EU regulations (DSGVO, MDR) are cited directly."
- Changed
legal_search1 field changed- changed
Input schema / properties / cited_norm / descriptionPrevious value: -"Restrict results to court decisions that verifiably cite this provision (citation-graph filter, e.g. '§ 573 BGB' or 'Art. 6 DSGVO'). Combine with a case-specific query — e.g. query='Eigenbedarfskündigung Härtefall hohes Alter', cited_norm='§ 573 BGB' — to get decisions that both apply the provision AND match the facts of the case. This is the preferred way to find case law for a specific provision and a specific question. Matching is paragraph-level (Abs./Satz/Nr. are ignored). Only court decisions carry citations, so this filter implicitly restricts to case law — no document_kind needed. For the raw citation inventory of a provision (newest first), use legal_find_citing_decisions instead."New value: +"Restrict results to court decisions that verifiably cite this provision (citation-graph filter, e.g. '§ 573 BGB' or 'Art. 6 DSGVO'). Combine with a case-specific query — e.g. query='Eigenbedarfskündigung Härtefall hohes Alter', cited_norm='§ 573 BGB' — to get decisions that both apply the provision AND match the facts of the case. This is the preferred way to find case law for a specific provision and a specific question. Matching is paragraph-level (Abs./Satz/Nr. are ignored). Only court decisions carry citations, so this filter implicitly restricts to case law — no document_kind needed. For the raw citation inventory of a provision (newest first), use legal_find_citing_decisions instead. For an EU directive both the directive article ('Art. 9 Richtlinie 2011/83/EU') and the national transposition norm ('§ 355 BGB') are valid filters: the directive article matches EU case law (EuGH/EuG) and German decisions citing it directly (richtlinienkonforme Auslegung), while the transposition norm matches the larger body of German decisions applying the transposed rule. Prefer the transposition norm for everyday German case law, the directive article for EU-level interpretation; run a plain legal_search first if you do not know the transposition norm. EU regulations (DSGVO, MDR) are cited directly."
3 tool updates
- Changed
legal_get_toc2 fields changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", - "enum": [ - "gii", - "eurlex", - "eurlex_caselaw", - "rechtsprechung", - "sachsen_rechtsprechung", - "sachsen_gesetze", - "bayern_gesetze", - "nrw_gesetze", - "gesetzesmaterialien", - "edsa", - "bverfge", - "bverwg", - "verwaltungsvorschriften", - "dsk" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", + "enum": [ + "gii", + "eurlex", + "eurlex_caselaw", + "rechtsprechung", + "sachsen_rechtsprechung", + "sachsen_gesetze", + "bayern_gesetze", + "nrw_gesetze", + "nrw_rechtsprechung", + "gesetzesmaterialien", + "edsa", + "bverfge", + "bverwg", + "verwaltungsvorschriften", + "dsk" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'sachsen_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', or 'verwaltungsvorschriften'. Leave empty to auto-detect."New value: +"'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', or 'verwaltungsvorschriften'. Leave empty to auto-detect."
- Changed
legal_list_laws2 fields changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", - "enum": [ - "gii", - "eurlex", - "eurlex_caselaw", - "rechtsprechung", - "sachsen_rechtsprechung", - "sachsen_gesetze", - "bayern_gesetze", - "nrw_gesetze", - "gesetzesmaterialien", - "edsa", - "bverfge", - "bverwg", - "verwaltungsvorschriften", - "dsk" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", + "enum": [ + "gii", + "eurlex", + "eurlex_caselaw", + "rechtsprechung", + "sachsen_rechtsprechung", + "sachsen_gesetze", + "bayern_gesetze", + "nrw_gesetze", + "nrw_rechtsprechung", + "gesetzesmaterialien", + "edsa", + "bverfge", + "bverwg", + "verwaltungsvorschriften", + "dsk" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'sachsen_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', or 'verwaltungsvorschriften'."New value: +"Filter: 'gii', 'eurlex', 'eurlex_caselaw', 'rechtsprechung', 'sachsen_rechtsprechung', 'nrw_rechtsprechung', 'bayern_gesetze', 'nrw_gesetze', or 'verwaltungsvorschriften'."
- Changed
legal_search4 fields changed- changed
Input schema / properties / court / anyOfPrevious value: -[ - { - "description": "Courts available as search filter.\n\nValues match the ``extra.gericht`` Qdrant payload field used by\nboth Rechtsprechung-im-Internet (German federal courts) and\nEUR-Lex case law (EU courts).", - "enum": [ - "BGH", - "BVerfG", - "BVerwG", - "BFH", - "BAG", - "BSG", - "BPatG", - "GmSOGB", - "Sächsisches OVG", - "EuGH", - "EuG" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Courts available as search filter.\n\nValues match the ``extra.gericht`` Qdrant payload field used by\nboth Rechtsprechung-im-Internet (German federal courts) and\nEUR-Lex case law (EU courts).", + "enum": [ + "BGH", + "BVerfG", + "BVerwG", + "BFH", + "BAG", + "BSG", + "BPatG", + "GmSOGB", + "Sächsisches OVG", + "Oberverwaltungsgericht NRW", + "Oberlandesgericht Düsseldorf", + "Oberlandesgericht Hamm", + "Oberlandesgericht Köln", + "Landesarbeitsgericht Düsseldorf", + "Landesarbeitsgericht Hamm", + "Landesarbeitsgericht Köln", + "Landessozialgericht NRW", + "Finanzgericht Düsseldorf", + "Finanzgericht Köln", + "Finanzgericht Münster", + "Verfassungsgerichtshof NRW", + "EuGH", + "EuG" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / court / descriptionPrevious value: -"Filter by court: BGH, BVerwG, BFH, BAG, BSG, BVerfG, BPatG, GmSOGB, Sächsisches OVG, EuGH, EuG."New value: +"Filter by court: BGH, BVerwG, BFH, BAG, BSG, BVerfG, BPatG, GmSOGB, Sächsisches OVG, Oberverwaltungsgericht NRW, Oberlandesgericht Düsseldorf, Oberlandesgericht Hamm, Oberlandesgericht Köln, Landesarbeitsgericht Düsseldorf, Landesarbeitsgericht Hamm, Landesarbeitsgericht Köln, Landessozialgericht NRW, Finanzgericht Düsseldorf, Finanzgericht Köln, Finanzgericht Münster, Verfassungsgerichtshof NRW, EuGH, EuG." - changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", - "enum": [ - "gii", - "eurlex", - "eurlex_caselaw", - "rechtsprechung", - "sachsen_rechtsprechung", - "sachsen_gesetze", - "bayern_gesetze", - "nrw_gesetze", - "gesetzesmaterialien", - "edsa", - "bverfge", - "bverwg", - "verwaltungsvorschriften", - "dsk" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", + "enum": [ + "gii", + "eurlex", + "eurlex_caselaw", + "rechtsprechung", + "sachsen_rechtsprechung", + "sachsen_gesetze", + "bayern_gesetze", + "nrw_gesetze", + "nrw_rechtsprechung", + "gesetzesmaterialien", + "edsa", + "bverfge", + "bverwg", + "verwaltungsvorschriften", + "dsk" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / source_type / descriptionPrevious value: -"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU regulations like DSGVO, DSA), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials appear ONLY when explicitly requested via this value or document_kind='explanatory_memorandum' — an unfiltered search never returns them). Leave empty for cross-source search."New value: +"Filter by source: 'gii' (German federal laws like BGB, StGB), 'eurlex' (EU regulations like DSGVO, DSA), 'eurlex_caselaw' (EU court decisions, EuGH/EuG), 'rechtsprechung' (federal court decisions), 'sachsen_rechtsprechung' (Saxon OVG decisions), 'nrw_rechtsprechung' (NRW higher-court decisions: OVG/OLG/LAG/LSG/FG/VerfGH), 'bayern_gesetze' (Bavaria), 'nrw_gesetze' (North Rhine-Westphalia), 'verwaltungsvorschriften' (federal administrative regulations, e.g. TA Luft, BMGVwV), 'gesetzesmaterialien' (legislative materials — Gesetzesbegründung from Bundestag Drucksachen, the legislator's intent behind a federal norm; the corpus includes draft bills that never became law. Materials appear ONLY when explicitly requested via this value or document_kind='explanatory_memorandum' — an unfiltered search never returns them). Leave empty for cross-source search."
3 tool updates
- Changed
legal_get_toc1 field changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", - "enum": [ - "gii", - "eurlex", - "eurlex_caselaw", - "rechtsprechung", - "sachsen_rechtsprechung", - "sachsen_gesetze", - "bayern_gesetze", - "nrw_gesetze", - "gesetzesmaterialien", - "edsa", - "bverfge", - "bverwg", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", + "enum": [ + "gii", + "eurlex", + "eurlex_caselaw", + "rechtsprechung", + "sachsen_rechtsprechung", + "sachsen_gesetze", + "bayern_gesetze", + "nrw_gesetze", + "gesetzesmaterialien", + "edsa", + "bverfge", + "bverwg", + "verwaltungsvorschriften", + "dsk" + ], + "type": "string" + }, + { + "type": "null" + } +]
- Changed
legal_list_laws1 field changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", - "enum": [ - "gii", - "eurlex", - "eurlex_caselaw", - "rechtsprechung", - "sachsen_rechtsprechung", - "sachsen_gesetze", - "bayern_gesetze", - "nrw_gesetze", - "gesetzesmaterialien", - "edsa", - "bverfge", - "bverwg", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", + "enum": [ + "gii", + "eurlex", + "eurlex_caselaw", + "rechtsprechung", + "sachsen_rechtsprechung", + "sachsen_gesetze", + "bayern_gesetze", + "nrw_gesetze", + "gesetzesmaterialien", + "edsa", + "bverfge", + "bverwg", + "verwaltungsvorschriften", + "dsk" + ], + "type": "string" + }, + { + "type": "null" + } +]
- Changed
legal_search1 field changed- changed
Input schema / properties / source_type / anyOfPrevious value: -[ - { - "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", - "enum": [ - "gii", - "eurlex", - "eurlex_caselaw", - "rechtsprechung", - "sachsen_rechtsprechung", - "sachsen_gesetze", - "bayern_gesetze", - "nrw_gesetze", - "gesetzesmaterialien", - "edsa", - "bverfge", - "bverwg", - "verwaltungsvorschriften" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "description": "Known legal document source types.\n\nUses StrEnum so values compare equal to plain strings\n(e.g. ``SourceType.GII == \"gii\"``), which keeps Qdrant\npayloads and PostgreSQL columns compatible without conversion.", + "enum": [ + "gii", + "eurlex", + "eurlex_caselaw", + "rechtsprechung", + "sachsen_rechtsprechung", + "sachsen_gesetze", + "bayern_gesetze", + "nrw_gesetze", + "gesetzesmaterialien", + "edsa", + "bverfge", + "bverwg", + "verwaltungsvorschriften", + "dsk" + ], + "type": "string" + }, + { + "type": "null" + } +]
Related MCP Connectors
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
German and EU legal research with verifiable case law, legislation and legal sources.
German and EU law for AI assistants: statutes and case law in current wording, with sources.
Eurlex MCP client: Access EU law & Official Journal. https://www.lexsocket.ai/
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides access to German court decisions and laws via MCP tools, enabling legal document search and retrieval.-
- AlicenseNot gradedqualityCmaintenanceEnables querying 6,870 German federal statutes, case law, and legislative preparatory works directly from AI assistants and MCP-compatible clients.160 npm4Apache 2.0
- AlicenseAqualityBmaintenanceProvides unified access to German federal and state legislation, court decisions, and European Union legal databases for comprehensive legal research. It enables users to search and retrieve full-text laws, parliamentary documents, and judicial rulings directly through the Model Context Protocol.220942 npm11GPL 3.0
- 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.160 npm23Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.