EULEX Unified MCP — Tool Reference
Every tool exposed at https://mcp.eulex.ai/mcp, generated
directly from the live server's tool registry, so this page cannot drift from
what tools/list returns.
Tools
about
About EULEX Unified
read-onlyclosed-worldnon-destructiveidempotent
Describe EULEX legal-source coverage, server version and available corpus statistics. Use for questions about what EULEX covers or where its legal information comes from; this does not retrieve the law needed to answer a substantive legal question. One server, N jurisdictions: Croatian legislation + case law (@hr), EU law / EUR-Lex (@eu), French codes / Légifrance (@fr), German federal legislation (@de), Slovenian legislation (@si) and Dutch legislation (@nl). Call `list_scopes` for per-scope capabilities and identifiers.
No parameters.
browse_taxonomy
Browse Taxonomy
read-onlyclosed-worldnon-destructiveidempotent
Browse Croatian legal subject areas and their classified regulations, or the catalogue of available French codes. Useful when the relevant Croatian law area or French code is not yet known. For a substantive legal question with known scope, search retrieves candidate provisions more directly. @hr: law-areas tree (481 areas). Without `area_id`: `depth=1` lists top-level areas, `depth>=2` lists all areas flat (with parent_law_area_id) in pages of `limit` — follow `has_more` and `next_offset` until the catalogue is complete. With `area_id`: the area plus its direct children, always; `include_regulations` adds the regulations in that area (paginated, `regulations_has_more` / `regulations_next_offset`). @fr: flat list of all LEGI code titles with article counts (~78 — includes annexes and old/new code variants).
| Parameter | Type | Description |
|---|---|---|
scope | string (default: '@hr') | '@hr' (law areas) or '@fr' (code catalogue). |
area_id | string/null (optional) | (@hr) Law-area id from a previous browse_taxonomy result; omit for the top level. |
include_regulations | boolean (default: False) | (@hr, with area_id) Also list the regulations classified in the area. |
limit | integer (default: 50) | Page size for the flat area list or the regulations list (default 50). |
offset | integer (default: 0) | Zero-based start index for the next page (`next_offset` or `regulations_next_offset` from the previous response). |
depth | integer (default: 1) | (@hr, without area_id) 1 = top-level areas only; 2 or more = all areas flat. |
case_law_search
Search Case Law
read-onlyclosed-worldnon-destructiveidempotent
Find Croatian court decisions relevant to a legal issue, factual pattern or the application of a statutory provision. Useful for questions about how Croatian courts have ruled, sudska praksa, dismissal disputes, contractual liability or Supreme Court practice. Returns decision matches and passages; get_decision retrieves a complete decision before quoting its reasoning. A known case number or ECLI can go directly to get_decision. Does not cover Constitutional Court, ECHR or other national court corpora. Finds decisions relevant to a legal topic or question and returns them grouped per decision with matching passages. A known case number (e.g. Gž-523/2021-2) or ECLI is fetched directly with get_decision. Coverage (@hr): decisions of Croatian courts published on odluke.sudovi.hr (count, with its stats_as_of date, via `about`); no Constitutional Court or European Court of Human Rights decisions.
| Parameter | Type | Description |
|---|---|---|
query | string | Free-text legal question. |
scope | string (default: '@hr') | Jurisdiction ('@hr' only). |
top_k | integer (default: 20) | Maximum number of decisions to return (default 20). |
court_codes | string/null (optional) | Comma-separated court filter: 'vs' Vrhovni sud (Supreme Court), 'vks' Visoki kazneni sud (High Criminal Court), 'zs' županijski (county) courts, 'os' općinski (municipal) courts, 'ts' trgovački (commercial) courts, 'us' upravni (administrative) courts. A family code such as 'zs' includes all its individual courts. |
reference_only | boolean (default: False) | Only decisions marked as reference decisions. |
date_from | string/null (optional) | Earliest decision date YYYY-MM-DD (inclusive). |
date_to | string/null (optional) | Upper bound YYYY-MM-DD, exclusive: only decisions dated before this day. Must be later than date_from (equal dates are rejected with a validation error). |
eu_transposition
EU Transposition
read-onlyopen-worldnon-destructiveidempotent
Find the national measures a member state reported as implementing an EU directive and its available transposition deadline. Useful for questions such as which Croatian laws implement NIS2, or how a directive was implemented in Germany. Covers reported measures across EU member states; the availability of a notification does not mean that the national law's text is available in EULEX. Reported measures do not prove complete, correct or timely transposition. Shows which national laws each member state notified to the European Commission as implementing (transposing) a directive, and the transposition deadline. Only directives are transposed: EU regulations (CELEX with R, e.g. GDPR 32016R0679) apply directly, so for them the response has applicable false and a note. Data comes from EUR-Lex (Cellar): a first call typically takes 3 to 10 seconds, repeated calls are cached, and a timeout error is retryable once. Reported measures do not establish complete or correct transposition. Response: eu_celex, eu_title, deadline (YYYY-MM-DD) and national_measures, one entry per member state with country_iso2, nim_count, status and its own national_measures list (each with title, notification_date, celex_id, predates_directive, and nn_reference when the title contains a Narodne novine number, usable in find_publication).
| Parameter | Type | Description |
|---|---|---|
celex | string | The directive's CELEX number: 3, the year, L and a four-digit number. Directive (EU) 2022/2555 is 32022L2555 (NIS2); 32019L1937 is the Whistleblower Directive, 32022L2464 is CSRD. Also accepted: 'Directive (EU) 2022/2555', 'Directive 95/46/EC', and the short names NIS2, CSRD, CSDDD, PSD2, MiFID2, Solvency2, CRD and Whistleblower Directive. Other names return a validation error; the CELEX number can be found with search in scope @eu. |
member_state | string/null (optional) | Optional member state as ISO code or English name, e.g. 'HR', 'Croatia', 'DE', 'Germany'. Omit for all 27 member states. |
eurostat_query
Eurostat Query
read-onlyopen-worldnon-destructiveidempotent
Retrieve official Eurostat statistics for a requested EU or member-state indicator, period and geography, such as inflation, employment, population or renewable-energy share. Useful when a question needs quantitative evidence, including statistics supporting legal or policy research. It does not establish legal obligations and is unnecessary for a purely statutory question. Official EU statistics, numbers and data tables: GDP, inflation, unemployment, employment, population, migration, trade, energy prices, renewable share, emissions, healthcare, education, digital economy. Use whenever the user needs quantitative data or figures about the EU or its member states. Returns the most relevant dataset as a markdown table plus its source URL — useful for adding quantitative EU data to a legal analysis. The pipeline combines dataset selection with SDMX/Eurostat REST calls and routinely takes 10-25s, so prefer it for questions that genuinely need statistics. The tool is listed in tools/list only on deployments that enable it (the public server does). The response carries available, dataset_code, dataset_title, applied_filters, time_coverage, markdown_table and source_url; when available is false it carries error instead of a table. Check that the dataset title and the applied filters match the requested indicator before quoting a value.
| Parameter | Type | Description |
|---|---|---|
question | string | e.g. 'unemployment rate by member state 2023', 'renewable energy share by country'. |
find_publication
Find Publication
read-onlyclosed-worldnon-destructiveidempotent
Find Croatian official-gazette publications by NN reference or publication date, or EU
documents by entry-into-force year/date. Useful for questions about what was published
in Narodne novine during a period, or which indexed EU acts entered into force during a
period. EU date filters refer to entry into force, not publication date or the CELEX
year.
Per-scope modes (provide EXACTLY ONE mode for @hr): @hr: nn_ref='NN 45/2023' (every
publication in issue 45 of 2023) or 'NN 45/2023-12' (item 12 of that issue);
'2023/45' also works, OR date_from+date_to (ISO dates), OR celex='32016R0679'
(EU→HR bridge; currently 0 records until ingest runs). @eu: year=2016
and/or date_from/date_to + optional document_type ('regulation', 'directive',
...) — filters on entry-into-force date. NOTE: entry-into-force year can differ
from the CELEX year — acts entering into force retroactively and consolidated
versions legitimately appear under a different year than their CELEX id.| Parameter | Type | Description |
|---|---|---|
scope | string (default: '@hr') | '@hr' or '@eu'. |
nn_ref | string/null (optional) | (@hr) Narodne novine reference, e.g. 'NN 45/2023' or 'NN 45/2023-12'. |
celex | string/null (optional) | (@hr) CELEX identifier for the EU↔HR bridge. |
year | integer/null (optional) | (@eu) Entry-into-force year. |
date_from | string/null (optional) | Start date YYYY-MM-DD (@hr: required together with date_to; @eu: entry-into-force lower bound). |
date_to | string/null (optional) | End date YYYY-MM-DD (@hr: required together with date_from; @eu: entry-into-force upper bound). |
document_type | string/null (optional) | (@eu) doc type filter. |
in_force_only | boolean (default: False) | (@eu) only in-force documents. |
limit | integer (default: 20) | Maximum number of results (default 20). |
get_article
Get Article
read-onlyclosed-worldnon-destructiveidempotent
Read the full wording of a specific legal article, section or supported EU recital, with source references and available version information. Use to quote, explain or verify a named provision, or to check a provision found by search before applying it to a legal question. Accepts supported scoped act names and identifiers, including GDPR, AI Act, Zakon o radu, French codes, GmbHG, ZDR-1 and Dutch acts. Historical article text is available by date for Croatia, France, Slovenia and the Netherlands where indexed; German versions are snapshots, and arbitrary past-date EU article retrieval is unsupported. Returns research text; view_source separately opens an interactive source display.
| Parameter | Type | Description |
|---|---|---|
uri | string | Document URI; the article can be embedded ('@hr/regulation/{uuid}/article/112', '@eu/regulation/32016R0679/article/17', '@fr/code/Code civil/article/1240') or passed separately. |
article | string/null (optional) | Article ref when not in the URI — '@hr': 'Članak 112' / '112'; '@eu': '17' / 'Article 17' / 'Right to erasure' / 'Recital 12'; '@fr': 'L225-102-1' / '1240'; '@de': '43'; '@si': '89'; '@nl': '658' or a normalized label from list_articles. |
as_of | string/null (optional) | Point-in-time date YYYY-MM-DD (@hr, @fr, @si, @nl) — the article as it stood on that date. Also accepted as URI suffix '@date'. |
version_id | string/null (optional) | Explicit version (@hr: UUID; @fr: LEGIARTI; @de/@si/@nl: version_key). @de accepts snapshot IDs but rejects as_of; snapshots are not a validity timeline. |
get_chapter
Get Chapter
read-onlyclosed-worldnon-destructiveidempotent
Read a complete chapter or part of a Croatian law or bylaw, including its articles. Useful when a question concerns a group of provisions, definitions or exceptions within the same chapter. A single provision fits get_article; a whole act fits get_full_document. Croatia only. Returns one chapter (glava, dio, poglavlje, odjeljak) with the complete wording of its articles. For a single article get_article fits better; for a whole law, get_full_document. The law is identified by URI or by its exact official Croatian title: '@hr/regulation/3244d270-1225-4c41-9567-b684d03c854d' or '@hr/Zakon o radu'. English titles such as 'Labour Act' are not recognised. When several laws share a title, the one in force is used and the older ones are listed in title_resolution. The chapter is given as it is named in the question: a number (3), a Roman numeral (III, IV.a), a label (Glava III, Chapter 3, Dio drugi, Part 2, Odjeljak 1) or words from its title in any grammatical case (Zaštita života, radničko vijeće). A plain number selects the top-level chapter with that number (GLAVA III.); numbered sub-chapters with the same number are listed in chapter_resolution.other_matches and can be fetched by their title words or chapter_ordinal. Response: chapter_label, text (chapter wording with article headings), citation (original Narodne novine number and all amendments, e.g. NN 93/2014, 127/2017, 98/2019, 151/2022, 64/2023), sources per article and chapter_resolution. When no chapter matches, the error lists available_chapters.
| Parameter | Type | Description |
|---|---|---|
uri | string | '@hr/regulation/{uuid}' from search, resolve or get_regulation, or '@hr/' followed by the exact Croatian title, e.g. '@hr/Zakon o radu', '@hr/Zakon o obveznim odnosima'. |
chapter | string/integer/null (optional) | The chapter as named in the question, e.g. '3', 'III', 'Glava III', 'Chapter 3', 'Dio drugi', 'Zaštita života'. |
chapter_ordinal | integer/null (optional) | Exact ordinal of a heading row returned by get_structure (e.g. 1079); only for picking a specific heading from get_structure. |
as_of | string/null (optional) | Date in YYYY-MM-DD format; returns the chapter as worded on that date. |
version_id | string/null (optional) | Version id from get_status, to pin one historical version. |
get_decision
Get Court Decision
read-onlyclosed-worldnon-destructiveidempotent
Read a complete Croatian court decision by case number, ECLI or a returned decision URI, including its available court, date, reasoning, citations and related decisions. Use to verify or explain a particular judgment and distinguish its facts and holding from a statutory rule. A topic without a known case belongs in case_law_search. Returns research text; view_source separately opens the interactive source display. Accepts the decision's case number (poslovni broj) directly; no search is needed first. Croatian case numbers have the form registry mark, hyphen, number, slash, year, hyphen, suffix: Gž-523/2021-2 (county court, civil appeal), Rev-1356/2024-2 and Revr-1874/2015-2 (Supreme Court revision; Revr in labour cases), P-402/2024-9, Us I-1701/2024-8. Accepted variants: spaces instead of hyphens (Gž 523/2021-2), no diacritics (Gz-523/2021-2), two- digit years (Revr-615/08) and no final suffix (Gž-523/2021, which matches every suffix). ECLI identifiers such as ECLI:HR:VSRH:2009:5567 are accepted too. The court name is not part of the case number. When several courts use the same case number, the response has ambiguous true and candidates (court, date, uri). case_law_search finds decisions on a legal topic. Response: court_name, decision_number, decision_date, ecli, decision_type_name, case_type_name, finality_status, citation (court, case number, date), text (full decision text) and sources.
| Parameter | Type | Description |
|---|---|---|
uri | string | The case number as described above, an ECLI identifier, or '@hr/decision/{uuid}' from case_law_search. |
include_text | boolean (default: True) | Include the full decision text as root text (default true). |
include_citations | boolean (default: False) | Also return the Narodne novine regulations cited in the decision; resolved ones carry a regulation uri for get_article. |
include_related | boolean (default: False) | Also return related decisions (earlier and later decisions in the same case). |
get_full_document
Get Full Document
read-onlyclosed-worldnon-destructiveidempotent
Read or summarize the complete indexed consolidated wording of a Croatian, German, Slovenian or Dutch law. Useful when the user asks for a whole act or when provisions throughout an act must be examined; a single-article question fits get_article. Check truncation before claiming complete coverage. Not available for EU acts or French codes through this tool. Country-law responses report truncated=true when the 800,000-character transport limit is reached; use list_articles and get_article for the rest. Use to read or summarize a whole law instead of article-by-article. The response can be long; the in-force version is returned unless a date or version is given.
| Parameter | Type | Description |
|---|---|---|
uri | string | A regulation URI or supported exact title/abbreviation, e.g. '@hr/Zakon o radu', '@de/GmbHG', '@si/ZDR-1', '@nl/BWBR0005290'. |
as_of | string/null (optional) | Date YYYY-MM-DD (@hr, @si, @nl) — the indexed version valid on that day. @de rejects dates because snapshots are not a validity timeline. |
version_id | string/null (optional) | Exact version UUID (@hr) or version_key (@de, @si, @nl), from get_status history or a retrieved source. Give either as_of or version_id, not both. |
format | string (default: 'text') | 'text' (default, plain text), 'html' (source markup) or 'mixed' (both). |
include_segments | boolean (default: False) | Also return the document's segment list (ids and labels). Large; default false. |
get_publication
Get Publication
read-onlyclosed-worldnon-destructiveidempotent
Open an original Croatian Narodne novine publication or list all items in a specified gazette issue. Use when the user cites an NN reference, asks for the official publication, or needs to connect a published amendment to the affected act. A whole issue contains separate publications, each with its own source. Narodne novine references are written as issue number, slash, year, optionally followed by the item number: NN 14/2019 is issue 14 of 2019 and NN 14/2019-268 is item 268 of that issue. An item reference returns that publication; an issue reference returns every publication in the issue (items, plus a note with their count). Response for one publication: title, publish_date, enter_into_force_date, nn_reference, url (official Narodne novine page) and regulations, the Croatian regulations that this publication created or changed, each with a uri usable in get_regulation, get_article and get_chapter. An amending act or a Constitutional Court decision appears there as a new version of the regulation it changed. Searching by date range is done with find_publication.
| Parameter | Type | Description |
|---|---|---|
uri | string | A Narodne novine item ('NN 14/2019-268' or '14/2019-268'), a Narodne novine issue ('NN 14/2019', '14/19', 'Narodne novine br. 14/2019'), or '@hr/publication/{uuid}' from find_publication. Two-digit years are accepted (14/19 means 2019). |
get_regulation
Get Regulation
read-onlyclosed-worldnon-destructiveidempotent
Retrieve the identity and available metadata of a named or retrieved legal act: title, identifiers, source references and recorded status/version information where supported. Useful for confirming that research concerns the correct act and edition. Metadata alone does not establish the wording of a duty, exception or penalty; get_article retrieves the provision.
| Parameter | Type | Description |
|---|---|---|
uri | string | '@hr/regulation/{uuid}', '@hr/Zakon o radu' (title resolve), '@eu/regulation/32016R0679', '@eu/GDPR' (alias), etc. |
get_related
Get Related Documents
read-onlyclosed-worldnon-destructiveidempotent
Find recorded amendments, predecessor or successor acts, citations and other legal- document relationships for EU or Croatian law. Useful for tracing what changed an act, its legal basis or connected legislation before opening the relevant source text. Relationship metadata is not itself the amending text or a conclusion about legal effect. @hr: 'successors' | 'predecessors' | 'related' | 'law_areas' | 'all'. @eu: 'amendments' | 'amended_by' | 'cites' | 'cited_by' | 'legal_basis' | 'consolidated_versions' | 'related_case_law' | 'all'. A narrow @eu filter returns ONLY that relation type. When the graph has no data the server falls back to EUR-Lex relationship metadata, whose type names differ (e.g. 'modify_relationships', 'instruments_cited', 'affected_by_case') — a filter that matches nothing returns empty `relations` plus `available_relation_types` listing what this document actually has; re-issue with one of those.
| Parameter | Type | Description |
|---|---|---|
uri | string | '@hr/regulation/{uuid}' or '@hr/<official title>'; for @eu the base act CELEX ('@eu/regulation/32016R0679'), not a consolidated version. |
relation_type | string (default: 'all') | One relation type from the lists above, 'all' (default) for every type, or a type name reported in `available_relation_types`. |
get_status
Get Status / Verify
read-onlyclosed-worldnon-destructiveidempotent
Check a legal act's recorded in-force status and available version or event history. Use for questions about whether a rule is current, repealed or amended, or which recorded Croatian version applied on a date or within a period. Supports EU, Croatia, Germany, Slovenia and the Netherlands with different temporal capabilities. An in-force act does not prove that every provision already applies: application dates, exceptions and transitional rules require reading the relevant provisions. Missing status is unknown; German snapshots are not a complete historical validity timeline. This connection reads EULEX's indexed status and version database only. It does not perform a live request to an external legal-source system.
| Parameter | Type | Description |
|---|---|---|
uri | string | Document URI (@hr, @eu, @de, @si or @nl). @de/@si/@nl support current metadata and history only, with status_basis=indexed_source_metadata. German history contains consolidation snapshots, not a complete validity timeline. |
mode | string (default: 'current') | 'current' (default — is it in force now), 'at_date' (which version was in force on `as_of`; @hr only), 'in_range' (all versions active between `date_from`/`date_to`; @hr only), 'history' (full version/event timeline). @eu supports 'current' and 'history' only — point-in-time modes return `unsupported_capability` there. |
as_of | string/null (optional) | Date YYYY-MM-DD for mode='at_date': the version in force on that calendar day (Croatian time). |
date_from | string/null (optional) | Start date YYYY-MM-DD for mode='in_range' (inclusive). |
date_to | string/null (optional) | End date YYYY-MM-DD for mode='in_range' (exclusive: the range is [date_from, date_to), so pass the day after the last date of interest). Must be later than date_from. |
include_history | boolean (default: False) | Also append full version history (@hr — one citable source per NN objava). |
consolidate | boolean (default: False) | (@hr) Merge NN history across the ENTIRE lineage (legacy fragments joined), deduped. Implies history. |
live | boolean (default: False) | Direct EUR-Lex/Cellar requests are disabled for this connection. This compatibility parameter is always treated as false; live=true returns indexed EULEX status with an explanatory profile_note. |
get_structure
Get Structure (TOC)
read-onlyclosed-worldnon-destructiveidempotent
Locate chapters, sections and article headings within an EU, Croatian, German, Slovenian or Dutch act. Useful for finding where definitions, scope, exceptions or enforcement are located before retrieving their wording. A heading or table of contents is not the full legal rule. @de/@si/@nl return up to 5000 nodes and report has_more if truncated. list_articles supports paginated article discovery. Date selection is available in @si/@nl; @de accepts snapshot version_id only.
| Parameter | Type | Description |
|---|---|---|
uri | string | '@hr/regulation/{uuid}' or '@hr/<official title>' for a Croatian regulation; '@eu/regulation/{CELEX}' or '@eu/<common name>' for an EU act; '@de/GmbHG', '@si/ZDR-1' or '@nl/BWBR0005290'. |
as_of | string/null (optional) | Date YYYY-MM-DD (@hr, @si, @nl) — structure of the indexed version valid that day. @eu and @de reject historical dates. |
version_id | string/null (optional) | Exact version UUID (@hr) or version_key (@de, @si, @nl). Give either as_of or version_id, not both; @eu rejects both. |
list_articles
List Articles
read-onlyclosed-worldnon-destructiveidempotent
List and page through article headings in a Croatian act, French code, German act,
Slovenian act or Dutch act. Useful when the article number is unknown or when navigating
adjacent provisions. Returns article identifiers rather than their complete wording; use
get_article for the text and get_structure for an EU act.
@de/@si/@nl: paginated article headings with version-pinned URIs. @si/@nl accept as_of;
@de accepts version_id snapshots only. in_force_only is ignored for these scopes; the
selected version decides.
@hr: all article headings of a regulation version (as_of or version_id supported); the
response carries `total`, `has_more` and `next_offset`. @fr: articles of a code
('@fr/code/Code civil') with `total`, `limit` and `offset` — the next page starts at
offset + limit while that is below `total`. @fr rejects as_of and version_id with
unsupported_capability.| Parameter | Type | Description |
|---|---|---|
uri | string | '@hr/regulation/{uuid}', '@hr/<official title>' or '@fr/code/<code title>'; '@de/GmbHG', '@si/ZDR-1' or '@nl/BWBR0005290'. |
as_of | string/null (optional) | Date YYYY-MM-DD (@hr, @si, @nl) — articles of the indexed version valid that day. @de and @fr reject dates for this tool. |
version_id | string/null (optional) | Exact version UUID (@hr) or version_key (@de, @si, @nl). Give either as_of or version_id, not both; @fr rejects both. |
in_force_only | boolean (default: True) | (@fr) Only articles currently in force (default true). Ignored in the other scopes, where the selected version decides. |
limit | integer (default: 100) | Page size (default 100). |
offset | integer (default: 0) | Zero-based start index of the page. |
list_scopes
List Scopes
read-onlyclosed-worldnon-destructiveidempotent
Check which jurisdictions and research capabilities are currently available, including historical text, court decisions and source viewing. Use when coverage or support for an operation is uncertain. Configured coverage is EU law, Croatia, French codes, German federal law, Slovenia and the Netherlands; availability does not imply a complete corpus. This is the discriminator tool: call it to learn WHICH scope supports WHICH capability before calling capability-specific tools. A scope missing a capability returns `unsupported_capability`.
No parameters.
resolve
Resolve Identifier
read-onlyclosed-worldnon-destructiveidempotent
Identify a law from its title, common name, abbreviation, CELEX number or official act
number, and return its canonical identifier. Use for an unclear or ambiguous act
identity or to report the identifier. A known act and article can go directly to
get_article; a general legal issue belongs in search. Matching an act does not establish
its legal status.
Content tools accept names directly ('@hr/Zakon o radu', '@eu/GDPR'), so call them
first. Use resolve when the identity is unclear, to report an identifier, or after a
content tool returned not_found or ambiguous. '@hr' resolves Croatian titles to
regulation UUIDs with ambiguity info. '@eu' first parses the query as a CELEX number
('32023L0970', 'CELEX:32016R0679') or an official act number in English, Croatian,
German or French ('Directive (EU) 2023/970', 'Uredba (EU) 2016/679', 'Regulation (EC) No
1907/2006', 'Richtlinie 95/46/EG'), then confirms the document in the corpus and returns
its official title, or not_found when no such document exists; a consolidated,
corrigendum or national-measure CELEX resolves to its base act with a note. Common-name
aliases ('GDPR') follow; any other wording falls back to a semantic title search whose
candidates carry similarity, with ambiguous true when none is clear. A match is an
identifier, not a legal-status check: confirm in_force with get_status or
get_regulation.
Returns `matches[]` with `uri`, plus `ambiguous` and `best_guess`.| Parameter | Type | Description |
|---|---|---|
query | string | Title, abbreviation, common name or, for '@eu', a CELEX number or official act number, e.g. 'Zakon o radu', 'GDPR', 'DORA', 'Zakon o zaštiti potrošača', '32023L0970', 'Directive (EU) 2023/970', 'Uredba (EU) 2016/679'. |
scope | string (default: '@hr') | '@hr', '@eu', '@de', '@si' or '@nl'. The country-law scopes accept canonical identifiers, abbreviations and title candidates; ambiguous title candidates need selection. Not available for '@fr' — call get_article with the code name. |
top_k | integer (default: 5) | Maximum number of candidates to return (default 5). |
search
Search Legislation
read-onlyclosed-worldnon-destructiveidempotent
Find statutory provisions relevant to a legal question, including rights, duties, prohibitions, exceptions, deadlines, sanctions and applicability. Useful for questions such as whether an employer may dismiss a worker, what a GDPR processor contract must contain, or which AI Act obligations may apply, when the governing article is not already known. Searches indexed EU law and supported Croatian, French, German, Slovenian and Dutch legislation; it does not search court decisions. Set the requested jurisdictions explicitly. Results identify candidate provisions: retrieve complete wording before relying on snippets, and inspect scope_status and degradation warnings. An empty result does not establish that no relevant rule exists.
| Parameter | Type | Description |
|---|---|---|
query | string | Legal topic or question in any language, preferably using the legal terminology of the source jurisdiction. Include the relevant conduct or obligation and avoid unnecessary names or other personal details. An act title plus a known article is usually better handled by get_article. |
scopes | array (default: ['@hr']) | Set explicitly for the applicable legal system: @eu EU law, @hr Croatia, @fr French codes, @de German federal law, @si Slovenia, @nl Netherlands. Multiple scopes support a requested comparison; ["*"] searches all connected scopes. The default is Croatia only. The language of a question does not determine its jurisdiction. An unspecified country-specific dispute needs clarification rather than an assumed country. |
top_k | integer (default: 20) | Max merged results (1-50). |
mode | string (default: 'semantic') | "semantic" (default, paraphrase-aware embedding search), "lexical" (exact term/title match; all scopes except @eu), or "hybrid" (semantic + BM25 fusion; @hr only — best recall for rare/exact terms). A scope that lacks the mode reports it in `scope_errors` instead of failing the whole call. |
in_force_only | boolean (default: True) | Restrict to currently in-force provisions. In mode="lexical" the filter is applied after retrieval, so fewer than top_k results may come back. |
stratified | boolean (default: False) | (@hr semantic/hybrid) Reserve result quota per regulation type (zakon/pravilnik/...). Default False — it breaks score-monotonic ordering and is much slower; enable only when coverage across regulation types matters more than top-rank precision. |
view_source
View legal source
read-onlyclosed-worldnon-destructiveidempotent
Display a retrieved legal provision or Croatian court decision in an interactive source viewer when the user asks to open, inspect or read the source or its surrounding context. Shows original wording, source identity, version and an exact paragraph or point where matched. Use a returned source ID and preserve its article and version. This is a presentation tool; search and get_article perform ordinary legal research without displaying a card for every retrieval. Document context is available for EU, Croatia, Germany, Slovenia and the Netherlands; France remains article-only. No supplied or generated text is treated as a retrieved source.
| Parameter | Type | Description |
|---|---|---|
uri | string | sources[].id, retaining the article and version suffix. |
article | string/null (optional) | Exact article selector, only if absent from uri. |
mode | string (default: 'article') | article for the cited provision; document for wider context. |
as_of | string/null (optional) | Supported historical date, mutually exclusive with version_id. |
version_id | string/null (optional) | Exact retrieved version used for the provision and its context. |
segment_id | string/null (optional) | Optional retrieved segment ID to locate within the source. |
paragraph | string/null (optional) | Optional exact paragraph number to highlight, e.g. '2'. |
point | string/null (optional) | Optional exact point within that paragraph, e.g. 'a'. |
view_source_context
Load document context
read-onlyclosed-worldnon-destructiveidempotent
Load same-version surrounding source text for the interactive source viewer after its context control requests it. App-only retrieval operation, not a general model-facing legal-research entry point. Supports available EU, Croatian, German, Slovenian and Dutch document context and complete Croatian decisions. An app-only retrieval operation used by the interactive viewer. Returns the same source identity and version as the cited article with the surrounding original text where available (EU, HR, DE, SI, NL) or the complete Croatian decision.
| Parameter | Type | Description |
|---|---|---|
uri | string | sources[].id, retaining the article and version suffix. |
article | string/null (optional) | Exact article selector, only if absent from uri. |
as_of | string/null (optional) | Supported historical date, mutually exclusive with version_id. |
version_id | string/null (optional) | Exact retrieved version used for the provision and its context. |
segment_id | string/null (optional) | Optional retrieved segment ID to locate within the source. |
paragraph | string/null (optional) | Optional exact paragraph number to highlight, e.g. '2'. |
point | string/null (optional) | Optional exact point within that paragraph, e.g. 'a'. |