82. AnonyMCP: il mio primo esperimento di MCP
Filippo racconta AnonyMCP, esperimento MCP per pseudonimizzare documenti legali e usarli con gli LLM senza esporre subito i dati.
Note dell'episodio
Come sempre, se ti è piaciuto quel che hai letto, ascoltato o visto e non l'hai già fatto, ti suggerisco di iscriverti alla mia newsletter. Ti avvertirò dei nuovi articoli che pubblico (oltre ai podcast e video su YouTube) e, mensilmente, ti segnalerò articoli che ho raccolto nel corso del mese ed ho trovato interessanti.
Link
- AnonyMCP - Repository GitHub del progetto
- DEVONthink - Release e novità dell'app
- Model Context Protocol - Documentazione ufficiale
Sinossi e link
Ti ricordo che la sinossi è generata dalla IA in particolare usando la trascrizione del podcast con l'app Transcriber dell'amico Alex Raccuglia che trovi le sue tante applicazioni su Ulti.media e NotebookLM.
Premesse e limiti
Filippo parte da una premessa netta: per lavorare davvero bene con documenti legali e intelligenza artificiale, la soluzione ideale resta usare LLM locali, non affidarsi alla pseudonimizzazione prima di inviare dati a modelli online. Cita il progetto DS4 di Salvatore Sanfilippo e il problema pratico dell'hardware necessario, in particolare Mac con molta RAM.
Da qui nasce il contesto della puntata: AnonyMCP funziona, ma non viene presentato come prodotto maturo. Filippo lo racconta come esperimento, strumento di studio e occasione per chiarirsi le idee in pubblico.
Origine di AnonyMCP
L'idea nasce osservando una funzione di DEVONthink: usare un MCP per far dialogare documenti locali e modelli linguistici, con un livello di filtro sui dati. Filippo riprende quel concetto e lo porta dentro un caso molto specifico: le cartelle di una pratica legale.
Il punto non è dare al modello libero accesso ai documenti, ma usare un filtro locale che seleziona, pseudonimizza e passa solo le parti pertinenti.
Che cos'è un MCP
Filippo fa anche un breve recap sul Model Context Protocol: un modo standardizzato per collegare un LLM a strumenti, dati e comandi esterni. In questo caso l'MCP non interroga un grande database remoto, ma cartelle e documenti presenti sul Mac.
Il vantaggio è duplice:
- il modello riceve solo testo utile alla domanda;
- i dati identificativi vengono sostituiti prima di uscire dal computer.
Da Anonimator ad AnonyMCP
La base tecnica viene da Anonimator, l'app che Filippo aveva già usato per pseudonimizzare documenti. Con AnonyMCP, però, il flusso cambia: non si prepara manualmente un pacchetto di file da caricare, ma si crea un ponte locale tra pratica e LLM.
L'app lavora, almeno per ora, su file testuali come Markdown e TXT. PDF e DOCX sono nella roadmap, ma Filippo preferisce non complicare troppo il sistema prima di averne stabilizzato il cuore.
Critiche e sicurezza
Le critiche ricevute su LinkedIn diventano il punto più interessante della puntata. Filippo riconosce che il sistema resta delicato: anche se i documenti veri non escono dal Mac, il testo pseudonimizzato può comunque andare online.
La pseudonimizzazione riduce il rischio, ma non equivale ad anonimizzazione piena. I fatti contenuti nei documenti possono ancora rendere possibile una re-identificazione, soprattutto in vicende molto specifiche.
Funzionamento dell'app
AnonyMCP vede i documenti di una cartella, cerca le entità sensibili e chiede all'utente di verificarle. Solo dopo l'approvazione il documento diventa disponibile al modello.
Il sistema può anche fare il percorso inverso: se l'LLM genera una bozza con dati pseudonimizzati, l'MCP può salvarla nella cartella della pratica reidratando localmente i dati reali. È un passaggio potente, ma anche quello che richiede più cautela.
Sviluppo con LLM
Filippo racconta infine come ha sviluppato l'app con modelli come Claude, Codex e ChatGPT Pro. Il valore dell'esperimento non sta solo nel codice prodotto, ma nel metodo: pianificare, testare, verificare, capire quando l'IA prende una strada sbagliata.
L'app non trasforma Filippo in programmatore, ma gli fa toccare con mano la parte più interessante dello sviluppo: progettare soluzioni e ragionare sui problemi.