Come funziona il Filesystem MCP server di riferimento: i suoi 13 tool, le cartelle consentite, Roots, i mount Docker in sola lettura e un builder che scrive per te il JSON di configurazione.
Il Filesystem MCP server è il programma Node.js di riferimento del progetto Model Context Protocol che permette a un assistente AI di leggere, scrivere, cercare e spostare file, ma solo dentro le cartelle che consenti. Elenchi quelle cartelle all'avvio, oppure è la tua app a fornirle tramite Roots. Tutto ciò che sta fuori viene rifiutato.
Il Filesystem MCP server in sintesi
Voce
Valore
Pacchetto npm
@modelcontextprotocol/server-filesystem
Immagine Docker
mcp/filesystem
Dove gira
Sul tuo computer, avviato dalla tua app MCP
Limite di accesso
Solo cartelle consentite, dagli argomenti o da Roots
Tool
13, di cui 9 solo in lettura
MCP (Model Context Protocol) è uno standard aperto che permette a un'app assistente di chiamare piccoli programmi di supporto chiamati server. Il filesystem server è quello che la maggior parte delle persone installa per primo, perché trasforma "guarda la mia cartella delle descrizioni prodotto" in qualcosa che l'assistente può davvero fare. Questa pagina spiega cosa può toccare, come funziona il limite sulle cartelle e come mantenerlo in sola lettura. Usa il builder qui sotto per generare una config da incollare nelle impostazioni MCP della tua app.
Scrivi le cartelle che vuoi far vedere all'assistente, una per riga, con percorsi completi.
Scegli npx (richiede Node.js) o Docker. Docker può montare le cartelle in sola lettura.
Scegli la struttura di config che la tua app si aspetta: la maggior parte delle app usa mcpServers, VS Code usa servers.
Copia il JSON nel file di configurazione MCP della tua app e riavvia l'app così avvia il server.
Condividi la cartella più piccola che basta allo scopo, ad esempio una sola cartella di contenuti, mai l'intera home directory.
Eseguilo tramite Docker con mount in sola lettura quando l'assistente deve solo leggere.
Chiedi all'assistente di eseguire prima list_allowed_directories, così vedi esattamente cosa gli è stato dato.
Usa l'opzione dry run di edit_file prima di lasciare che le modifiche arrivino sui file a cui tieni.
Tieni un backup o una cronologia delle versioni di tutto ciò su cui lasci scrivere l'assistente.
Domande frequenti
Il filesystem MCP server può leggere file fuori dalle cartelle che elenco?
No. Il README afferma che tutte le operazioni sul filesystem sono limitate alle cartelle consentite. Se il client invia Roots, queste sostituiscono completamente le cartelle della riga di comando, quindi l'elenco consentito è quello che la tua app ha fornito per ultimo.
Cosa succede se lo avvio senza nessuna cartella?
Se la tua app supporta Roots, il server aspetta che l'app le invii. Se l'app non supporta Roots e non hai indicato cartelle, il server registra il motivo nel log, chiude la connessione ed esce con stato 1.
Come lo rendo in sola lettura?
Il README documenta un modo: esegui l'immagine Docker e aggiungi ro a ogni bind mount, così quella cartella diventa readonly per il server. Alcune app permettono anche di approvare o bloccare i singoli tool, il che aiuta, ma il mount è il limite più solido.
Può eliminare file?
Il suo elenco di tool non ha un tool di eliminazione. Può comunque distruggere contenuti: write_file sovrascrive i file esistenti e move_file rimuove l'origine, quindi entrambi sono segnati come distruttivi nella tabella delle annotazioni del README.
Ha bisogno di accesso a internet?
Non per il suo lavoro. Ogni tool imposta openWorldHint su false, cioè tocca solo il filesystem locale dentro le cartelle consentite. npx però scarica il pacchetto la prima volta che viene eseguito.
Cartelle consentite e Roots, in parole semplici
Ci sono due modi per dire al server quali cartelle può usare. Il primo è mettere i percorsi delle cartelle dopo il nome del pacchetto nella config, il che fissa l'elenco fino al riavvio. Il secondo è Roots, una funzione con cui l'app assistente comunica al server quali cartelle sono in gioco e può cambiare quell'elenco mentre è in esecuzione.
Il README indica Roots come metodo consigliato. Il dettaglio che conta per la sicurezza: una volta attive le Roots della tua app, un aggiornamento senza root valide revoca ogni accesso invece di tornare alle cartelle che avevi scritto.
Lavori utili per chi gestisce un sito o un negozio
Puntalo su una cartella di dati prodotto esportati e chiedi un elenco degli articoli senza descrizione. Puntalo sulle bozze del tuo blog e chiedi un riepilogo dei post che citano un vecchio prezzo. Puntalo su una copia scaricata del tuo sito e cerca i nomi delle immagini non funzionanti.
In ogni caso la cartella è una copia, non il sito live, quindi una modifica sbagliata non costa nulla. Questa abitudine vale più di qualsiasi impostazione.
I 13 tool e cosa può cambiare ciascuno
Sola lettura significa che il README segna il tool con readOnlyHint true. Distruttivo significa che può sovrascrivere o rimuovere contenuti esistenti.
Tool del Filesystem MCP server
Tool
Cosa fa
Modifica i file?
Legge un file come testo UTF-8, facoltativamente solo le prime o le ultime N righe
No
Legge un'immagine, un audio o un altro file come base64 con il suo tipo MIME
No
Legge più file insieme; un errore non blocca gli altri
No
Elenca una cartella con i prefissi [FILE] e [DIR]
No
Lo stesso elenco con le dimensioni, ordinabile per nome o dimensione
No
Restituisce un albero JSON annidato di una cartella
No
Ricerca in stile glob con pattern di esclusione facoltativi
No
Dimensione, date, tipo e permessi
No
Mostra quali cartelle il server può usare
No
Crea una cartella e tutte le cartelle superiori mancanti
Sì, non distruttivo
Crea o sovrascrive un file
Sì, distruttivo
Sostituisce il testo trovato, con un'opzione di anteprima dryRun
Sì, distruttivo
Sposta o rinomina; fallisce se la destinazione esiste
Sì, distruttivo
Esempi di config
Esecuzione con npx, due cartelle
Le cartelle dopo il nome del pacchetto diventano le cartelle consentite. Richiede Node.js sul tuo computer.
Esecuzione con Docker, una cartella in sola lettura
Le cartelle vengono montate sotto /projects. Il flag ro impedisce al server di scrivere in quella cartella.
Config del workspace VS Code (.vscode/mcp.json)
VS Code usa una chiave servers. ${workspaceFolder} limita il server al progetto che hai aperto.
Builder di config per Filesystem MCP
Scrivi le tue cartelle e scegli come eseguire il server. Il JSON si aggiorna mentre scrivi e niente lascia il tuo browser.
Cartelle consentite, un percorso completo per riga
Esegui con
Struttura della config
Monta le cartelle in sola lettura (solo Docker)
Il mount in sola lettura è documentato per Docker. Con npx il server può scrivere dentro le cartelle che elenchi.
JSON di configurazione
npx (Node.js)
Docker
mcpServers (la maggior parte delle app)
servers (VS Code)
Aggiungi almeno una cartella. Il server ha bisogno di una cartella consentita per funzionare.
{v} non è un percorso completo. Inizia con / su Mac o Linux, o con una lettera di unità su Windows.