Guida alla sopravvivenza per la Release Candidate di MCP
La release candidate di MCP è il più grande aggiornamento dal lancio del protocollo. È un test per chiunque stia sviluppando client, server e tool. La versione finale arriverà il 28 luglio 2026. Usa questo tempo per individuare eventuali problemi di migrazione.
Il cambiamento più importante è che MCP è ora stateless.
Se la tua implementazione utilizza session ID o passaggi di inizializzazione, devi modificare il codice. Ogni richiesta ora include i dati relativi alla versione e alle capacità nei metadati.
Questo cambiamento aiuta l'infrastruttura. I load balancer possono inviare richieste a qualsiasi istanza del server. Non è necessario mantenere una connessione aperta verso un server specifico.
Come gestire lo stato:
- Non nascondere lo stato nella connessione.
- Sposta lo stato in un handle dell'applicazione.
- Fai in modo che un tool restituisca un ID come un basket_id.
- Il modello può reinviare questo ID nella chiamata successiva.
Anche le richieste avviate dal server cambiano. Un server può avviare una richiesta solo mentre sta elaborando una chiamata del client. Se il server ha bisogno di ulteriori informazioni, restituisce un InputRequiredResult. Il client riproverà quindi la chiamata con i nuovi dati.
Le MCP Apps sono arrivate. I server possono ora fornire interfacce HTML. Gli host le renderizzano in iframe in sandbox. Ciò migliora l'esperienza utente ma richiede una sicurezza rigorosa.
L'autorizzazione è ora più restrittiva.
- Usa OAuth 2.0 e OpenID Connect.
- I client devono convalidare il parametro issuer.
- Gli authorization server devono ora inviare il parametro issuer.
Deprecazioni da monitorare:
- Roots, Sampling e Logging sono deprecati.
- Funzionano ancora per ora, ma non usarli per nuovi progetti.
- Sposta roots nei parametri del tool.
- Sposta sampling alle API dirette del provider del modello.
- Sposta logging su OpenTelemetry o stderr.
Aggiornamenti dello schema:
- Gli schemi dei tool ora utilizzano il JSON Schema 2020-12 completo.
- Puoi utilizzare logiche complesse come oneOf o anyOf.
- I server devono limitare la profondità dello schema per evitare errori.
- Aggiorna la gestione degli errori. L'errore di risorsa mancante ora utilizza il codice standard JSON-RPC -32602.
Se riscontri problemi, apri una issue nel repository della specifica o chiedi nel canale Discord dei contributor.
Community di apprendimento opzionale: https://t.me/GyaanSetuAi
