Cos'è MCP, il protocollo con cui l'intelligenza artificiale parla con i vostri strumenti
MCP è uno standard aperto per collegare le applicazioni di intelligenza artificiale a sistemi esterni, e la sigla sta per Model Context Protocol. Serve a far sì che un assistente possa leggere un file, interrogare un database o chiamare un'API senza che qualcuno scriva un'integrazione su misura per ogni coppia di strumenti.
La documentazione ufficiale lo paragona a una porta USB-C per le applicazioni AI: un modo standardizzato di attaccare cose diverse alla stessa presa. Il paragone funziona e nasconde la parte che conta, cioè che dentro quella presa non passano soltanto dati, passano permessi.
Cos'è MCP: host, client e server
Un server MCP è un programma che fornisce contesto ai client MCP, ed è la definizione che usa la documentazione dell'architettura del protocollo. Attorno a quel programma stanno altri due ruoli. L'host MCP è l'applicazione di intelligenza artificiale che coordina e gestisce uno o più client MCP, e Claude Code, Claude Desktop e Visual Studio Code sono host. Il client MCP è il componente che mantiene la connessione verso un singolo server e ne recupera il contesto per l'host.
Il rapporto numerico fra questi ruoli è il dettaglio che sfugge quasi sempre. L'host crea un client MCP per ogni server MCP, e ogni client mantiene una connessione dedicata al proprio server. Visual Studio Code che si collega al server di Sentry istanzia un oggetto client, e quando poi si collega al server filesystem ne istanzia un secondo.
Sotto il cofano il protocollo scambia messaggi JSON-RPC 2.0 e ammette due soli trasporti. Il trasporto stdio usa i flussi di standard input e output fra processi sulla stessa macchina, senza passare dalla rete. Il trasporto Streamable HTTP usa richieste POST con Server-Sent Events opzionali, ed è quello dei server remoti.
I tre pezzi che un server MCP può esporre
Un server MCP espone tre primitive, e la documentazione le chiama così, primitives. Sono queste, con gli esempi che fa la documentazione stessa.
| Primitiva | Che cosa è | Esempi ufficiali |
|---|---|---|
| Tools | Funzioni eseguibili che l'applicazione AI può invocare per compiere azioni | operazioni su file, chiamate API, query su database |
| Resources | Sorgenti di dati che forniscono informazioni di contesto | contenuti di file, record di database, risposte di API |
| Prompts | Modelli riutilizzabili per strutturare le interazioni con il modello | prompt di sistema, esempi few-shot |
La differenza fra le prime due primitive è chi le usa, e vale la pena fissarla prima di progettare qualcosa. Le Resources sono contesto che l'utente o il modello leggono, i Tools sono funzioni che il modello esegue. Chi scrive un server confonde spesso le due cose ed espone come tool quello che doveva restare una resource, e il conto lo paga in contesto consumato a ogni giro, che è lo stesso problema di cui ho scritto in ridurre i token di un agente di coding.
Cosa è cambiato nella revisione di luglio 2026
La revisione del protocollo datata 28 luglio 2026 ha cambiato due cose che riguardano chiunque abbia scritto un server prima di quest'estate. MCP adesso è un protocollo stateless: ogni richiesta porta con sé la versione del protocollo e le capacità nel campo _meta, e il server non deduce niente dalle richieste precedenti. La revisione precedente, datata 18 giugno 2025, dichiarava invece connessioni stateful con la negoziazione delle capacità fatta una volta sola.
| Revisione 18 giugno 2025 | Revisione 28 luglio 2026 | |
|---|---|---|
| Connessioni | stateful | stateless, richieste autosufficienti |
| Negoziazione delle capacità | fra server e client | per singola richiesta |
| Primitive del client | Sampling, Roots, Elicitation | Elicitation |
| Scoperta del server | non elencata fra i dettagli di base | richiesta server/discover, che ogni server deve implementare |
Sampling e Logging risultano deprecati a partire dalla versione di protocollo 2026-07-28, e la documentazione non si limita a dirlo: indica anche cosa metterci al posto. Le nuove implementazioni si integrano direttamente con le API del fornitore di modelli invece di chiedere al client una completion, e scrivono i log su stderr oppure usano OpenTelemetry.
Quando serve un server MCP e quando è solo un processo in più
Un server MCP conviene quando lo stesso strumento deve essere raggiungibile da più applicazioni di intelligenza artificiale diverse, e non conviene quasi mai quando ne serve una sola. È la parte che il paragone con la USB-C fa dimenticare: una porta standard ha senso se ci attaccate più dispositivi, altrimenti avete saldato un connettore per un cavo solo.
Il costo di un server MCP non è scriverlo, è tenerlo. Diventa un processo da mantenere vivo, aggiornare e autorizzare, e ogni funzione che espone occupa spazio nel contesto dell'agente prima ancora che qualcuno la chiami. Su questo la specifica dice una cosa che merita di essere letta due volte: le descrizioni del comportamento di un tool vanno considerate non affidabili, a meno che non arrivino da un server di cui vi fidate. Chi collega un server sta facendo entrare testo di qualcun altro dentro le decisioni del proprio agente, ed è lo stesso ragionamento che vale per chi controlla gli agenti AI in azienda e per i permessi che un agente riceve sull'infrastruttura.
Come integrare l'AI con gli strumenti che avete già
Per integrare l'AI con gli strumenti che avete già, MCP è una delle strade possibili e non sempre la più corta. Se il bersaglio è un solo gestionale e un solo assistente, una chiamata diretta alle API di quel gestionale fa lo stesso lavoro senza aggiungere un processo, ed è il percorso che ho descritto in integrare l'AI nel gestionale aziendale. MCP guadagna terreno quando gli assistenti diventano due, poi tre, e riscrivere l'integrazione ogni volta smette di avere senso. Se invece la domanda vera è quali operazioni conviene mettere in mano a un agente e quali no, quella è progettazione e la tratto nella pagina sugli agenti AI su misura.
Come ho deciso sul repository di questo sito
Sul repository di questo sito un server MCP non c'è, ed è stata una scelta. Le misurazioni SEO che uso per decidere di cosa scrivere stanno in data/seo/ come file JSON fermi al 1 agosto 2026, e vengono letti come file, non interrogati come servizio. Esporli dietro un server MCP avrebbe aggiunto un processo da tenere in piedi per restituire dati che non cambiano mai fra una lettura e l'altra, e la nota dentro quei file lo dice meglio di me: sono misurazioni, non una API, si leggono e non si lanciano.
La stessa logica vale per la cartella .claude/skills/articolo/, che è testo e non un processo, e per cui l'agente non ha bisogno di nessuna connessione: il criterio con cui ci ho messo dentro le regole di scrittura sta in trasformare un documento in una skill. La regola che ne ho tirato fuori è che un server MCP si giustifica quando dall'altra parte c'è qualcosa che cambia da solo o che sa fare un'operazione, non quando c'è un file fermo.
Il controllo da fare prima di collegare un server che non avete scritto
La cosa concreta da fare prima di collegare un server MCP che non avete scritto voi è una sola, e costa due minuti: apritelo con l'MCP Inspector, il cui repository è pubblico, chiedete l'elenco dei tool con tools/list e contateli. Poi leggete il campo description di ognuno, perché quel testo entrerà nelle decisioni del vostro agente. Se sono trenta funzioni e ne userete due, quel server vi sta chiedendo ventotto permessi che non vi servono.
La definizione di MCP è la parte facile e la trovate in una riga sulla documentazione ufficiale del protocollo. La parte difficile è che standardizzare il collegamento ha reso banale una cosa che banale non è, cioè dare a un programma scritto da estranei il diritto di agire a vostro nome. La porta USB-C è comoda proprio perché non chiede chi c'è dall'altra parte del cavo.
Domande frequenti
Un server MCP funziona anche con ChatGPT o solo con Claude?
Funziona con entrambi, perché MCP è un protocollo aperto e non il formato di un singolo fornitore. La documentazione ufficiale elenca fra i client che lo supportano gli assistenti Claude e ChatGPT e gli strumenti di sviluppo Visual Studio Code, Cursor e MCPJam. È il motivo per cui un server scritto una volta sola si collega a più applicazioni diverse senza riscriverlo.
Che differenza c'è fra un server MCP e una skill?
Un server MCP è un processo che espone operazioni verso l'esterno, una skill è testo che l'agente legge quando gli serve. Il primo cambia cosa l'agente può fare, la seconda cambia cosa l'agente sa. Sono strati diversi e si usano insieme: una skill può spiegare all'agente come e quando chiamare gli strumenti di un server.
Serve MCP per far leggere a un'AI i documenti aziendali?
Non è obbligatorio. Far leggere dei documenti a un modello riguarda come quei documenti vengono recuperati e infilati nella richiesta, e funziona anche senza nessun protocollo di mezzo. MCP serve quando quella stessa fonte deve essere raggiungibile da più applicazioni AI diverse, oppure quando l'assistente deve anche compiere azioni e non solo leggere.
Chi decide cosa può fare un server MCP una volta collegato?
Lo decide l'utente, e la specifica lo scrive come principio. Gli utenti devono acconsentire esplicitamente a ogni accesso ai dati e a ogni operazione, e gli host devono ottenere il consenso esplicito prima di invocare qualunque tool. La specifica aggiunge che MCP non può imporre questi principi a livello di protocollo: a costruire le schermate di autorizzazione è chi sviluppa l'applicazione.
Bisogna saper programmare per usare un server MCP già esistente?
Per usarne uno già scritto no, perché il collegamento si configura e non si programma. Serve però saper leggere cosa quel server espone prima di autorizzarlo, e quella lettura non è facoltativa. Scrivere un server nuovo è invece lavoro da sviluppatore, e il repository ufficiale mette a disposizione SDK in più linguaggi.