{
  "markdown": "# Italian Law MCP\n\n<!-- ANSVAR-CTA-BEGIN -->\n> **The Italian law corpus is now served through the Ansvar Gateway.** Connect your AI assistant (Claude, Copilot, Cursor, custom MCP client) to `https://gateway.ansvar.eu/mcp` — one OAuth connection, free tier available, covering this corpus plus EU regulations, national law across 28 audited jurisdictions, and CVE/security intelligence, every result with a verbatim source citation. Start at https://ansvar.eu/docs/quickstart\n\n### Connect\n\n**Claude Code** (one line):\n\n```bash\nclaude mcp add ansvar --transport http https://gateway.ansvar.eu/mcp\n```\n\n**Claude Desktop / Cursor** — add to `claude_desktop_config.json` (or `mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"ansvar\": {\n      \"type\": \"url\",\n      \"url\": \"https://gateway.ansvar.eu/mcp\"\n    }\n  }\n}\n```\n\n**Claude.ai** — Settings → Connectors → Add custom connector → paste `https://gateway.ansvar.eu/mcp`\n\nFirst request opens an OAuth signup flow (setup details: [ansvar.eu/docs/quickstart](https://ansvar.eu/docs/quickstart)). After signup, your client is bound to your account; tier (free / premium / team / company) determines fan-out, quota, and which downstream MCPs are reachable.\n\n---\n\n## Self-host this MCP\n\nYou can also clone this repo and build the corpus yourself. The schema,\nfetcher, and tool implementations all live here. What is not in the repo is\nthe pre-built database — TDM and standards-licensing constraints on the\nupstream sources mean we host the corpus on Ansvar infrastructure rather\nthan redistribute it as a public artifact.\n\nBuild your own: run this repo's ingestion script (entry-point varies per\nrepo — typically `scripts/ingest.sh`, `npm run ingest`, or `make ingest`;\ncheck the repo root).\n<!-- ANSVAR-CTA-END -->\n\n\nMCP server for Italian law — statutes from www.normattiva.it with EU implementation\nmapping. Indexes the Codice Civile, Codice Penale, Codice Privacy (D.Lgs. 196/2003 +\nD.Lgs. 101/2018), the NIS2 transposition (D.Lgs. 138/2024), D.Lgs. 231/2001 corporate\nliability framework, and the Codice dell'Amministrazione Digitale.\n\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)\n[![MCP](https://img.shields.io/badge/MCP-spec--compliant-green.svg)](https://modelcontextprotocol.io)\n[![Jurisdiction](https://img.shields.io/badge/Jurisdiction-IT-informational.svg)](#coverage)\n\n## What this is\n\nThis server indexes the legal materials listed under **Sources** below and exposes them\nvia the Model Context Protocol. Part of the Ansvar MCP fleet — source-available servers\npublished for self-hosting.\n\nIt makes no outbound network calls except to the upstream sources during ingestion —\nno analytics, no phone-home.\n\n## Coverage\n\n- **Corpus target:** 58,985 statutes, 267,838 provisions from Normattiva (the consolidated\n  national legislative database)\n- **Premium overlay:** 759,592 preparatory works from the Italian Senate (Akoma Ntoso XML,\n  CC-BY-4.0)\n- **Jurisdiction code:** `IT`\n- **Languages:** Italian only — no official translations\n\nThe corpus is rebuilt from the upstream sources by `scripts/build-db.ts`; re-run\n`npm run build:db` periodically to refresh. The current free-tier ship contains a\npartial-ingestion snapshot (~361 statutes); full re-ingestion is tracked as separate\nwork.\n\nSee **Sources** below for source URLs, terms, and reuse conditions.\n\n## Why this exists\n\nLLMs answering compliance, security, or legal questions from training data alone will\nfabricate citations — confidently producing article numbers, statute names, and source\nURLs that do not exist, or that do not say what the model claims. This MCP exists so an\nagent can call a tool that returns the real text, the real identifier, and the real\nsource URL straight from the indexed materials — and ground an answer rather than recall\nit.\n\nOne MCP, one corpus. The point is composition.\n\nThe **Ansvar Gateway** ([ansvar.eu](https://ansvar.eu)) joins this MCP with the rest of\nthe Ansvar fleet behind a single authenticated endpoint — 300+ servers covering legal\njurisdictions, EU regulations, security frameworks, sector regulators, privacy-pattern\ncatalogues, and risk-scoring tools. That lets an agent run cross-domain workflows that\nno single MCP can serve alone:\n\n- **Threat model and TARA.** Threat enumeration → known component vulnerabilities →\n  severity scoring → applicable AI, cybersecurity, and automotive obligations → privacy\n  threats. Every finding traceable to its source.\n- **Gap analysis.** Target framework requirements → current-state evidence → unmet\n  obligations → remediation guidance and authority opinions. Every gap traceable to the\n  specific requirement that flagged it.\n- **Data Protection Impact Assessment.** Privacy regulation articles → national DPA\n  guidance (Garante per la protezione dei dati personali) → privacy-pattern catalogue →\n  applicable case law.\n\n### Getting high-quality citations\n\nCitation accuracy degrades when an agent's context fills up. Long inputs cause\nretrieval-stage drift — the model recalls claim text correctly but misattributes the\nsource. Two practices keep accuracy high:\n\n1. **Focused first pass, checking-agent second pass.** Query a small, relevant set of\n   MCPs first, then run a separate agent whose only job is to re-resolve each citation\n   against the source MCP and flag any that no longer match. The checking agent uses the\n   same MCP tools as the synthesis agent.\n2. **Pull the source text verbatim when in doubt.** Every citation an agent emits points\n   back to a tool call against this server. You — or another agent — can call the same\n   tool with the same identifier and read the raw statute, article, or standard text\n   directly. If the verbatim text doesn't support what the agent claimed, the citation\n   was misused, regardless of whether the identifier was real.\n\nBoth patterns work the same way self-hosted or through the gateway.\n\n## Tools\n\n| Tool | Description |\n|---|---|\n| `about` | Server metadata, dataset statistics, freshness, and provenance |\n| `search_legislation` | Search Italian laws and codes by keyword (in Italian); BM25 ranking, provision-level results |\n| `get_provision` | Retrieve the full text of a specific article from an Italian law (or all articles if no article number) |\n| `list_sources` | Returns metadata about data sources backing this server (jurisdiction, authority, license) |\n| `validate_citation` | Validate an Italian legal citation against the database — does the cited law and provision exist? |\n| `build_legal_stance` | Build a citation set for a legal question by searching across all Italian legislation |\n| `format_citation` | Format an Italian legal citation per standard conventions |\n| `check_currency` | Is an Italian law or provision in force, amended, or repealed (abrogata)? |\n| `get_eu_basis` | Get EU legal basis (directives, regulations) for an Italian law |\n| `get_italian_implementations` | Find Italian laws that implement a specific EU directive or regulation |\n| `search_eu_implementations` | Search for EU instruments that have been implemented or referenced by Italian laws |\n| `get_provision_eu_basis` | Get EU legal basis for a specific provision within an Italian law (article-level) |\n| `validate_eu_compliance` | Check EU compliance status — detects references to repealed EU directives |\n\n## Two ways to use it\n\n**Self-host (free, Apache 2.0)** — clone this repo, run the build to compile the local\nSQLite database from the included data, point your MCP client at the local server.\nInstructions below.\n\n**Use the hosted gateway** — for production use against the curated, kept-fresh corpus\nacross the full Ansvar MCP fleet, with citation enrichment and multi-jurisdiction\nfan-out — see [ansvar.eu](https://ansvar.eu).\n\n## Self-hosting\n\n### Requirements\n\n- Node.js 20 or newer\n- ~500 MB free disk for the built database (free tier)\n\n### Install\n\n```bash\ngit clone https://github.com/Ansvar-Systems/italian-law-mcp.git\ncd italian-law-mcp\nnpm install\n```\n\n### Build the database\n\n```bash\nnpm run build\nnpm run build:db\n```\n\n`build:db` compiles `data/source/` into `data/database.db` (the runtime SQLite the MCP\nqueries). To refresh against the latest Normattiva snapshot, the ingestion script\n(`scripts/ingest.ts`) fetches from the upstream sources listed under **Sources** below;\nreview the source's published terms before running ingestion in a commercial\ndeployment.\n\nIngestion is a snapshot — your local copy goes stale until you re-run it. The hosted\ngateway corpus is refreshed continuously.\n\n### Configure your MCP client\n\n```json\n{\n  \"mcpServers\": {\n    \"italian-law-mcp\": {\n      \"command\": \"node\",\n      \"args\": [\"/abs/path/to/italian-law-mcp/dist/index.js\"]\n    }\n  }\n}\n```\n\nFor HTTP transport (Docker / Kubernetes), the runtime entry point is\n`dist/http-server.js` listening on `PORT` (default 3000) at `/mcp`.\n\n## Sources\n\n| Source | Source URL | Terms / license URL | License basis | Attribution required | Commercial use | Redistribution / caching | Notes |\n|---|---|---|---|---|---|---|---|\n| Normattiva — consolidated Italian legislation | https://www.normattiva.it/ | [Note legali](https://www.normattiva.it/static/note_legali.html) | Public domain — Italian Copyright Law (Legge 633/1941) Art. 5 excludes official acts of the State from copyright | Recommended | Conditional | Conditional | Italian statutes themselves are not copyrighted; Normattiva's site terms restrict bulk reuse of the database structure. Verify use case. |\n| Italian Senate — preparatory works (Akoma Ntoso XML) | https://dati.senato.it/ | [License](https://dati.senato.it/) | CC-BY-4.0 | Required | Yes | Yes | 759,592 preparatory works; included only in the premium overlay |\n\n### Upstream license constraints\n\nAnsvar attribution code: **`Italian-LDA-Art-5`** (declared in\n`infrastructure/attribution-licenses.json` in the Ansvar architecture-documentation\nrepo). The publisher (Normattiva) also declares **CC-BY-4.0** as an overlay since\n2026-01-01.\n\n- **Normattiva.** Italian official acts (statutes, decrees) fall outside copyright under\n  Art. 5 Legge 633/1941 — `atti ufficiali dello Stato e delle Amministrazioni pubbliche`.\n  Normattiva's published terms (`note_legali.html`) restrict bulk reuse of the *database\n  structure*; reproducing the underlying legislative texts is permitted, but bulk\n  re-publication of Normattiva's curated/consolidated database may not be. The included\n  ingestion script extracts legislative text, not the database structure.\n- **Italian Senate (premium overlay).** Akoma Ntoso XML feeds at `dati.senato.it` are\n  licensed CC-BY-4.0. Attribution is required; commercial reuse and redistribution are\n  permitted. The premium overlay is not redistributed under this repository's Apache 2.0\n  license — see [ansvar.eu](https://ansvar.eu) for the hosted gateway corpus.\n\n### Coverage scope (narrow carve-out)\n\nItalian Art. 5 is **NARROW**. Coverage is asymmetric across material types:\n\n- **IN-SCOPE under Art. 5:** statutes (`leggi`), decrees (`decreti legislativi`,\n  `decreti-legge`), official acts of the State, decrees and decisions of public\n  administrations in their administrative-act capacity, ministerial circulars.\n- **OUT-OF-SCOPE under Art. 5:** court judgments (`sentenze`) — Italian doctrine\n  consistently treats court judgments as outside `atti ufficiali` for Art. 5\n  purposes. A court-decisions tier would need a separate basis (D.Lgs. 36/2006\n  PSI implementing the EU PSI Directive, or court-specific terms).\n- **Why this matters:** This MCP currently ships the statute tier (Normattiva)\n  under `Italian-LDA-Art-5`. Case-law tier (Cassazione, Corte Costituzionale,\n  giustizia amministrativa) is not in scope and would require a separate\n  licensing declaration before ingestion.\n\nSee `docs/audits/2026-05-17-eu-copyright-statutory-works-batch-1b-DE-IE-IT-NL-ES.md`\n§3 in the Ansvar architecture-documentation repo for the verbatim Art. 5 text\nand the coverage analysis.\n\n## What this repository does not provide\n\nThis repository's source — the MCP server code, schema, and ingestion script — is\nlicensed under Apache 2.0. The license below covers the code in this repository only;\nit does not extend to the upstream legal materials.\n\nRunning ingestion may download, cache, transform, and index materials from the listed\nupstream sources. You are responsible for confirming that your use of those materials\ncomplies with the source terms, attribution requirements, robots/rate limits, database\nrights, copyright rules, and any commercial-use or redistribution limits that apply in\nyour jurisdiction.\n\n## License\n\nApache 2.0 — see [LICENSE](LICENSE). Commercial use, modification, and redistribution of\n**the source code in this repository** are permitted under that license. The license\ndoes not extend to upstream legal materials downloaded by the ingestion script; those\nremain governed by the source jurisdictions' own publishing terms (see Sources above).\n\n## The Ansvar gateway\n\nIf you'd rather not self-host, [ansvar.eu](https://ansvar.eu) provides this MCP plus the\nfull Ansvar fleet through a single authenticated endpoint, with the curated production\ncorpus, multi-MCP query orchestration, and citation enrichment.\n\n---\n\nIssues: [github.com/Ansvar-Systems/italian-law-mcp/issues](https://github.com/Ansvar-Systems/italian-law-mcp/issues) · Security: <security@ansvar.eu>\n",
  "bytes": 13361,
  "sha": "9d36e6186e09bb95c2650eac1a22b1bf041ede1b266c4ac08d764707f50aea55",
  "repo_slug": "ansvar-systems/italian-law-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_eu_ansvar_italian_law_mcp_f58b349b/readme"
}