mcp server
open-parlamento-mcp
MCP server: diritto italiano + UE, giurisprudenza (Corte Cost./Cassazione/TAR-CdS), relazioni di modifica Normattiva, dati pubblici multi-portale (CKAN), statistiche Eurostat, Parlamento curato (OpenP
Set up
Runs on your computer. Pick your agent and operating system.
Before you start
- uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
{
"mcpServers": {
"open-parlamento-mcp": {
"command": "uvx",
"args": [
"open-parlamento-mcp"
]
}
}
}same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12
Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs
README
synced Oct 28, 2026open-parlamento-mcp — Italian Law & Public Data MCP Server
MCP (Model Context Protocol) server joining Italian & EU law (Constitution, codes, EU legislation, case law, with citations) with public data (open data portals, official statistics, PNRR, migration reception centers) and curated Parliament data (OpenPolis) — 24 tools, one server.
Overview
Most Italian legal/civic MCP servers cover one slice: either the law, or one data source, or parliamentary acts. open-parlamento-mcp covers all three, because answering "is X legal?" or "how much did Y cost?" properly requires citing the norm and the data together — that's the whole point of Open Parlament, the project this server was built for.
Key Features
- 24 MCP tools across law, EU law, case law, parliamentary iter, curated Parliament data (OpenPolis), open data, official statistics, and two focused datasets (PNRR, migrant reception)
- Citation-grounded: legal answers point to the actual article (
Cost. art. 3,C.p. art. 575), never a bare LLM guess - Multi-source data: CKAN (dati.gov.it + regional/local portals), Eurostat, EUR-Lex, Gazzetta Ufficiale, Normattiva modification graph
- Complements RepublicMCP (deep SPARQL access to Camera/Senato ontologies) with a broader, curated surface — use RepublicMCP for raw parliamentary SPARQL depth, this server for law + cross-domain data in one place
Quick Start
Installation
pip install open-parlamento-mcp
Configuration with Claude Desktop
{
"mcpServers": {
"open-parlamento": {
"command": "open-parlamento-mcp"
}
}
}
Or run directly: python -m open_parlamento_mcp.server
Environment
LIGHTRAG_URL(defaulthttp://localhost:9622) — used only bycerca_legge, which queries a LightRAG instance holding the ingested legal corpus. Without it reachable, every other tool still works (they're independent HTTP/SPARQL clients with no shared state).OPENPOLIS_API,OPENPOLIS_LEG,OPENPOLIS_TOKEN,OPENPOLIS_TTL— optional, for the OpenPolis-backed tools (anonymous access works, token raises rate limits).NORME_EDGES_DIR,SENTENZE_EDGES,PENDENZE_EDGES— optional local corpus paths forcosa_modifica/chi_modifica/giurisprudenza_su/casi_pendenti_su; without them those tools degrade gracefully (see Known Limitations).
Available MCP Tools
Diritto italiano
cerca_legge(domanda)— Answers a legal question from Italian law (Constitution + codes) via LightRAG, citing the exact articles (Cost. art. 3,C.p. art. 575).
Normattiva — relazioni di modifica
cosa_modifica(norma)— What a law/decree modifies, abrogates, replaces, or inserts (authoritative Normattiva relations), grouped by intervention type.chi_modifica(norma)— Which acts have modified a given norm/article.novita_normative(argomento?, serie?)— Latest acts published in Gazzetta Ufficiale (official RSS feed).
Diritto UE
cerca_legge_ue(argomento)— EU legislation (regulations, directives, decisions) by topic via EUR-Lex, with CELEX + link.
Giurisprudenza
cerca_sentenze_ue(argomento)— CJEU/General Court case law via EUR-Lex (CELEX sector 6).cerca_sentenze_cost(argomento)— Corte Costituzionale rulings by topic, official massime (1956→today).giurisprudenza_su(norma)— Which Corte Costituzionale rulings decided on a given norm/article, and the outcome (unconstitutional / unfounded / inadmissible).casi_pendenti_su(norma)— Is a norm/article currently under challenge before the Corte Costituzionale (pending cases, from atti di promovimento)?cerca_sentenze_cassazione(argomento)— Corte di Cassazione rulings (civil + criminal) via SentenzeWeb, last ~6 years.cerca_giustizia_amministrativa(parole_chiave)— Consiglio di Stato + TAR data via the OpenGA open-data portal (dataset-level: rulings/appeals by subject, not individual full-text rulings).
Iter parlamentare
cerca_ddl_senato(argomento)— Senato bills by topic, with progress status.cerca_atti_camera(argomento)— Camera bills/proposals by topic, with iter status.
For deep SPARQL access to the full Camera/Senato ontologies (deputies, votes, groups, commissions, governments) see RepublicMCP — these two tools are a thin, topic-search-first complement, not a replacement.
OpenPolis · Openparlamento
Curated, enriched Parliament data via the OpenPolis OPDM API. License: CC-BY-NC — non-commercial use, attribute "Fonte: Openpolis".
cerca_parlamentari(testo?, ruolo?, solo_attivi?)— Search deputies/senators by name or role, ranked by power index.indice_di_forza(ramo?, limite?)— Power-index ranking of parliamentarians (Openpolis-exclusive metric).profilo_parlamentare(nome)— Member profile: group, role, constituency, attendance stats.cerca_votazioni(testo?, solo_voti_chiave?, solo_finali?, solo_fiducia?, esito?)— Votes by topic, with outcome, confidence/key-vote flags, cohesion.decreti_legge(testo?, stato?)— Decree-laws with conversion status and Normattiva link (chainable withcosa_modifica).attivita_legislativa(testo?, tipo?, stato?, ramo?)— Bills/acts across both chambers with iter phase, sponsors, rapporteurs.organi_parlamentari(ramo?, tipo?)— Groups (with power weights), presidency, or commissions.
Dati pubblici & statistiche
cerca_dati(parole_chiave)— Real datasets from Italian (dati.gov.it + regional/local CKAN portals) and EU (data.europa.eu) open-data catalogs.cerca_statistiche(argomento)— Official Eurostat statistics (unemployment, inflation, population, life expectancy, poverty, public debt, GDP...).
Temi specifici
cerca_pnrr(tema)— PNRR-funded projects by topic/place, with amount and iter phase. Source: OpenPNRR (Fondazione Openpolis, ODbL 1.0).accoglienza_migranti(luogo)— Migrant reception centers (CAS/CPA/Hotspot) by municipality/province/region: capacity, operator, daily cost. Source: Centri d'Italia (Fondazione Openpolis, CC-BY 4.0).
Known Limitations
cerca_leggerequires a reachable LightRAG instance with the legal corpus ingested — it currently covers Constitution + Codice Penale, not the full body of Italian law.cerca_sentenze_cassazioneonly covers the last ~6 years (SentenzeWeb's public window) — full historical Cassazione case law (CED) sits behind a personal SPID-authenticated session, not automatable as open data.cerca_giustizia_amministrativareturns dataset-level results (rulings/appeals by subject), not individual full-text rulings.cosa_modifica/chi_modifica/giurisprudenza_su/casi_pendenti_suread from local pre-built corpora (NORME_EDGES_DIR,SENTENZE_EDGES,PENDENZE_EDGES) — without those paths configured they return empty results rather than failing.- OpenPolis-backed tools are non-commercial use only (CC-BY-NC) — don't repackage that data behind a paywall.
Related projects
Part of the italia-mcp-servers ecosystem. If you're building in this space:
- RepublicMCP — sibling project, deep SPARQL access to the official Camera/Senato ontologies (30+ tools, hand-mapped OCD/OSR type system).
- mcp-legal-it / BetterCallClaude Italia — other Normattiva/case-law MCP servers, useful cross-reference for citation handling.
- ckan-mcp-server — generic CKAN connector (945+ portals) if you need broader open-data coverage than the bundled
cerca_dati.
Integration Context
Developed as part of Open Parlament, an agent that answers questions about the Italian state by joining law with public data, with real citations. Works entirely standalone as a general-purpose MCP server, independent of Open Parlament.
License
Apache-2.0
Maintained by: Giulio Garofalo — part of Open Parlament