← Back to search

io.github.matematicsolutions/it-eli-mcp

matematicsolutions Scanned 1d ago

Italian law: Normattiva legislation + Corte Costituzionale, Cassazione and TAR case law, live.

C
68.8 / 100

Versions

0.2.2latest
first seen Jul 1, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 13

it_list_codes
annotations: none low

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
annotations: none low

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``.

query ResolveQuery
it_get_act
annotations: none low

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``.

reference str
it_get_text
annotations: none low

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.

format TextFormat article string at_date string reference str
it_case_search
annotations: none low

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).

anno string limit int query str tipologia string
it_case_get_decision
annotations: none low

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.

anno string ecli string numero string
it_case_recent
annotations: none low

The most recent Constitutional Court decisions in the index (newest first). Args: limit: max items (1..100).

limit int
it_case_stats
annotations: none low

Constitutional case-law index coverage and freshness (totals, years, last build).

it_cassazione_search
annotations: none low

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).

anno string limit int query str chamber string sub_chamber string
it_cassazione_get
annotations: none low

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.

sic_id str
it_ga_search
annotations: none low

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``.

anno string sede string tipo string limit int query string numero string
it_ga_get_decision
annotations: none low

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.

document_url str
it_verify_citations
annotations: none low

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.

text str max_citations int

Permissions 4

network medium
Server uses network capabilities via: http, httpx
filesystem low
Server uses filesystem capabilities via: open(), os, pathlib, shutil
database medium
Server uses database capabilities via: sqlite3
env_vars low
Server uses env_vars capabilities via: os.environ

Scan Findings 58

low
Tool 'it_list_codes' has no annotations annotation_checker · 100%
low
Tool 'it_resolve' has no annotations annotation_checker · 100%
low
Tool 'it_get_act' has no annotations annotation_checker · 100%
low
Tool 'it_get_text' has no annotations annotation_checker · 100%
low
Tool 'it_case_search' has no annotations annotation_checker · 100%
low
Tool 'it_case_get_decision' has no annotations annotation_checker · 100%
low
Tool 'it_case_recent' has no annotations annotation_checker · 100%
low
Tool 'it_case_stats' has no annotations annotation_checker · 100%
low
Tool 'it_cassazione_search' has no annotations annotation_checker · 100%
low
Tool 'it_cassazione_get' has no annotations annotation_checker · 100%
low
Tool 'it_ga_search' has no annotations annotation_checker · 100%
low
Tool 'it_ga_get_decision' has no annotations annotation_checker · 100%
low
Tool 'it_verify_citations' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: fastmcp@3.4,<4 (GHSA-5h2m-4q8j-pqpj) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (GHSA-c2jp-c369-7pvx) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (GHSA-m8x7-r2rg-vh5g) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (GHSA-mxxr-jv3v-6pgc) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (GHSA-rcfx-77hg-w2wv) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (GHSA-rj5c-58rq-j5g5) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (GHSA-rww4-4w9c-7733) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (GHSA-vv7q-7jx5-f767) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (PYSEC-2026-1364) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (PYSEC-2026-1365) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (PYSEC-2026-2474) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (PYSEC-2026-2475) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (PYSEC-2026-2476) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.4,<4 (PYSEC-2026-338) dependency_analyzer · 95%
medium
Vulnerable dependency: httpx@0.27,<1 (GHSA-h8pj-cxx2-jfg2) dependency_analyzer · 95%
medium
Vulnerable dependency: httpx@0.27,<1 (PYSEC-2022-183) dependency_analyzer · 95%
medium
Vulnerable dependency: diskcache@5.6 (GHSA-w8v5-vhqr-4h9v) dependency_analyzer · 95%
medium
Vulnerable dependency: diskcache@5.6 (PYSEC-2026-2447) dependency_analyzer · 95%
medium
Vulnerable dependency: lxml@5.2 (GHSA-vfmq-68hx-4jfw) dependency_analyzer · 95%
medium
Vulnerable dependency: lxml@5.2 (PYSEC-2026-87) dependency_analyzer · 95%
medium
Vulnerable dependency: certifi@2024.2.2 (GHSA-248v-346w-9cwc) dependency_analyzer · 95%
medium
Vulnerable dependency: certifi@2024.2.2 (PYSEC-2024-230) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: it_list_codes manifest_parser · 90%
info
Tool: it_resolve manifest_parser · 90%
info
Tool: it_get_act manifest_parser · 90%
info
Tool: it_get_text manifest_parser · 90%
info
Tool: it_case_search manifest_parser · 90%
info
Tool: it_case_get_decision manifest_parser · 90%
info
Tool: it_case_recent manifest_parser · 90%
info
Tool: it_case_stats manifest_parser · 90%
info
Tool: it_cassazione_search manifest_parser · 90%
info
Tool: it_cassazione_get manifest_parser · 90%
info
Tool: it_ga_search manifest_parser · 90%
info
Tool: it_ga_get_decision manifest_parser · 90%
info
Tool: it_verify_citations manifest_parser · 90%
info
Required env vars (7) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: filesystem access detected permission_analyzer · 90%
medium
Permission: database access detected permission_analyzer · 90%
low
Permission: env_vars access detected permission_analyzer · 90%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%