Da dove nasce MCP e quale problema risolve
Anthropic ha reso open Model Context Protocol il 25 novembre 2024 per sostituire integrazioni frammentate con un modo aperto di collegare assistenti AI a contenuti, strumenti aziendali e ambienti di sviluppo. [1]
MCP non sostituisce database o API REST. Un server MCP si colloca normalmente sopra un sistema esistente e ne espone le capacità a un host AI compatibile. [1][4]
Cosa standardizza MCP e cosa no
MCP standardizza discovery e invocazione dei tools, esposizione delle resources e template di prompts riutilizzabili. [4][5][6][7]
Logica di business, modello dati e politiche di autorizzazione restano responsabilità dell'implementazione. [5][8]
Architettura pratica: host, client e server
| Elemento | Ruolo |
|---|---|
| Host | Applicazione AI che coordina modello, utente e connessioni MCP. |
| Client MCP | Livello di comunicazione del protocollo per uno specifico server. |
| Server MCP | Espone capacità e le collega a dati o sistemi esterni. |
| Tools | Azioni invocabili dal modello. |
| Resources | Dati e contesto identificati da URI. |
| Prompts | Template di prompt riutilizzabili. |
L'architettura classica separa host, client e server. L'host è l'app AI, il client implementa il protocollo e il server espone dati e operazioni. La release attuale mantiene questa divisione ma non richiede più stato HTTP tra richieste. [15][2]
Un host può connettersi a più server MCP, ad esempio GitHub, ticketing e knowledge base interna. [12][15]
Tools, resources e prompts: i componenti principali
I `tools` sono azioni invocabili dal modello e hanno nome, descrizione e schema di input. [5]
Le `resources` espongono dati identificati da URI; i `prompts` forniscono template riutilizzabili. [6][7]
STDIO, Streamable HTTP e il vecchio trasporto SSE
| Trasporto | Uso tipico |
|---|---|
| STDIO | Processo locale, CLI, IDE, strumenti di sviluppo. |
| Streamable HTTP | Server remoto, SaaS, infrastruttura di produzione. |
| HTTP+SSE | Trasporto HTTP legacy, deprecato da 2026-07-28. |
STDIO è adatto a server locali avviati come processi. Streamable HTTP è il trasporto per server remoti. [4][2]
Da `2026-07-28` il core remoto è stateless. Legacy HTTP+SSE è ufficialmente deprecato con almeno dodici mesi di transizione. [2]
Come avviene una chiamata a un tool nel MCP attuale
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search",
"arguments": {"q": "invoice 2026"}
}
}
Da `2026-07-28` non sono obbligatori `initialize` e `Mcp-Session-Id`. Ogni richiesta può includere versione, informazioni client e capabilities; `server/discover` è opzionale. [2]
Con Streamable HTTP, `Mcp-Method` e `Mcp-Name` consentono routing e misurazione senza analizzare tutto il body JSON. [2]
Esempio pratico: agente collegato a un sistema ticket
Un server MCP può esporre `search_tickets`, `get_ticket` e `update_ticket` come tools, documentazione come resources e un prompt per l'analisi incidenti. L'host scopre il catalogo, il modello seleziona l'azione e il server chiama l'API interna. [5][6][7]
Lo stesso server può essere riutilizzato da più host compatibili. [4][12]
Autorizzazione: OAuth 2.1, Bearer token e Client ID Metadata Documents
Per HTTP, MCP usa concetti OAuth 2.1 e standard di discovery. I token viaggiano in `Authorization: Bearer` e non devono comparire nella query string. [8]
Audience validation e PKCE fanno parte delle protezioni. Dynamic Client Registration è deprecato a favore dei Client ID Metadata Documents. [2][8]
Sicurezza: MCP non significa fiducia totale
I server devono validare input, applicare controlli di accesso, limitare le chiamate e sanificare i risultati. I client dovrebbero richiedere conferma per operazioni sensibili, mostrare gli argomenti, usare timeout e loggare le chiamate. [5]
Il principio del minimo privilegio è fondamentale. Un server che legge documentazione non deve poter cancellare dati di produzione. [5][8][13]
MCP Apps: quando un tool ha bisogno di UI
MCP Apps è un'estensione ufficiale per form, dashboard e visualizzazioni interattive. Un tool riferisce una resource `ui://` che l'host può renderizzare in un iframe sandboxato. [9]
La comunicazione resta strutturata e auditabile; l'host può chiedere consenso per chiamate avviate dalla UI. [9]
Tasks: operazioni lunghe senza connessione persistente
MCP Tasks consente di restituire un handle durevole invece di bloccare la connessione. Il client interroga poi stato e risultato. [10]
CI, batch, deployment, code esterne e approvazioni umane sono casi naturali. [10][2]
Adozione: Anthropic, OpenAI, GitHub e strumenti di sviluppo
OpenAI supporta server MCP remoti in Responses API da maggio 2025 e ha aderito al comitato di guida MCP. [11]
GitHub Copilot supporta MCP in IDE, CLI, app Copilot e cloud agent, con registry e controlli enterprise. [12][13][14]
MCP rispetto a REST API e function calling
REST descrive un'interfaccia generale, function calling il modo in cui un modello richiede funzioni. MCP aggiunge un livello comune di discovery, schema e comunicazione tra host AI e server di strumenti. [4][5]
Con un solo modello e poche funzioni private, MCP può essere superfluo. Per capacità condivise tra più host, il vantaggio è molto maggiore. [4][11][12]
Checklist per un server MCP di produzione
Parti da pochi tools chiari, con descrizioni precise, schemi validati e privilegi minimi. [5][8]
Per server remoti usa Streamable HTTP attuale, autorizzazione, metriche, rate limiting e tracing e gestisci consapevolmente la compatibilità. [2][8]
- Sviluppare per `2026-07-28`.
- Ridurre tools e permessi al minimo.
- Validare argomenti e risultati.
- Richiedere conferma per operazioni sensibili.
- Per HTTP, implementare OAuth e audience validation correttamente.
- Usare rate limiting, timeout, audit e tracing.
- Non fornire segreti non necessari.
- Testare compatibilità host e gestione errori.
Cosa è cambiato nel 2026 e dove va MCP
`2026-07-28` ha introdotto core stateless, rimosso handshake e sessioni, aggiunto cache delle liste, routing via header, estensioni formali e autorizzazione più robusta. Roots, Sampling e Logging sono deprecati per nuove implementazioni. [2]
La roadmap di agosto 2026 punta su messaging tra agenti, webhook, eventi, unificazione HTTP, identità agenti, sicurezza enterprise e migliore esperienza SDK. Sono direzioni future, non tutte funzioni già disponibili. [3]

