Una pull request contro l'SDK Python di Model Context Protocol ufficiale è stata unita alle 14:54 UTC del 28 agosto, modificando due impostazioni predefinite che regolano per quanto tempo i server MCP mantengono le connessioni e quante ne accettano.
Le due impostazioni predefinite
Timeout di inattività della sessione passa da non impostato a 1.800 secondi, così una sessione senza attività per trenta minuti viene recuperata. Numero massimo di sessioni concorrenti passa da illimitato a 10.000; oltre tale soglia, un server risponde con HTTP 503 e codice di errore JSON-RPC -32603. Entrambe sono impostazioni predefinite difendibili — tabelle di sessioni senza limiti sono una superficie per denial-of-service, e un timeout di inattività senza limiti è una fuga di risorse.
Dove la cornice comune sbaglia
I metadati indicano che il cambiamento è sicuro da accogliere, ma il corpo dice il contrario. La pull request include una propria sezione "Breaking Changes", mentre la checklist di invio lascia la casella breaking-change non selezionata e ne spunta due che affermano l'opposto. È questo disallineamento a propagarsi: gli strumenti di release, i generatori di changelog e le decisioni sul versioning semantico leggono la checklist, non il testo. Un maintainer che scorre i metadati conclude che sia appropriato un incremento minore, e gli operatori downstream aggiornano senza leggere la sezione che dice loro che le sessioni di lunga durata ora scadranno.
Chi viene davvero colpito
Qualunque distribuzione che tenga aperte sessioni MCP attraverso lunghe pause con intervento umano — un agente in attesa di revisione, un assistente inattivo tra mattina e pomeriggio — inizierà a vedere le sessioni sparire al segno della mezz'ora. L'errore è silenzioso dal punto di vista del client fino alla chiamata successiva. Le distribuzioni con oltre diecimila sessioni concorrenti inizieranno a rifiutare le connessioni con un codice che la maggior parte dei client MCP non distingue da un guasto del server.
La situazione attuale
La modifica è unita al ramo principale e non ancora in una release, quindi oggi non è stata distribuita a chi aggiorna tramite un package manager. È proprio la finestra in cui la checklist può ancora essere corretta e il salto di versione scelto deliberatamente.
