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.

21 research tools. The server performs retrieval over official primary-law sources — EU law (EUR-Lex), Croatian legislation and case law (Narodne novine, courts), and French codified law (Légifrance/LEGI). Tools do not modify legal source records; authenticated calls update private quota counters and usage records. Authentication is OAuth 2.1 with PKCE (S256), RFC 8414 metadata, RFC 9728 protected-resource discovery and RFC 7591 dynamic client registration. Two tools reach fixed external EU endpoints and say so in their descriptions (eu_transposition → EUR-Lex Cellar SPARQL, eurostat_query → Eurostat REST/SDMX); get_status can also query Cellar when live mode is enabled.

Tools

about
browse_taxonomy
case_law_search
eu_transposition
eurostat_query
find_publication
get_article
get_chapter
get_decision
get_full_document
get_publication
get_regulation
get_related
get_status
get_structure
list_articles
list_scopes
resolve
search
view_source
view_source_context

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).
ParameterTypeDescription
scopestring (default: '@hr')'@hr' (law areas) or '@fr' (code catalogue).
area_idstring/null (optional)(@hr) Law-area id from a previous browse_taxonomy result; omit for the top level.
include_regulationsboolean (default: False)(@hr, with area_id) Also list the regulations classified in the area.
limitinteger (default: 50)Page size for the flat area list or the regulations list (default 50).
offsetinteger (default: 0)Zero-based start index for the next page (`next_offset` or `regulations_next_offset` from the previous response).
depthinteger (default: 1)(@hr, without area_id) 1 = top-level areas only; 2 or more = all areas flat.

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.
ParameterTypeDescription
querystringFree-text legal question.
scopestring (default: '@hr')Jurisdiction ('@hr' only).
top_kinteger (default: 20)Maximum number of decisions to return (default 20).
court_codesstring/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_onlyboolean (default: False)Only decisions marked as reference decisions.
date_fromstring/null (optional)Earliest decision date YYYY-MM-DD (inclusive).
date_tostring/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).
ParameterTypeDescription
celexstringThe 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_statestring/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.
ParameterTypeDescription
questionstringe.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.
ParameterTypeDescription
scopestring (default: '@hr')'@hr' or '@eu'.
nn_refstring/null (optional)(@hr) Narodne novine reference, e.g. 'NN 45/2023' or 'NN 45/2023-12'.
celexstring/null (optional)(@hr) CELEX identifier for the EU↔HR bridge.
yearinteger/null (optional)(@eu) Entry-into-force year.
date_fromstring/null (optional)Start date YYYY-MM-DD (@hr: required together with date_to; @eu: entry-into-force lower bound).
date_tostring/null (optional)End date YYYY-MM-DD (@hr: required together with date_from; @eu: entry-into-force upper bound).
document_typestring/null (optional)(@eu) doc type filter.
in_force_onlyboolean (default: False)(@eu) only in-force documents.
limitinteger (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.
ParameterTypeDescription
uristringDocument 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.
articlestring/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_ofstring/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_idstring/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.
ParameterTypeDescription
uristring'@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'.
chapterstring/integer/null (optional)The chapter as named in the question, e.g. '3', 'III', 'Glava III', 'Chapter 3', 'Dio drugi', 'Zaštita života'.
chapter_ordinalinteger/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_ofstring/null (optional)Date in YYYY-MM-DD format; returns the chapter as worded on that date.
version_idstring/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.
ParameterTypeDescription
uristringThe case number as described above, an ECLI identifier, or '@hr/decision/{uuid}' from case_law_search.
include_textboolean (default: True)Include the full decision text as root text (default true).
include_citationsboolean (default: False)Also return the Narodne novine regulations cited in the decision; resolved ones carry a regulation uri for get_article.
include_relatedboolean (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.
ParameterTypeDescription
uristringA regulation URI or supported exact title/abbreviation, e.g. '@hr/Zakon o radu', '@de/GmbHG', '@si/ZDR-1', '@nl/BWBR0005290'.
as_ofstring/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_idstring/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.
formatstring (default: 'text')'text' (default, plain text), 'html' (source markup) or 'mixed' (both).
include_segmentsboolean (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.
ParameterTypeDescription
uristringA 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.
ParameterTypeDescription
uristring'@hr/regulation/{uuid}', '@hr/Zakon o radu' (title resolve), '@eu/regulation/32016R0679', '@eu/GDPR' (alias), etc.

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.
ParameterTypeDescription
uristring'@hr/regulation/{uuid}' or '@hr/<official title>'; for @eu the base act CELEX ('@eu/regulation/32016R0679'), not a consolidated version.
relation_typestring (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.
ParameterTypeDescription
uristringDocument 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.
modestring (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_ofstring/null (optional)Date YYYY-MM-DD for mode='at_date': the version in force on that calendar day (Croatian time).
date_fromstring/null (optional)Start date YYYY-MM-DD for mode='in_range' (inclusive).
date_tostring/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_historyboolean (default: False)Also append full version history (@hr — one citable source per NN objava).
consolidateboolean (default: False)(@hr) Merge NN history across the ENTIRE lineage (legacy fragments joined), deduped. Implies history.
liveboolean (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.
ParameterTypeDescription
uristring'@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_ofstring/null (optional)Date YYYY-MM-DD (@hr, @si, @nl) — structure of the indexed version valid that day. @eu and @de reject historical dates.
version_idstring/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.
ParameterTypeDescription
uristring'@hr/regulation/{uuid}', '@hr/<official title>' or '@fr/code/<code title>'; '@de/GmbHG', '@si/ZDR-1' or '@nl/BWBR0005290'.
as_ofstring/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_idstring/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_onlyboolean (default: True)(@fr) Only articles currently in force (default true). Ignored in the other scopes, where the selected version decides.
limitinteger (default: 100)Page size (default 100).
offsetinteger (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`.
ParameterTypeDescription
querystringTitle, 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'.
scopestring (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_kinteger (default: 5)Maximum number of candidates to return (default 5).

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.
ParameterTypeDescription
querystringLegal 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.
scopesarray (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_kinteger (default: 20)Max merged results (1-50).
modestring (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_onlyboolean (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.
stratifiedboolean (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.
ParameterTypeDescription
uristringsources[].id, retaining the article and version suffix.
articlestring/null (optional)Exact article selector, only if absent from uri.
modestring (default: 'article')article for the cited provision; document for wider context.
as_ofstring/null (optional)Supported historical date, mutually exclusive with version_id.
version_idstring/null (optional)Exact retrieved version used for the provision and its context.
segment_idstring/null (optional)Optional retrieved segment ID to locate within the source.
paragraphstring/null (optional)Optional exact paragraph number to highlight, e.g. '2'.
pointstring/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.
ParameterTypeDescription
uristringsources[].id, retaining the article and version suffix.
articlestring/null (optional)Exact article selector, only if absent from uri.
as_ofstring/null (optional)Supported historical date, mutually exclusive with version_id.
version_idstring/null (optional)Exact retrieved version used for the provision and its context.
segment_idstring/null (optional)Optional retrieved segment ID to locate within the source.
paragraphstring/null (optional)Optional exact paragraph number to highlight, e.g. '2'.
pointstring/null (optional)Optional exact point within that paragraph, e.g. 'a'.