>_toolkitbox

~/ / Articoli sull'IA / Specifica MCP 2026-07-28: cosa cambia e cosa controllare nei tuoi file

Specifica MCP 2026-07-28: cosa cambia e cosa controllare nei tuoi file

La revisione 2026-07-28 della specifica del Model Context Protocol (MCP) elimina le sessioni a livello di protocollo, depreca il vecchio trasporto HTTP+SSE e diverse funzionalità, e allenta le regole per gli schemi degli strumenti. Questo articolo riassume il changelog ufficiale e mostra come controllare due file che scrivi tu: la configurazione MCP e gli schemi degli strumenti.

Pubblicato: · Verificato rispetto alla specifica ufficiale il 2026-10-24. Questo articolo la riassume e non la sostituisce.

Le modifiche principali

  • Le sessioni a livello di protocollo e l'header Mcp-Session-Id vengono rimossi dal trasporto Streamable HTTP. Un server che ha bisogno di stato tra una chiamata e l'altra usa handle espliciti, che crea lui stesso e passa come normali argomenti dello strumento.
  • MCP diventa stateless: l'handshake initialize viene rimosso. Ogni richiesta porta con sé la versione del protocollo e le capacità del client in _meta, e una versione non corrispondente restituisce UnsupportedProtocolVersionError.
  • I server devono implementare una nuova chiamata server/discover, che annuncia le versioni del protocollo supportate, le capacità e l'identità del server.
  • L'endpoint HTTP GET e resources/subscribe sono sostituiti da subscriptions/listen, un unico flusso di risposta di lunga durata per le notifiche di modifica a cui il client si iscrive.
  • Le richieste avviate dal server, come roots/list, sampling/createMessage e elicitation/create, sono sostituite da un modello Multi Round-Trip Requests: il server restituisce un risultato che richiede un input e il client ripete la richiesta originale con le sue risposte.
  • Le attività sperimentali (tasks) escono dal protocollo di base e passano a un'estensione ufficiale.
  • I flussi SSE riprendibili (Last-Event-ID) vengono rimossi. Un flusso di risposta interrotto fa perdere la richiesta in corso, e il client deve inviarla di nuovo come nuova richiesta.

Cosa è ora deprecato

FunzionalitàDeprecata dalla versioneRimozione più precoceMigrazione suggerita
Roots2026-07-28Prima revisione pubblicata il 2027-07-28 o dopoPassare directory o file tramite parametri dello strumento, URI di risorse o configurazione del server
Sampling2026-07-28Prima revisione pubblicata il 2027-07-28 o dopoIntegrarsi direttamente con le API dei provider di LLM
Logging2026-07-28Prima revisione pubblicata il 2027-07-28 o dopoScrivere i log su stderr per stdio, oppure usare OpenTelemetry
Dynamic Client Registration2026-07-28Prima revisione pubblicata il 2027-07-28 o dopoClient ID Metadata Documents
Trasporto HTTP+SSE2025-03-26Tre mesi dopo che SEP-2596 raggiunge lo stato FinalStreamable HTTP
Valori thisServer e allServers di includeContext2025-11-25Segue SamplingOmettere il campo oppure usare none

Una funzionalità deprecata resta parte della specifica. La rimozione più precoce indica quando diventa idonea alla rimozione, mentre la rimozione effettiva è una decisione presa durante la preparazione della release. La nuova politica sul ciclo di vita delle funzionalità fissa una finestra minima di deprecazione di dodici mesi.

Controlla la tua configurazione MCP

Se la tua configurazione usa ancora il trasporto HTTP+SSE, rientra nell'elenco dei deprecati. Anche la documentazione di Claude Code definisce deprecato il suo tipo sse e indica di usare i server HTTP dove disponibili. La specifica descrive il sostituto, Streamable HTTP: il server espone un unico endpoint che accetta POST e il client invia ogni messaggio JSON-RPC come una propria richiesta HTTP POST.

  • Ogni POST deve includere un header Accept che elenchi sia application/json sia text/event-stream.
  • Ogni POST deve includere un header MCP-Protocol-Version il cui valore corrisponda alla versione del protocollo nel corpo della richiesta.
  • Le richieste portano un header Mcp-Method, e un header Mcp-Name per tools/call, resources/read e prompts/get.
  • Il server risponde a ogni richiesta con un singolo oggetto JSON oppure con un flusso SSE limitato a quella richiesta.

Quale revisione del protocollo supporti il tuo client è una domanda per la documentazione del client. Il checker qui sotto legge un file .mcp.json o claude_desktop_config.json e segnala voci come un server remoto senza type, oppure che usa ancora sse.

Provalo: MCP Config Checker

Regole verificate rispetto alla documentazione il 2026-10-23.

Documentazione: Claude Code / Model Context Protocol / VS Code

Non verificato: se un comando esiste, se un pacchetto si installa, se un server remoto risponde e le impostazioni che altre applicazioni interpretano in modo diverso.

Tutto viene eseguito nel tuo browser. La configurazione non viene caricata.

Gli schemi degli strumenti possono usare l'intero JSON Schema 2020-12

  • inputSchema e outputSchema ora ammettono qualsiasi parola chiave di JSON Schema 2020-12, e structuredContent può essere qualsiasi valore JSON. La specifica aggiunge requisiti per la risoluzione di $ref e limiti sulle risorse che le parole chiave di composizione possono usare.
  • Un server può contrassegnare un parametro di uno strumento con x-mcp-header, in modo che il suo valore venga copiato in un header HTTP Mcp-Param-{name}. Il parametro contrassegnato deve essere una stringa, un intero o un booleano, non un numero.
  • La proprietà contrassegnata deve essere raggiungibile dalla radice dello schema solo attraverso chiavi properties. La catena non deve passare per items, oneOf, anyOf, allOf, not, if/then/else o $ref.
  • Un client che usa Streamable HTTP deve rifiutare la definizione di uno strumento la cui annotazione x-mcp-header viola queste regole, il che significa che lo strumento viene escluso dal risultato di tools/list.

Per provare lo schema di uno strumento, incollalo con un esempio di argomenti nel validatore qui sotto. Controlla le parole chiave più comuni di Draft 2020-12 e ti dice quali non controlla.

Provalo: JSON Schema Validator

Segue JSON Schema Draft 2020-12 per le parole chiave che supporta. Legge $ref solo all'interno dello stesso schema.

Tutto viene eseguito nel tuo browser. Lo schema e i dati non vengono caricati.

Punti di sicurezza per i server

  • Un server deve validare l'header Origin su tutte le connessioni in ingresso per prevenire gli attacchi di DNS rebinding. Se l'header è presente e non valido, deve rispondere con HTTP 403 Forbidden.
  • Un server eseguito in locale dovrebbe collegarsi solo a localhost (127.0.0.1), non a tutte le interfacce di rete (0.0.0.0).
  • I server dovrebbero implementare un'autenticazione adeguata per tutte le connessioni.
  • Un server che elabora il corpo della richiesta deve rifiutare una richiesta i cui header non corrispondono al corpo, con HTTP 400 e l'errore JSON-RPC HeaderMismatch (codice -32020).
  • I server di autorizzazione dovrebbero includere il parametro iss nelle risposte di autorizzazione (RFC 9207) e, quando iss è presente, i client devono validarlo prima di riscattare il codice di autorizzazione.
  • I client devono indicizzare le credenziali client salvate in base all'issuer che le ha concesse e non devono riutilizzarle con un server di autorizzazione diverso.

Fonti