In produzione 1.10.1

RAG MCP Server

La memoria dei miei progetti, interrogabile da un agente.

Anno
2026
Area
AI, Backend, Sicurezza
Stack
.NET 10 · Qdrant · SQLite · MCP · Ollama

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.