MCP 2026-07-28: il protocollo diventa stateless (e finalmente scalabile)

Mezzo miliardo di download al mese. Sì, avete letto bene: il Model Context Protocol ha raggiunto quella cifra folle in pochi mesi, con TypeScript e Python che hanno superato il miliardo di download totali. Non male per un protocollo nato meno di due anni fa.

Oggi arriva la versione 2026-07-28 della spec MCP, e non è un aggiornamento qualsiasi. È la trasformazione che tutti chiedevano: MCP abbandona il modello stateful bidirezionale e diventa un protocollo stateless request/response. Che tradotto significa: addio sessioni, addio handshake, benvenuta scalabilità.

Basta con le sessioni persistenti

La novità più grossa? Hanno pensionato lo scambio initialize/initialized e l’header Mcp-Session-Id. Ogni richiesta ora viaggia per conto suo, portandosi dietro versione del protocollo, identità del client e capabilities nel campo _meta.

Se un client vuole conoscere le capacità del server prima di fare qualsiasi cosa, c’è una nuova chiamata RPC server/discover. Ma — e questo è il punto — non è obbligatoria. Qualsiasi richiesta può atterrare su qualsiasi istanza del server dietro un banale load balancer round-robin, senza bisogno di storage condiviso.

POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search

Chiaro che eliminare le sessioni a livello di protocollo non vi obbliga a costruire applicazioni completamente stateless. Se il vostro server ha bisogno di mantenere stato tra le chiamate, create un handle esplicito da un tool e fatelo passare al modello come argomento. Hanno scoperto che funziona meglio dello stato nascosto nel trasporto: il modello vede l’handle e può passarselo tra i vari tool.

Multi Round-Trip Requests: quando un tool ha bisogno di chiedere

A volte un tool ha bisogno di qualcosa dall’utente a metà chiamata. Una conferma, un parametro mancante, una verifica. Il vecchio approccio richiedeva stream bidirezionali sempre aperti con elicitation/create, sampling/createMessage e roots/list.

MRTR (Multi Round-Trip Requests) risolve questo scenario su un protocollo stateless: il server risponde con resultType: 'input_required' insieme alle richieste che necessitano di risposta, e il client riprova la chiamata originale con le risposte allegate in inputResponses. Semplice, pulito, senza bisogno di tenere connessioni aperte.

Routing basato sugli header

Le richieste HTTP streamable ora devono includere Mcp-Method e Mcp-Name. Il vostro gateway, rate limiter o WAF può fare routing e metering direttamente sugli header invece di dover parsare i body JSON. Un dettaglio che fa la differenza quando si scala.

Liste cacheable e autorizzazioni più serie

Le risposte da tools/list, prompts/list, resources/list e resources/read ora portano con sé ttlMs e cacheScope. I client possono determinare la migliore strategia di caching e ridurre il fetching inutile. Cataloghi di tool che restano stabili, prompt cache che non si invalidano a ogni reconnect.

Sul fronte autorizzazione — dove gli implementatori passano la maggior parte del tempo di integrazione — hanno fatto un bel giro di vite. Gli authorization server devono restituire il parametro iss secondo RFC 9207, e i client devono validarlo prima di riscattare un codice. Chiude un buco di mix-up tra authorization server che nessuno voleva.

I client ora settano application_type durante la Dynamic Client Registration (DCR), così gli authorization server smettono di rifiutare i redirect localhost per app desktop e CLI. Se vi è mai capitato un errore redirect_uri nel flusso OAuth di un client CLI, probabilmente era questo il motivo.

E mentre ci sono: DCR è ufficialmente deprecata in favore dei Client ID Metadata Documents (CIMD). Continua a funzionare per retrocompatibilità, ma verrà rimossa in una futura versione della spec.

Tasks diventa un’estensione ufficiale

Tasks esce dal core sperimentale e si trasforma nell’estensione io.modelcontextprotocol/tasks, con un tasks/get basato su polling e un nuovo tasks/update. Le notifiche di cambiamento si spostano dal vecchio endpoint HTTP GET a un singolo stream subscriptions/listen a cui i client si iscrivono per tipo di notifica.

Cosa viene deprecato

Roots, Sampling e Logging sono deprecati. Funzionano ancora e continueranno a funzionare per almeno dodici mesi — una finestra di migrazione seria, non il panico dell’ultimo minuto. Le nuove implementazioni non dovrebbero adottarli. Anche il vecchio trasporto HTTP+SSE è ufficialmente deprecato, con un anno di offramp.

SDK aggiornati e supporto dell’ecosistema

Tutti e quattro gli SDK Tier 1 parlano 2026-07-28 da oggi: TypeScript, Python, Go e C#. L’SDK Rust supporta la nuova spec in beta.

Ci sarà qualche costo di migrazione, soprattutto per chi dipendeva dagli identificatori di sessione. Ma hanno incorporato feedback dai test anticipati per rendere il processo più facile.

Le citazioni dai partner dell’ecosistema la dicono lunga. David Soria Parra, co-inventore di MCP: ‘Il salto più importante da quando remote MCP è stato lanciato oltre un anno fa’. Alex Salazar di Replit: ‘Il segnale più chiaro che MCP sta diventando infrastruttura production-grade vera’. Swami Sivasubramanian di AWS: ‘Disponibile in Amazon Bedrock AgentCore da subito’.

Cloudflare supporta la spec dal giorno zero nel loro Agents SDK. Figma vede crescere l’utilizzo del loro MCP server e può scalare senza problemi. Honeycomb riporta che quasi il 20% di tutte le query interattive mensili sono ora fatte da agenti. Manufact ha tagliato la dimensione del package dell’83% e ottenuto un 25% di velocità in più.

Cosa significa in pratica

MCP ha un anno e mezzo. Sta diventando adulto incorporando lezioni da decenni di design di protocolli web. Il fatto che abbiano scelto di fare breaking changes invece di nascondere i problemi sotto il tappeto dice molto sulla serietà del progetto.

Per chi costruisce su MCP, questa è la versione che stavate aspettando: scalabile, cacheable, routable come il resto del web. Con un framework di estensioni formale, autorizzazione enterprise-grade e una politica di deprecazione con dodici mesi di preavviso minimo.

La documentazione completa, il changelog e le guide per iniziare sono disponibili. Mezzo miliardo di download al mese e una spec che finalmente scala. La parte più interessante, come sempre, sarà vedere cosa ci costruirete sopra.

AI LABELS_3x2_3_black