Cos'è MCP? Il Model Context Protocol spiegato
In breve
- Il Model Context Protocol (MCP) è un protocollo aperto che collega le applicazioni AI a tool e dati esterni; Anthropic lo ha presentato il 25 novembre 2024 e a dicembre 2025 lo ha donato alla Agentic AI Foundation della Linux Foundation.
- Un host come Claude Code esegue un client MCP per ogni server, e i server offrono tool, risorse e prompt tramite stdio (in locale) o Streamable HTTP (da remoto).
- La specifica dice che gli host devono ottenere il consenso esplicito dell'utente prima di invocare un tool, quindi conferma le azioni di scrittura e dai a ogni server una chiave con i soli scope che gli servono.
- Nodion ospita un server MCP remoto su mcp.nodion.net/mcp con cui i coding agent possono fare il deploy delle app e gestirle; la configurazione è su Collega Nodion al tuo agente.
MCP, il Model Context Protocol, è un protocollo aperto che collega le applicazioni AI a tool e dati esterni in modo standard. Un servizio descrive una sola volta ciò che offre tramite un server MCP. I client compatibili, da Claude Code e Cursor fino a Codex e VS Code, possono usarlo se supportano il trasporto, l'autorizzazione e la versione del protocollo del server. Anthropic ha presentato MCP il 25 novembre 2024. A dicembre 2025 ha donato il protocollo all'Agentic AI Foundation, un fondo della Linux Foundation con governance dedicata.
Il problema che MCP risolve
Un modello linguistico conosce solo ciò che ha nel suo contesto. Per leggere un ticket, interrogare un database o avviare un deploy, un'applicazione AI ha bisogno di un'integrazione con quel sistema. Prima di MCP, ogni applicazione si costruiva la propria. Con le parole di Anthropic: “Every new data source requires its own custom implementation, making truly connected systems difficult to scale.”
MCP sostituisce queste integrazioni su misura con un unico protocollo. Un servizio implementa un server MCP, un'applicazione AI implementa i client MCP, e ciascuna parte funziona con controparti compatibili, a seconda di trasporto, autorizzazione, versione e funzionalità supportati. La specifica dice di ispirarsi al Language Server Protocol, che ha standardizzato il supporto ai linguaggi di programmazione nei vari strumenti di sviluppo. A dicembre 2025 Anthropic elencava ChatGPT, Cursor, Gemini, Microsoft Copilot e Visual Studio Code tra i prodotti che avevano adottato MCP.
Host, client e server
- Host: l'applicazione AI in cui lavori, come Claude Code, Claude Desktop o VS Code. Coordina uno o più client.
- Client: un componente all'interno dell'host che mantiene la connessione con un server. L'host crea un client per ogni server.
- Server: il programma che fornisce tool e contesto. Gira sulla tua macchina (server locale) o come servizio su internet (server remoto).
Client e server si scambiano messaggi JSON-RPC 2.0. Quando colleghi Claude Code a Nodion, Claude Code è l'host, esegue un client per quella connessione e riceve le risposte dal server MCP ospitato da Nodion.
Cosa offre un server: tool, risorse e prompt
- Tool: funzioni che il modello può chiamare per agire, come una chiamata API o una query al database. Ogni tool ha un nome, una descrizione e un JSON Schema per il suo input. I tool sono controllati dal modello: è il modello a decidere quando chiamarne uno, in base alla tua richiesta.
- Risorse: dati che danno contesto al modello, come il contenuto di file, record di database o risposte API.
- Prompt: template riutilizzabili per lavorare con il modello, come un system prompt o esempi few-shot.
Il client scopre i tool con tools/list e ne esegue uno con tools/call. Ecco una chiamata tratta dalla specifica, senza i metadati che ogni richiesta porta con sé:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_weather",
"arguments": { "location": "New York" }
}
} Un server può anche chiedere informazioni all'utente. Con l'elicitation, il server risponde a una richiesta indicando che gli servono altre informazioni; il client le chiede all'utente e invia di nuovo la richiesta con la risposta. Nella revisione attuale i server non avviano richieste di propria iniziativa.
Trasporti: stdio e Streamable HTTP
MCP definisce due trasporti standard, e sono ammessi anche trasporti personalizzati:
- stdio: l'host avvia il server come processo locale e comunica con lui tramite standard input e standard output. È adatto ai tool che lavorano sulla tua macchina, come un server per il file system. Un server locale di solito serve un solo client.
- Streamable HTTP: il client invia i messaggi con HTTP POST, e il server può trasmettere le risposte in streaming con i Server-Sent Events. Lo usano i server remoti. Supporta l'autenticazione HTTP standard, come bearer token, chiavi API e header personalizzati, e il protocollo raccomanda OAuth per ottenere i token.
La revisione attuale della specifica è datata 2026-07-28. In questa revisione il protocollo è stateless: ogni richiesta porta con sé la versione del protocollo e le capability di cui ha bisogno, quindi un server può gestire ogni richiesta in modo indipendente. La revisione descrive anche estensioni opzionali come Tasks e MCP Apps; i dettagli sono nella specifica.
Perché MCP conta per i coding agent
I coding agent leggono, scrivono e testano già il codice nel tuo repository. Buona parte del lavoro attorno a quel codice, però, avviene in altri sistemi: l'issue tracker, il database, il monitoraggio degli errori e la piattaforma di hosting. MCP permette all'agente di lavorare anche in quei sistemi.
- Un'integrazione per molti agenti: un servizio che offre un server MCP funziona con client compatibili come Claude Code, Cursor e Codex, senza un plugin separato per ciascuno, purché supportino il suo trasporto, la sua autorizzazione e le sue funzionalità.
- Richieste in linguaggio naturale: nomi, descrizioni e schemi di input dei tool dicono al modello cosa può fare, così “mostrami gli ultimi errori” diventa la chiamata al tool giusto.
- Niente da installare per i server remoti: a un server ospitato bastano il suo URL e una chiave o un login.
Sicurezza: cosa controllare prima di collegare un server
MCP dà a un modello accesso a sistemi reali, e la specifica lo dice chiaramente: i tool rappresentano l'esecuzione di codice arbitrario, e gli host devono ottenere il consenso esplicito dell'utente prima di invocare qualsiasi tool. In pratica:
- Conferma le azioni di scrittura. Mantieni il controllo umano: la specifica chiede alle applicazioni di mostrare quali tool sono esposti e di chiedere conferma, e sono le impostazioni dei permessi del tuo client a decidere se lo fa. Non affidarti a un flag lato server che l'agente stesso può impostare.
- Usa chiavi con i privilegi minimi. Dai a ogni server una credenziale con i soli scope che gli servono, e usa una chiave per agente, così puoi revocarla singolarmente. Le linee guida di sicurezza della specifica la chiamano scope minimization.
- Collega solo server affidabili. I client devono trattare descrizioni e annotazioni dei tool come non attendibili, a meno che non provengano da un server affidabile.
- Controlla i server locali. Un server locale gira con gli stessi privilegi del client che lo avvia. Leggi il comando esatto prima di aggiungerne uno.
- Tieni i segreti fuori dalla chat. I token vanno nella configurazione del client, non in un prompt.
Il server MCP ospitato da Nodion
Nodion ospita un server MCP remoto su https://mcp.nodion.net/mcp. Il tuo agente usa lo stesso account che usi nella dashboard, e non c'è nessun daemon locale da installare. Una volta collegato, chiedi in linguaggio naturale: crea un progetto, fai il deploy di un'app dal repository corrente, collega un database, imposta le variabili d'ambiente, leggi i log e verifica che una release sia online. Se ti viene chiesta conferma prima di ogni chiamata a un tool dipende dalle impostazioni dei permessi del tuo client. Con le chiavi personali Nodion richiede inoltre un flag di conferma esplicito sui tool di scrittura, ma quel flag lo imposta l'agente, quindi non sostituisce una revisione umana.
Claude Code si collega con un solo comando e una chiave personale da Account → Security:
claude mcp add nodion --transport http https://mcp.nodion.net/mcp \
--header "Authorization: Bearer nodion_your_key" Le chiavi personali hanno scope come read, write, deploy, env:read e logs:read, e puoi limitare una chiave a progetti specifici. Un agente che deve solo indagare sugli errori non ha bisogno di write né di deploy.
Cursor usa lo stesso tipo di chiave. Claude Desktop, ChatGPT e Codex si collegano invece con OAuth: accedi alla pagina di autorizzazione di Nodion e associ uno o più progetti. I segreti restano nella dashboard, e la connessione non raccoglie in chat password né valori delle variabili d'ambiente. Windsurf, Zed, VS Code Copilot e OpenCode usano lo stesso URL del server, https://mcp.nodion.net/mcp.
La configurazione per ogni client è su Collega Nodion al tuo agente, e il riferimento completo è nella documentazione MCP.
Domande frequenti
Cos'è MCP nell'AI?
MCP, il Model Context Protocol, è un protocollo aperto per collegare le applicazioni AI a tool e dati esterni. Un server descrive i suoi tool, le sue risorse e i suoi prompt, e gli host compatibili come Claude Code o Cursor possono usarli se supportano il suo trasporto, la sua autorizzazione e le funzionalità richieste.
Chi ha creato il Model Context Protocol?
Anthropic ha presentato MCP come standard aperto il 25 novembre 2024. A dicembre 2025 Anthropic lo ha donato alla Agentic AI Foundation, un directed fund della Linux Foundation.
Che differenza c'è tra un server MCP e un'API?
Un'API è l'interfaccia propria di un servizio. Un server MCP descrive le azioni in un formato standard, con un nome, una descrizione e uno schema di input per ogni tool, così i client MCP compatibili possono scoprirle e chiamarle senza codice di integrazione su misura.
MCP è sicuro?
Dipende dai server che colleghi e dall'accesso che concedi loro. La specifica richiede il consenso esplicito dell'utente prima che un tool venga eseguito; collega solo server affidabili, leggi ogni richiesta di conferma per le azioni di scrittura e usa chiavi con gli scope più ristretti possibile.