Claude Code ha introdotto il supporto ai MCP Tasks, l’estensione del Model Context Protocol (MCP) che consente a un server MCP di rispondere a una chiamata lunga fornendo subito un task ID anziché attendere il risultato finale. In pratica, Claude continua a dialogare con l’utente mentre il server elabora il lavoro in background, e verifica lo stato del task interrogando periodicamente il server.

Che cosa sono i MCP Tasks e perché sono importanti

Un MCP task rappresenta un lavoro prolungato – ad esempio l’esportazione di un rapporto di dieci minuti, la compilazione di una build o l’esecuzione di una pipeline – che il server MCP esegue autonomamente. Quando Claude Code invia una chiamata tools/call, il server risponde immediatamente con un oggetto contenente:

    • taskId: identificatore unico del lavoro (max 128 caratteri ASCII stampabili, senza spazi)
    • status: inizialmente working
    • pollIntervalMs: intervallo consigliato per il polling (tra 250 ms e 30 000 ms)

Claude Code mostra nella barra inferiore un contatore del tipo “1 MCP task”. Quando il lavoro termina, il transcript registra una riga del tipo MCP task <id> (server/tool) completed. Il risultato viene inviato a Claude, non al transcript.

Differenze rispetto al background precedente

Fin dalla versione 2.1.212, Claude Code spostava in background le chiamate MCP che superavano i due minuti, ma il lavoro rimaneva legato alla sessione del client: chiudendo Claude Code il task veniva interrotto. Con i MCP Tasks il lavoro vive sul server, e Claude Code conserva solo l’identificatore per interrogare lo stato, garantendo continuità anche se la sessione viene chiusa.

Come funziona un MCP Task: passo per passo

Il meccanismo segue la specifica dell’estensione io.modelcontextprotocol/tasks e si articola in cinque fasi principali:

    • Claude Code dichiara la capacità io.modelcontextprotocol/tasks nelle proprie capabilities.
    • Il server decide, per ogni chiamata, se creare un task.
    • Il server risponde a tools/call con un oggetto task contenente taskId, status working e pollIntervalMs.
    • Claude Code invoca tasks/get subito dopo la risposta e poi ad ogni intervallo di polling, rispettando il valore di pollIntervalMs.
    • Il server può passare lo stato a input_required (richiesta di input), a completed (con risultato) o a failed/cancelled (stati terminali).

Se il server richiede una decisione, lo stato diventa input_required e Claude Code apre una finestra di elicitation per raccogliere l’input strutturato dell’utente. La risposta viene inviata con tasks/update. In sessioni non interattive, Claude Code non può chiedere input e richiede al server di cancellare il task.

Stati possibili di un task

    • working: il lavoro è in corso.
    • input_required: è necessaria un’interazione da parte dell’utente.
    • completed: il lavoro è terminato con successo; il campo result contiene il risultato.
    • failed: il lavoro è terminato con errore; il campo error fornisce i dettagli.
    • cancelled: il lavoro è stato annullato.

I tre ultimi stati sono terminali: una volta raggiunti, il task non cambia più. Il server può anche inviare aggiornamenti tramite notifications/tasks, ma il polling rimane il comportamento di base.

Implicazioni pratiche per gli utenti

Per provare la nuova funzionalità è sufficiente aggiornare Claude Code alla versione 2.1.304 (o successive) e collegare un server MCP che supporti i task. Attualmente la funzionalità è disponibile solo nella CLI da terminale; non è ancora attiva nell’estensione VS Code né nell’app desktop.

Il server deve essere aggiornato alla revisione del protocollo del 28‑07‑2026, la prima a includere ufficialmente i Tasks. Se il server utilizza una versione precedente, continuerà a rispondere in modo sincrono, senza generare task.

Cosa succede chiudendo Claude Code

SituazioneEffetto sul task
Chiudi Claude Code, server remotoIl task continua a essere eseguito sul server.
Chiudi Claude Code, server stdio (processo locale)Il processo locale si interrompe e il task termina.
Apri una nuova sessione con --resume o --continueClaude Code riprende il task in corso e riceve il risultato.
Avvia una sessione nuova con --fork-sessionLa nuova sessione non segue il task in corso.

In sintesi, la continuità è garantita solo quando il server è remoto; i server locali (stdio) muoiono con la sessione.

Chi può utilizzare i MCP Tasks oggi

Per sfruttare i task, sono necessari tutti i seguenti requisiti:

    • Claude Code eseguito da terminale, tramite Agent SDK o GitHub Actions (non disponibile in VS Code o app desktop).
    • Un server HTTP, stdio o connettore claude.ai aggiornato alla revisione 2026‑07‑28, senza le variabili MCPSDKGENERATION=v1 o MCPPROTOCOLNEGOTIATION=legacy.
    • Una sessione che ottenga i feature flag corretti; questo esclude provider terzi come Amazon Bedrock e installazioni con telemetria disattivata.
    • Chiamate provenienti dalla conversazione principale (non da sub‑agent o server IDE).
    • Versioni del protocollo MCP con data 2026‑07‑28 o successive.
    • Esecuzioni “one‑shot” con claude -p "<prompt>" non generano task.

Guida per gli sviluppatori di server MCP

Chi espone un servizio come server MCP (ad esempio l’MCP Adapter per WordPress) deve decidere quali operazioni restituire come task. La risposta a tools/call deve contenere un oggetto JSON con la seguente struttura:

{

"resultType": "task",

"taskId": "build-7f3a9c2e",

"status": "working",

"createdAt": "2026-10-22T14:03:07Z",

"lastUpdatedAt": "2026-10-22T14:03:07Z",

"ttlMs": null,

"pollIntervalMs": 5000

}

Il taskId è obbligatorio, massimo 128 caratteri ASCII stampabili, senza spazi. Claude Code impone che pollIntervalMs sia compreso tra 250 ms e 30 000 ms.

Flusso di lavoro tipico

    • Claude Code invia tools/call al server.
    • Il server risponde con un oggetto task (status working).
    • Claude Code effettua polling con tasks/get ad intervalli definiti.
    • Se necessario, il server imposta input_required e invia inputRequests.
    • L’utente fornisce l’input tramite la finestra di elicitation; Claude Code invia tasks/update.
    • Il server completa il lavoro, imposta completed e fornisce result oppure failed con error.

Conclusioni

L’introduzione dei MCP Tasks in Claude Code rappresenta un salto di qualità nella gestione di operazioni prolungate, separando la durata del lavoro dall’interazione con l’utente. Grazie al task ID persistente, è possibile chiudere e riaprire le sessioni senza perdere il progresso, a patto di utilizzare server remoti aggiornati. Gli sviluppatori di tool e integrazioni dovranno adeguare i propri server alla revisione del protocollo del 28‑07‑2026 per beneficiare di questa funzionalità, mentre gli utenti finali potranno già sperimentarla aggiornando Claude Code alla versione 2.1.304 e collegando un server compatibile.