v0.1.0
Prima release: CLI e server MCP funzionanti
CLI (norm) e server MCP (norm-mcp) per leggere, verificare e citare
norme italiane da Normattiva.it, pensati per essere usati anche da modelli
LLM economici (es. DeepSeek 4 flash). Testato end-to-end, sia da terminale
sia collegato a Claude Desktop.
Comandi da terminale
norm leggi <fonte> <articolo>— testo verificato di un articolonorm link <fonte> <articolo>— citazione Markdown, verificata per difettonorm urn <urn>— legge un URN già in manonorm fonti [testo]— elenca o cerca nella tabella delle fonti verificatenorm doctor— controlla se l'endpoint del testo rispondenorm verifica --tutte— verifica l'intera tabella contro l'API
Strumenti MCP
normattiva_leggi_articolonormattiva_linknormattiva_trova_fonte(l'unico locale, nessuna rete)normattiva_leggi_urn
Un quinto strumento (normattiva_cerca, ricerca full-text) è previsto per
un prossimo rilascio.
Cosa c'è sotto
- Grammatica URN-NIR misurata contro l'API reale, con rifiuti tipizzati per
ogni forma che l'API rifiuterebbe (comma, lettera, estensione con
trattino,!vig=vuoto). - Tabella di 47 fonti verificate (i codici storici, dove il numero di
allegato non è raggiungibile dalla ricerca full-text), ognuna con
provenienza dichiarata e un articolo di controllo. - Parser HTML con tre guardiani contro altrettante trappole misurate:
l'heading discordante, il preambolo di promulgazione al posto
dell'articolo, l'HTML vuoto. - Client HTTP con i tre 404 distinti (atto inesistente, coordinate
sbagliate, endpoint del gateway), un circuit breaker, e la ricaduta
automatica su vigenza storica quando un articolo risulta abrogato — mai
silenziosa, sempre dichiarata nel testo restituito. - Le descrizioni degli strumenti MCP sotto un tetto di caratteri misurato
(4.124/5.500), per non sovraccaricare un modello debole di prosa che non
cambia nessuna sua decisione.
Un'avaria vera, documentata mentre succedeva
Il 29 agosto 2026, durante lo sviluppo di questa release, normattiva.it ha
avuto un'avaria reale e prolungata (prima solo l'endpoint del testo, poi
l'intero dominio, portale incluso, irraggiungibile a livello TCP da due
reti diverse). Il client si è comportato come progettato — nessun
tentativo infinito, messaggio chiaro — e le istruzioni consegnate al
modello dicono ora esplicitamente come distinguere un'avaria vera da un
problema di rete locale (norm doctor, un'altra rete). Dettagli in
docs/MISURE.md §7.
Licenza
Codice sotto licenza MIT. I dati restituiti dagli strumenti provengono da
Normattiva.it (Istituto Poligrafico e Zecca dello Stato) sotto licenza
CC BY 4.0 — le due licenze sono distinte e dichiarate entrambe nel README.