it-eli-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IT_ELI_BASE_URL | No | Base URL for Normattiva (default https://www.normattiva.it) | https://www.normattiva.it |
| IT_ELI_AUDIT_DIR | No | Audit log directory (default ~/.matematic/audit) | ~/.matematic/audit |
| IT_ELI_CACHE_DIR | No | Cache directory (default ~/.matematic/cache/it-eli) | ~/.matematic/cache/it-eli |
| IT_ELI_CASELAW_DB | No | Constitutional case-law index path (default ~/.matematic/data/it-eli-caselaw/cost.sqlite) | ~/.matematic/data/it-eli-caselaw/cost.sqlite |
| IT_ELI_CASELAW_AUTOBUILD | No | Set to '0' to skip automatic local build | |
| IT_ELI_CASELAW_INDEX_URL | No | Pre-built index download URL (default: the GitHub release asset; empty string disables) | the GitHub release asset |
| IT_ELI_CASELAW_INDEX_SHA256 | No | Pin the expected index checksum instead of fetching the .sha256 sidecar |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| it_list_codesA | 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 |
| it_resolveA | Build a canonical, resolvable URN:NIR from act coordinates. Offline (no network). |
| it_get_actA | Fetch act metadata from Normattiva. |
| it_get_textA | Fetch the text of a whole act or a single article. |
| it_case_searchA | Full-text search of Corte Costituzionale (Constitutional Court) decisions. |
| it_case_get_decisionA | Fetch the full text of one Constitutional Court decision, by ECLI or year + number. |
| it_case_recentB | The most recent Constitutional Court decisions in the index (newest first). |
| it_case_statsA | Constitutional case-law index coverage and freshness (totals, years, last build). |
| it_cassazione_searchA | 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 ( |
| it_cassazione_getA | Fetch the full text of one Corte di Cassazione decision, live, by its SentenzeWeb id. |
| it_ga_searchA | 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 |
| it_ga_get_decisionA | Fetch the full text of one administrative decision, live, by its document URL. |
| it_coverageA | Declare what this connector covers, how it is sourced, and what it does NOT cover. Call this before telling a user that the law "does not contain" something, and whenever a search comes back empty: the absence may be a gap in this connector rather than in the law. Every gap carries a fallback saying where to look instead. Returns:
|
| it_verify_citationsA | 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
Each tool has a clearly bounded function: legislation tools are separated from case-law tools, and each court family has its own prefix (it_case_, it_cassazione_, it_ga_) with distinct search/get actions. Even the URN-related tools it_list_codes and it_resolve serve different purposes: curated code lookup versus building a URN from coordinates.
Names are consistently lowercase snake_case with the it_ prefix, and court-family prefixes make relationships clear. Minor deviations such as it_case_recent, it_case_stats, and it_coverage (which are not verb-first like the rest) prevent a perfect 5.
With 14 tools, the set is broad but each tool maps to a distinct task across legislation, three case-law corpora, coverage, and citation verification. There is no redundancy or filler.
The core retrieval lifecycle is well covered: act identification/resolution/metadata/text, case-law search and retrieval for all three jurisdictions, and citation verification with an explicit coverage/fallback tool. The main gap is the absence of general free-text statute search, and recent/stats tools exist only for constitutional decisions.