Skip to main content
Glama
banca-dati-merito-mcp

banca-dati-merito-mcp

banca-dati-merito-mcp

Server MCP per consultare la Banca Dati di Merito del Ministero della Giustizia da un assistente AI (Claude, Cursor, Windsurf e altri client MCP): cerca, legge e aiuta a citare i provvedimenti civili di tribunali e corti d'appello e i relativi abstract, usando la tua sessione SPID, CIE, CNS o eIDAS.

Progetto non ufficiale. Non è affiliato al Ministero della Giustizia né approvato da esso. Usa le stesse API che il sito della Banca Dati usa nel tuo browser, con il tuo accesso personale.

Cosa fa

Strumento

A cosa serve

stato_sessione, accedi

Controlla la sessione; apre il browser per l'accesso

risolvi_criteri

Trasforma "tribunale di Bologna" nel criterio esatto ufficio: TRIBUNALE DI BOLOGNA

cerca_provvedimenti

Sentenze, ordinanze e decreti per testo (tutte le parole, almeno una, frase esatta), criteri e date

cerca_abstract

Gli abstract, cioè le sintesi dei principi affermati

leggi_provvedimento

Metadati completi, esito, abstract collegati, gradi di giudizio, note personali

leggi_testo_provvedimento

Testo integrale pseudonimizzato, a blocchi

leggi_abstract

Abstract completo con precedenti conformi e difformi

timeline_provvedimento

La sequenza dei gradi di giudizio

scarica_documento

Salva il PDF in una cartella del tuo computer

elenca_valori, elenca_uffici, cerca_valori

Materie, ruoli, uffici per distretto, giudici, parole chiave, riferimenti normativi

frequenze_parole_chiave, pubblicazioni, archivio

Statistiche e navigazione dell'archivio

cartelle_personali, leggi_cartella_personale, ricerche_salvate

La tua area personale, in sola lettura

Il server è in sola lettura: non crea, modifica né cancella nulla nella Banca Dati. Include anche una skill che insegna all'assistente il metodo di ricerca e di citazione (skills/ricerca-banca-dati-merito).

Related MCP server: Banca Dati di Merito MCP Server

Requisiti

  • Un'identità digitale con cui accedi alla Banca Dati: SPID, CIE, CNS o eIDAS.

  • Google Chrome o Microsoft Edge, per la finestra di accesso.

  • Node.js 22 o successivo, solo per Claude Code e gli altri client (Claude Desktop ha già il suo).

Dove funziona

Il server gira sul tuo computer, perché la sessione con la Banca Dati non deve uscirne (ADR 0001). Per questo funziona solo nei client che avviano programmi locali:

Funziona

Non funziona

App desktop di Claude (estensione .mcpb)

claude.ai dal browser, app di Claude per smartphone

Claude Code (plugin)

ChatGPT (browser, smartphone e chat dell'app desktop)

Cursor, Windsurf, Zed, Codex e altri client MCP locali

Nei client che accettano solo server remoti l'unico modo sarebbe esporre il server su internet, e con lui la tua sessione: non farlo.

Installazione

Claude Desktop

Scarica il file banca-dati-merito-mcp-<versione>.mcpb dalle release e aprilo: Claude Desktop lo installa come estensione. Nelle impostazioni dell'estensione puoi scegliere la cartella per i PDF.

Claude Code

/plugin marketplace add andreadorizza/banca-dati-merito-mcp
/plugin install banca-dati-merito@banca-dati-merito

Il plugin installa sia il server sia la skill di ricerca.

Altri client MCP

Aggiungi il server alla configurazione del client (Cursor, Windsurf, Zed, ecc.):

{
  "mcpServers": {
    "banca-dati-merito": {
      "command": "npx",
      "args": ["-y", "banca-dati-merito-mcp@0.1.2"]
    }
  }
}

Per Codex di OpenAI:

codex mcp add banca-dati-merito -- npx -y banca-dati-merito-mcp@0.1.2

La skill di ricerca è specifica di Claude; negli altri client restano gli strumenti e le regole che il server stesso invia al modello.

Accesso

Chiedi all'assistente di accedere alla Banca Dati: lo strumento accedi apre una finestra di Chrome o Edge sulla pagina di accesso del Ministero, dove entri come fai di solito. Le credenziali non passano mai dal server.

In alternativa, da terminale:

npx banca-dati-merito-mcp@0.1.2 login

La sessione dura circa due ore. Il browser usa un profilo dedicato, separato dal tuo, in cui il salvataggio delle password è disattivato.

Privacy e sicurezza

  • La sessione resta sul tuo computer, in un file leggibile solo dal tuo utente: ~/Library/Application Support/banca-dati-merito-mcp/ su macOS, %APPDATA%\banca-dati-merito-mcp\ su Windows, ~/.config/banca-dati-merito-mcp/ su Linux. Il server non ha componenti remoti e non contatta altri servizi oltre alla Banca Dati (ADR 0001). Unica eccezione: se la Banca Dati cambia certificato, il server può scaricare il certificato intermedio dal server dell'autorità di certificazione indicato nel certificato stesso.

  • Quello che il server legge arriva al modello AI che usi: testi dei provvedimenti, metadati e, se li chiedi, le tue note e cartelle personali. Valuta il tuo fornitore AI di conseguenza.

  • Per uscire: npx banca-dati-merito-mcp@0.1.2 logout cancella la sessione e il profilo del browser dedicato.

Uso responsabile

La Banca Dati è pensata per la consultazione individuale. Il server lo rispetta:

  • una richiesta alla volta per ogni app che usa il server, con almeno un secondo tra l'una e l'altra; una richiesta annullata dal client non parte;

  • al massimo 50 risultati per chiamata (20 di norma);

  • nessuno strumento di download massivo.

Ogni chiamata usa il tuo accesso personale: un assistente che cerca in modo mirato protegge anche il tuo account.

Configurazione

Variabile

Predefinito

Effetto

BDM_DOWNLOAD_DIR

~/Downloads/banca-dati-merito

Dove scarica_documento salva i PDF

BDM_MIN_INTERVAL_MS

1000

Pausa minima tra due richieste (mai sotto 250)

BDM_HOME

cartella dati del sistema

Dove salvare sessione e profilo del browser

Come funziona

Il sito della Banca Dati è un'applicazione che parla con un backend JSON (/api/bdm/frontoffice/): GraphQL per ricerche e dettagli, REST per testi, documenti e liste. Il server usa le stesse chiamate. Alcuni dettagli non ovvi:

  • La sessione è legata al browser che ha fatto l'accesso: il server ripete lo stesso User-Agent e gli stessi client hint, altrimenti la Banca Dati risponde 401.

  • Il certificato del sito non include il certificato intermedio, che i browser recuperano da soli e Node no. Il server lo include (src/bdp/tls.ts) e, se il sito cambia certificato, lo scarica dall'indirizzo indicato nel certificato stesso, accettandolo solo se firmato da un'autorità già attendibile.

  • Ogni risposta è validata: se la Banca Dati cambia formato, lo strumento restituisce un errore chiaro invece di dati vuoti.

Il glossario spiega i termini; docs/adr le scelte di progetto.

Sviluppo

npm install
npm run check      # typecheck e test (Node 22.18+)
npm run build

scripts/record.ts registra una risposta per ogni endpoint, con la tua sessione, in test/fixtures/raw/ (esclusa da git); scripts/pack-mcpb.sh crea il pacchetto per Claude Desktop.

Crediti

Due progetti precedenti hanno aperto la strada: mcp-bdm-civile di avvocati-e-mac e mcp-bdm di slimmanolesta, il cui README ha documentato per primo il legame tra sessione e User-Agent. Il codice di questo progetto è scritto da zero.

Licenza

Apache-2.0.


In English

An unofficial MCP server for Italy's Ministry of Justice Banca Dati di Merito (public database of first- and second-instance civil decisions). It searches and reads decisions and their abstracts with the user's own SPID/CIE/CNS/eIDAS session, which never leaves the user's machine. Read-only, rate-limited, Apache-2.0. Tools and documentation are in Italian because the data and its users are.

Available Tools

19 tools
accediAccedi alla Banca DatiA
Idempotent

Apre una finestra di Chrome o Edge sulla pagina di accesso della Banca Dati di Merito, dove l'utente entra con SPID, CIE, CNS o eIDAS. Ritorna subito: chiedi all'utente di completare l'accesso nella finestra, poi controlla con stato_sessione. La sessione dura circa due ore.

Inputs: no named parameters.

archivioArchivioA
Read-only

Conteggi dell'archivio della Banca Dati, come nella sezione Archivio del sito. Senza parametri: per distretto. Con distretto: per ufficio. Con ufficio: per materia, eventualmente limitati a un anno e a un mese. Per elencare i provvedimenti usa cerca_provvedimenti con il criterio ufficio e le date.

Inputs: anno, area, mese, materia, +2 more.

cartelle_personaliCartelle personaliA
Read-only

Elenca le cartelle personali che l'utente ha creato nella Banca Dati (sola lettura), con le sottocartelle.

Inputs: no named parameters.

cerca_abstractCerca abstractA
Read-only

Cerca gli abstract della Banca Dati, cioè le sintesi dei principi affermati nei provvedimenti. Usalo per gli orientamenti su una questione. Un abstract non è una massima ufficiale: prima di citarlo come principio di un provvedimento, verificalo nel testo con leggi_testo_provvedimento. Senza filtri restituisce gli ultimi pubblicati.

Inputs: da, area, date, testo, +7 more.

cerca_provvedimentiCerca provvedimentiA
Read-only

Cerca sentenze, ordinanze e decreti di merito nella Banca Dati, per testo, criteri di campo e date. Senza filtri restituisce gli ultimi pubblicati. Restituisce estremi, metadati, estratti evidenziati e gli abstract collegati. Gli estratti sono frammenti: non bastano per dire che cosa ha deciso un provvedimento. Prima di riferire il principio o l'esito di un provvedimento, leggine il testo con leggi_testo_provvedimento.

Inputs: da, area, date, testo, +7 more.

cerca_valoriCerca valoriA
Read-only

Cerca i valori di un singolo campo che contengono un testo: uffici, giudici, parole chiave o riferimenti normativi (per esempio '1453' trova 'ART. 1453 C.C.'). Per risolvere un nome senza sapere il campo usa risolvi_criteri.

Inputs: campo (required), testo (required), area.

elenca_ufficiElenca uffici giudiziariA
Read-only

Elenca gli uffici giudiziari presenti nella Banca Dati, raggruppati per distretto di corte d'appello. Con distretto restituisce solo gli uffici di quel distretto.

Inputs: distretto.

elenca_valoriElenca valoriA
Read-only

Elenca tutti i valori ammessi di materia o ruolo, nella forma esatta da usare come criterio di ricerca.

Inputs: campo (required), area.

frequenze_parole_chiaveFrequenza delle parole chiaveB
Read-only

Restituisce le parole chiave più usate nei provvedimenti o negli abstract, con il numero di documenti.

Inputs: area, tipo.

leggi_abstractLeggi abstractA
Read-only

Restituisce un abstract completo: titolo, testo del principio, estremi del provvedimento da cui deriva, precedenti conformi e difformi collegati dalla Banca Dati, e le note personali dell'utente.

Inputs: id (required), area, includi_cartelle.

leggi_cartella_personaleLeggi cartella personaleA
Read-only

Restituisce il contenuto di una cartella personale dell'utente: provvedimenti, abstract e sottocartelle (sola lettura).

Inputs: id (required).

leggi_provvedimentoLeggi provvedimentoA
Read-only

Restituisce i metadati completi di un provvedimento: estremi, giudici, materia, parole chiave, riferimenti normativi, esito, gli abstract che ne derivano, i provvedimenti precedente e successivo nel giudizio, e le note personali dell'utente.

Inputs: id (required), area, includi_cartelle.

leggi_testo_provvedimentoLeggi testo del provvedimentoA
Read-only

Restituisce il testo integrale del provvedimento, pseudonimizzato dalla Banca Dati (le parti diventano Parte_1, Controparte_1 ecc.). I testi lunghi arrivano a blocchi: se continua è vero, richiama con da_carattere uguale a prossimo_da.

Inputs: id (required), da_carattere, max_caratteri.

pubblicazioniProvvedimenti pubblicatiA
Read-only

Quanti provvedimenti e abstract la Banca Dati ha pubblicato: totali per distretto oppure, con distretto, per ciascun ufficio del distretto. Riporta anche aree diverse da CIVILE.

Inputs: distretto.

ricerche_salvateRicerche salvateC
Read-only

Elenca le ricerche che l'utente ha salvato nella Banca Dati (sola lettura).

Inputs: tipo.

risolvi_criteriRisolvi criteri di ricercaA
Read-only

Trasforma un nome detto dall'utente (un tribunale, una città, un giudice, un tema) nei criteri esatti della Banca Dati, con il campo giusto. Usalo prima di cercare per ufficio, distretto, giudice, parola chiave o materia: i criteri funzionano solo con il valore esatto.

Inputs: testo (required), area, tipo.

scarica_documentoScarica documentoA

Salva il PDF di un provvedimento o di un abstract nella cartella di download configurata dall'utente (predefinita: Download/banca-dati-merito) e restituisce il percorso del file. Non sovrascrive file esistenti. La Banca Dati può impiegare oltre mezzo minuto a generare il PDF. Per leggere il contenuto usa leggi_testo_provvedimento o leggi_abstract.

Inputs: id (required), tipo (required), nome_file.

stato_sessioneStato della sessioneA
Read-only

Dice se c'è una sessione valida con la Banca Dati di Merito e quando scade, e lo stato di un eventuale accesso in corso. Chiamalo prima di una serie di ricerche.

Inputs: no named parameters.

timeline_provvedimentoTimeline del giudizioA
Read-only

Restituisce la sequenza dei gradi di giudizio collegati a un provvedimento, come la mostra la Banca Dati.

Inputs: id (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 19 tools

    Disambiguation4/5

    Most tools map to a distinct resource+action (cerca/leggi/elenca/scarica on provvedimenti, abstract, uffici), and descriptions explicitly route ambiguous cases (risolvi_criteri vs cerca_valori, cerca_provvedimenti vs leggi_provvedimento). The weakest spot is the statistics pair pubblicazioni vs archivio, which both return counts by distretto/ufficio and could easily be swapped, plus the three value-listing tools (elenca_valori, elenca_uffici, cerca_valori) whose boundaries need careful reading.

    Naming Consistency4/5

    Consistent Italian snake_case with a dominant verb_noun pattern (cerca_*, leggi_*, elenca_*, risolvi_criteri, scarica_documento). Deviations are minor: a handful of noun-only names (pubblicazioni, archivio, ricerche_salvate, cartelle_personali, frequenze_parole_chiave) and the bare verb accedi, which break the pattern but remain readable and unambiguous.

    Tool Count4/5

    19 tools is on the heavy side but justified by a genuinely broad domain spanning authentication, full-text search, document retrieval, reference-value resolution, statistics, and personal-library access. Each tool covers a distinct slice; there is little obvious dead weight, only mild overlap in the counting/listing area.

    Completeness4/5

    The research lifecycle is well covered: session/login, criteria resolution, search, metadata, full text, abstracts, PDF download, reference lists, counts, folders, and saved searches. The main gaps are write-side operations — folders and saved searches are read-only (explicitly 'sola lettura') and there is no way to add notes or save a provvedimento to a folder, so agents will hit dead ends on those requests but can work around them by reporting results instead.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides MCP tools (bdm_search, bdm_get_provvedimento, bdm_check_session) to query the Italian public judicial database (Banca Dati di Merito) for civil court rulings using a session authenticated via CNS.
      2
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Connects AI assistants to Brazilian judicial data via DataJud CNJ, LexML, and local corpus, enabling process consultation, legal research, and document generation with Visual Law.
      26
      2
      MIT