privacy-informativa-mcp
by diegts
README.md
# privacy-informativa-mcp
[](https://github.com/diegts/privacy-informativa-mcp/actions/workflows/ci.yml)
[](LICENSE)
[](pyproject.toml)
Plugin MCP (Model Context Protocol) che aiuta una persona a esercitare i
propri diritti come interessato nei confronti di un titolare del
trattamento: capire cosa dice davvero un'informativa privacy, e
verificare se quello che un sito dichiara corrisponde a quello che fa
tecnicamente.
**Non è un tool per il titolare del trattamento**: è pensato dal punto
di vista di chi riceve un'informativa e vuole capirla, non di chi deve
scriverla.
## Cosa fa
Due skill (istruzioni per un modello, esposte come MCP *prompt*),
orchestrano quattro tool (funzioni Python eseguibili, esposte come MCP
*tool*):
| Skill | Cosa risponde |
|---|---|
| `analizza_informativa_interessato` | "Cosa dice questa informativa? Quali finalità, dati, basi giuridiche, destinatari, tempi di conservazione?" |
| `verifica_coerenza_informativa` | "Quello che il sito fa tecnicamente (tracker, terze parti) corrisponde a quanto dichiarato?" |
| Tool | Cosa fa |
|---|---|
| `estrai_testo_informativa` | Estrae testo da un'informativa in PDF o screenshot (estrazione nativa + OCR quando serve, gestisce documenti misti) |
| `trova_informativa_da_sito` | Trova il link all'informativa privacy in un sito, distinguendola dalla cookie policy |
| `estrai_testo_da_url` | Estrae il testo pulito da una pagina web (informativa raggiunta via link) |
| `rileva_terze_parti_sito` | Analisi statica dell'HTML: rileva tracker/terze parti tecnicamente presenti in una pagina |
Nessuno di questi tool richiede API a pagamento o chiavi esterne.
Le skill orchestrano i tool secondo l'input fornito dall'utente (testo,
file, link diretto, o sito) e si fermano sempre a chiedere conferma in
caso di ambiguità (più link candidati sullo stesso sito) invece di
scegliere in autonomia.
## Come usarlo
Non serve installare nulla: basta collegare Claude a un'istanza già
online del plugin.
1. Su [claude.ai](https://claude.ai): **Impostazioni** → **Connettori**
(in inglese "Customize" → "Connectors").
2. Clicca **"+"** → **Aggiungi connettore personalizzato**
("Add custom connector").
3. Incolla l'URL dell'istanza (es.
`https://privacy-informativa-mcp-<hash>.onrender.com/mcp`).
4. Nessuna autenticazione richiesta: si può lasciare vuoto "Advanced
settings".
5. Clicca **"Aggiungi"**. Per usarlo in una conversazione: pulsante
**"+"** in basso a sinistra nella chat → **"Connettori"** → attiva
il connettore per quella conversazione.
Vale per Claude.ai, Claude Desktop, Cowork e le app mobile.
Nota: gli utenti su piano gratuito di Claude possono aggiungere un solo
connettore personalizzato; Pro/Max/Team/Enterprise ne supportano più di
uno.
**Nota sui tempi di risposta**: se l'istanza gira su un piano gratuito
e non è stata usata di recente, la prima richiesta dopo una pausa può
richiedere 30-60 secondi prima di rispondere (il servizio si
"risveglia"). Le richieste successive sono immediate.
## Limiti importanti, dichiarati apertamente
- **`rileva_terze_parti_sito` è analisi statica**: legge l'HTML
scaricato via richiesta HTTP semplice, non esegue JavaScript. Non vede
tracker caricati dinamicamente dopo il caricamento (es. dopo il
consenso cookie via Tag Manager). I risultati sono un limite
inferiore delle terze parti realmente coinvolte, non un elenco
definitivo.
- **Non esiste un modo per cercare un'azienda a partire dal solo nome**:
bisogna fornire il sito o il link diretto all'informativa.
- **Nessuna delle due skill fornisce consulenza legale.** Aiutano a
leggere un documento e a raccogliere informazioni; qualunque azione
formale (reclamo, diffida) va valutata con un professionista se la
posta in gioco lo richiede.
- Questo progetto **non è affiliato** con il Garante per la protezione
dei dati personali né con alcuna autorità di controllo.
## Architettura: perché skill + tool separati
I tool sono codice Python deterministico: eseguono un'azione precisa
(scaricare una pagina, fare OCR, cercare un pattern) e non prendono
decisioni di giudizio. Le skill sono istruzioni in linguaggio naturale
che dicono a un modello *come* orchestrare i tool e *come* interpretare
i risultati (es. "se ci sono più link candidati, chiedi conferma
all'utente"; "un tracker rilevato ma non dichiarato è un problema, il
contrario no"). Questa separazione tiene il giudizio nella skill
(dove può adattarsi al contesto) e l'esecuzione nel tool (dove deve
essere prevedibile e testabile).
## Roadmap
- Servizio "esercizio diritti" (redazione istanze verso il titolare)
- Servizio "reclamo al Garante"
- `rileva_terze_parti_sito` con rendering browser reale (oltre
all'analisi statica attuale)
## Per chi vuole ospitare una propria istanza o contribuire
Vedi [DEPLOY.md](DEPLOY.md): requisiti, installazione, configurazione,
deploy su Render/Docker, sviluppo e test.
## Licenza
MIT — vedi [LICENSE](LICENSE).
## Disclaimer
Questo progetto è indipendente, non affiliato con alcuna autorità di
controllo, e non costituisce consulenza legale. Fornisce strumenti di
supporto alla comprensione e alla raccolta di informazioni; le
decisioni su come procedere restano dell'utente, eventualmente con il
supporto di un professionista.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing