Personalizzare MCP memory

Un tutorial pratico su come personalizzare la struttura del Server Memory, un approccio che vale in generale anche se non sempre ha senso applicarlo.

Memory è uno degli elementi più versatili e interessanti dell’ecosistema MCP (Model Context Protocol). A differenza delle memorie legate a una singola chat o a un progetto specifico, questa soluzione consente di costruire una memoria persistente e dinamica, richiamabile da qualsiasi chat, purché dentro Claude Desktop.
Per comprendere a fondo il funzionamento di Memory, bisogna partire dalla struttura di MCP (ne ho parlato in questo articolo). Nel file di configurazione claude_desktop_config.json è possibile definire quali sono i client attivati dentro all’host inserendo del codice particolare, ogni client fa riferimento a un server. In particolare, Memory è un server published (vedere l’articolo MCP – LA PRIMA LIBRERIA), cioè gestito in maniera automatica.

La configurazione standard demanda alla gestione automatica anche la selezione della cartella e del file in cui salvare i dati, tuttavia è possibile definire un’altra cartella ed il relativo file, personalizzando anche il nome del client.

“memory_stili”: {
“command”: “npx”,
“args”: [
“-y”,
“@modelcontextprotocol/server-memory”
],
“env”: {
“MEMORY_FILE_PATH”: “D:\\MCP_SERVER\\DATA\\MEMORY\\stili.json”
}
}

L’esempio riportato è un elemento nel file di configurazione, memory_stili è il nome del client, la sezione opzionale env permette di definire il parametro MEMORY_FILE_PATH, che definisce il file stili.json come repository della memoria di questo specifico client.
Ogni client ha un collegamento riservato con il relativo server, la conseguenza è che è possibile creare più Client, ciascuno con un nome diverso e con uno specifico path/file, anche se collegati con lo stesso Server. Questo implica che è anche possibile utilizzare un’unica cartella per le memorie, con file repository diversi, si tratta di scelte stilistiche quasi personali direi.

Tale flessibilità apre le porte a un’organizzazione anche complessa delle memorie. Ad esempio, io stesso ho strutturato il mio sistema creandone diverse, ognuna con una funzione ben precisa. Ho ovviamente la memoria standard a cui ne ho aggiunte altre, ad esempio una dedicata agli stili di scrittura in cui archivio linee guida stilistiche da riutilizzare nei vari progetti. E c’è anche una memoria temporanea, che utilizzo come tampone durante le sessioni di lavoro più lunghe o intense.

Una delle soluzioni più comode che ho adottato è la creazione di una memoria dedicata esclusivamente alle istruzioni operative. Non tutte le istruzioni, infatti, meritano di essere incluse nelle istruzioni iniziali, soprattutto se vengono usate di rado oppure se possono essere usate trasversalmente in più progetti o magari anche in diverse chat singole. Avere una memoria separata per questi casi permette di alleggerire la struttura delle informazioni, pur mantenendo accessibili le informazioni necessarie quando servono.

Un suggerimento operativo, quando in generale si lavora con architetture complesse con più Client, magari con funzioni simili, è opportuno specificare quale si chiede di usare, usando il nome definito nel file di configurazione. Questo vale ancora di più quando si usano strutture di memorie multiple.
Come esempio, facendo riferimento all’esempio precedente di memory_stili, per chiedere a Claude di usare lo stile STILE-A salvato in quella memoria basta scrivere nel prompt:
usa lo stile STILE-A che trovi in memory_stili
In questo modo Claude andrà a cercare STILE-A nel file stili.json.

Questo approccio può valere anche per altri Server MCP, anche se non per tutti ha senso.

Per concludere, la personalizzazione di Memory consente di strutturare un ambiente di lavoro altamente modulare e adatto a esigenze diverse. L’utilizzo di memorie specializzate non è solo una questione di ordine: si traduce in maggiore efficienza, in un uso più intelligente delle risorse cognitive e in una capacità potenziata di riutilizzare informazioni e processi.
Gestire le informazioni con logiche tematiche significa mantenere il controllo sul flusso dei dati, migliorare la coerenza dei risultati e ridurre significativamente il tempo perso nella ricerca di materiali già elaborati.

Potrebbe interessarti