io.github.matematicsolutions/it-eli-mcp
Italian law: Normattiva legislation + Corte Costituzionale, Cassazione and TAR case law, live.
Versions
0.2.2latestTools 13
it_list_codes List the major Italian codes and consolidated acts with their canonical URN. A curated, verified dictionary (Codice civile/penale/procedura, Codice privacy, CAD, D.Lgs. 231/2001, Costituzione, L. 241/1990). Feed any ``urn`` to ``it_get_act`` / ``it_get_text``.
it_resolve Build a canonical, resolvable URN:NIR from act coordinates. Offline (no network). ``act_type`` accepts friendly forms ('legge', 'd.lgs', 'dpr', 'regio.decreto'). With only ``year`` + ``number`` the partial URN still resolves on Normattiva; add ``month``/``day`` for the exact promulgation date. Args: query: ``ResolveQuery`` (act_type, year, number, month?, day?, authority). Returns: ``ResolveResult`` with ``urn``, ``human_readable_citation``, ``source_url``.
it_get_act Fetch act metadata from Normattiva. Args: reference: a code name ("codice civile"), a URN ("urn:nir:stato:legge:1990-08-07;241"), an ELI path ("eli/id/1990/08/18/090G0294"), or a normattiva.it URL. Returns: ``ActInfo`` with ``eli_uri``, ``urn``, ``human_readable_citation``, ``title``, ``doc_date``, ``article_count``, ``source_url``.
it_get_text Fetch the text of a whole act or a single article. Args: reference: a code name, URN, ELI path, or normattiva.it URL. article: an article number ("2043", "art. 2043", "2043-bis"). Omit for the whole act. at_date: ISO date ("2020-01-01") for the point-in-time (multivigenza) version; omit for the version in force today (consolidated). format: ``"text"`` (extracted, whitespace-normalized) or ``"akn_xml"`` (raw Akoma Ntoso; only valid for the whole act). Returns: ``ActText`` with the citation contract, ``content``, and article metadata.
it_case_search Full-text search of Corte Costituzionale (Constitutional Court) decisions. Args: query: search terms (Italian; accents are ignored by the index). anno: optional year filter (e.g. "2024"). tipologia: optional type filter, "S" (sentenza) or "O" (ordinanza). limit: max hits (1..100). Returns: ``CaseSearchResult`` with ranked ``hits`` (ecli, citation, snippet, source_url).
it_case_get_decision Fetch the full text of one Constitutional Court decision, by ECLI or year + number. Args: ecli: an ECLI, e.g. "ECLI:IT:COST:2024:1". anno: year (used with ``numero`` when ``ecli`` is not given). numero: decision number (used with ``anno``). Returns: ``CaseDecisionFull`` with epigrafe, testo, dispositivo and the citation contract.
it_case_recent The most recent Constitutional Court decisions in the index (newest first). Args: limit: max items (1..100).
it_case_stats Constitutional case-law index coverage and freshness (totals, years, last build).
it_cassazione_search Full-text search of Corte di Cassazione (Supreme Court) decisions, live. Queries SentenzeWeb (the Court's own free public search engine) in real time - no local index. Free-text search matches the decision body (``ocr``). Args: query: search terms, matched as a phrase against the decision text. chamber: optional, "civile" (civil) or "penale" (criminal). sub_chamber: optional, "lavoro" (Labour) or "tributaria" (Tax) - both are sub-chambers of the civil section. anno: optional 4-digit year filter (decision year, e.g. "2021"). limit: max hits (1..100). Returns: ``CassSearchResult`` with ``total_found`` (index-wide) and ranked ``hits`` (sic_id, citation, snippet, source_url).
it_cassazione_get Fetch the full text of one Corte di Cassazione decision, live, by its SentenzeWeb id. Args: sic_id: the SentenzeWeb ``id`` (e.g. "snciv2024D01234O"), as returned by ``it_cassazione_search`` hits. Returns: ``CassDecisionFull`` with the full OCR text, massima (summary/holding extract), and the citation contract.
it_ga_search Search Italian administrative case law (Consiglio di Stato, C.G.A.R.S., TAR), live. Queries the Giustizia Amministrativa portal's own public decision search in real time - one backend for the whole administrative jurisdiction (3.4M+ provvedimenti). Provide a full-text ``query``, a decision ``numero``, or both. Args: query: full-text search terms, matched against the decision text. sede: optional court seat - "Consiglio di Stato", "C.G.A.R.S", or a TAR seat city ("Roma", "Milano", "Napoli", ...). Filters server-side. tipo: optional - "sentenza", "ordinanza", "decreto", "parere", "plenaria" (Adunanza Plenaria). Filters server-side. numero: optional decision number (1-5 digits) for an exact lookup. Filters server-side; combine with ``anno`` + ``sede`` to pin one decision. anno: optional 4-digit publication year. Applied CLIENT-SIDE over the returned page (the portal's year field is a no-op upstream); ``total_found`` stays the upstream, year-unfiltered total. limit: max hits (1..60; the portal serves pages of 20/40/60, newest first). Returns: ``GaSearchResult`` with ``total_found`` (upstream) and hits carrying the NATIVE ECLI, citation, snippet and ``document_url``.
it_ga_get_decision Fetch the full text of one administrative decision, live, by its document URL. Args: document_url: the ``document_url`` of an ``it_ga_search`` hit, verbatim (an ``https://mdp.giustizia-amministrativa.it/visualizza/?...`` URL). Returns: ``GaDecisionFull`` with the full decision text (epigrafe through dispositivo), the portal's own URN and registry coordinates, and the citation contract.
it_verify_citations Verify Italian legal citations found in a text against their real sources. Extracts statute citations ("art. 2043 c.c.", "art. 5 della legge 241/1990", "artt. 1341 e 1342 c.c.", commi) and ECLIs, then checks each: statutes against the live Normattiva act (does the act resolve? does the article exist?), ECLI:IT:COST against the local Constitutional Court index. A parenthetical description right after a citation is content-checked with a trigram match (mismatch = review signal). Non-existent articles come back with a range hint of what DOES exist. Args: text: the text to verify (an LLM answer, a memo, a contract clause). max_citations: cap on citations to verify (1..30, default 15). Returns: ``CitationVerificationResult`` (structured): per-citation checks plus a ``gaps`` list of everything the tool could NOT verify. When any cited article does not exist the result is HALLUCINATION_DETECTED and the response carries isError=true.
Permissions 4
network medium filesystem low database medium env_vars low