Skip to main content
Loss of provenance

A previous release had provenance metadata, but this release does not. View details.

open-parlamento-mcp — Italian Law & Public Data MCP Server

PyPI version License: Apache-2.0 Listed in italia-mcp-servers

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 (default http://localhost:9622) — used only by cerca_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 for cosa_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 with cosa_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 with cerca_pnrr's cup field. 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_legge requires a reachable LightRAG instance with the legal corpus ingested — it currently covers Constitution + Codice Penale, not the full body of Italian law.
  • cerca_sentenze_cassazione only 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_amministrativa returns dataset-level results (rulings/appeals by subject), not individual full-text rulings.
  • cosa_modifica/chi_modifica/giurisprudenza_su/casi_pendenti_su read 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 responds NOKSN with 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.

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)

Source distribution for open-parlamento-mcp 0.3.4
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)

Table of built distributions (wheels) for open-parlamento-mcp 0.3.4
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page