In produzione 1.10.1
RAG MCP Server
La memoria dei miei progetti, interrogabile da un agente.
Il problema
Un agente che riparte da zero a ogni sessione dimentica le decisioni prese. Serviva una memoria di progetto persistente, ma con confini: un progetto non deve leggere le note di un altro.
Vincoli
- Isolamento tra progetti: ACL per collezione, non un unico indice globale.
- Chiavi delegabili: dare a un agente solo ciò che gli serve, e poterle revocare.
- Esposizione solo su rete fidata o dietro autenticazione, mai un endpoint aperto.
- Costo di embedding controllabile: provider locale, non a consumo.
Architettura
- ASP.NET Core con ModelContextProtocol, Qdrant per i vettori, SQLite per identità e permessi.
- Modello a capacità più ACL: una chiave può fare solo ciò che le è stato concesso.
- Ricerca densa e ibrida, con indici full-text per il match per parola chiave.
- Segreti cifrati a riposo; bootstrap dell'amministratore per evitare il lockout.
Decisioni che contano
La chiave non è un segreto da nascondere, è un permesso
Il rischio non è chi legge la chiave, ma cosa quella chiave può fare. Il modello è quindi capability più ACL, con revoca immediata.
La memoria si scrive come documenti, non come chat
Ogni voce è una scheda con slug, tipo e data di revisione: decisione, architettura, runbook, gotcha. Un archivio di conversazioni non si ritrova; un indice di schede sì.
Dove è arrivato
Cinquantacinque collezioni attive, usate quotidianamente dagli agenti, con rodaggi di pentest documentati.