A previous release had provenance metadata, but this release does not. View details.
open-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) — 25 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
- 25 MCP tools across law, EU law, case law, parliamentary iter, curated Parliament data (OpenPolis), open data, official statistics, and three focused datasets (PNRR, PNRR contract awards, 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).dettaglio_appalto_pnrr(cup)— Who actually won the contract behind a PNRR project (CUP), and for how much: awardee, awarded amount, discount, date — or the tender's status if not yet awarded. Chain withcerca_pnrr'scupfield. Source: Servizio Contratti Pubblici (MIT) + ANAC.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.
dettaglio_appalto_pnrr's ANAC enrichment only returns rich data for "smart CIG" (below-threshold purchases); for "ordinary CIG" (most large PNRR contracts) ANAC's API respondsNOKSNwith partial data and no awardee — the awardee itself always comes from the SCP "Esiti" dataset instead, so this doesn't block the tool, just limits what the ANAC enrichment adds.
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
Metadata
Release files for open-parlamento-mcp 0.3.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Loss of provenance
These files do not have provenance metadata, despite files in a prior release including this data.
We recommend further investigation before installing these files. View details.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| open_parlamento_mcp-0.3.4.tar.gz | 64.4 kB | Without provenance | Details for open_parlamento_mcp-0.3.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| open_parlamento_mcp-0.3.4-py3-none-any.whl | Python 3 | none | any | Details for open_parlamento_mcp-0.3.4-py3-none-any.whl |
Total release size: 108.8 kB
Release files / open_parlamento_mcp-0.3.4.tar.gz
Loss of provenance
This file belongs to a release without provenance metadata, despite a prior release including this data.
We recommend further investigation before installing this file. View details.
| Download URL | open_parlamento_mcp-0.3.4.tar.gz |
|---|---|
| Size | 64.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c58a650df62506c732b24a874b4a11a23acf52317b9e55e20336d14cd4efcf9d
|
|
BLAKE2b-256 checksum How to use checksums |
b39e7131bb16d970fd6bee13750e390c54ebfa9412c66bdebee972594e8405ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / open_parlamento_mcp-0.3.4-py3-none-any.whl
Loss of provenance
This file belongs to a release without provenance metadata, despite a prior release including this data.
We recommend further investigation before installing this file. View details.
| Download URL | open_parlamento_mcp-0.3.4-py3-none-any.whl |
|---|---|
| Size | 44.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
751e89f6e5a387d5b75733272b793162601d24798f2fb4adf37c676b6df3e1b7
|
|
BLAKE2b-256 checksum How to use checksums |
45f8547d286c9bde5bad9948973bf5b86f0e6346ccee4b281668e0c5d2f6d18f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Security for open-parlamento-mcp 0.3.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Loss of provenance
A previous release of these files had provenance metadata, but this release does not.
While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.
Release comparison
- Removed 0.2.3 2 files With provenance
- Added 0.3.4 2 files Without provenance
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.