Claude Code supporta gli MCP Tasks, l’estensione del protocollo che permette a un server MCP di rispondere a una chiamata lunga con un task (un identificativo del lavoro in corso) al posto del risultato finale. Claude continua a lavorare con te mentre il server esegue il job e ne controlla lo stato interrogando il server.

Che cosa sono gli MCP Tasks e perché sono importanti

Un MCP task è un lavoro lungo (esportazione di un report, build, pipeline) che il server MCP esegue per conto suo, mentre la chiamata di Claude Code torna indietro appena il server accetta l’incarico. Il server restituisce un identificativo, Claude lo riceve subito e riprende a lavorare, mostrando nel footer di Claude Code un contatore tipo “1 MCP task”. Quando il job termina, la trascrizione riporta una riga “MCP task (server/tool) completed.” e il risultato arriva a Claude, non nella trascrizione.

Il background non è una novità: dalla versione 2.1.212 Claude Code spostava già in secondo piano le chiamate MCP che superavano i due minuti, ma era un background del client, legato alla sessione. Con i task il lavoro vive sul server, mentre Claude Code mantiene solo l’identificativo per interrogare lo stato.

Stato e ciclo di vita di un task

    • working: il task è in esecuzione.
    • input_required: il server richiede un input all’utente.
    • completed: il task ha terminato con successo, il risultato è disponibile.
    • failed: il task è terminato con errore.
    • cancelled: il task è stato annullato.

Gli ultimi tre stati sono terminali; il task non cambia più una volta raggiunto uno di questi.

Come funziona un MCP Task passo per passo

Il meccanismo segue la specifica dell’estensione e si riassume in cinque passaggi:

    • Claude Code dichiara nelle sue capability l’estensione io.modelcontextprotocol/tasks.
    • Il server decide, richiesta per richiesta, se creare un task.
    • Il server risponde a tools/call con un oggetto task contenente taskId, stato working e l’intervallo di polling consigliato.
    • Claude Code chiama tasks/get subito dopo la risposta e poi a ogni intervallo, rispettando pollIntervalMs.
    • Se il server richiede una decisione, lo stato passa a input_required e la richiesta viaggia nella mappa inputRequests. Quando il lavoro è finito lo stato diventa completed e il campo result contiene il risultato sincrono, oppure failed con il campo error.

Il task ID è un handle durevole: un server remoto mantiene il lavoro in esecuzione anche se Claude Code viene chiuso.

Polling e notifiche

Claude Code utilizza il polling come comportamento di base, chiamando tasks/get ogni pollIntervalMs. Il server può inoltre spingere aggiornamenti con notifications/tasks, ma il polling resta il metodo principale.

Interazione con l’utente e gestione delle conferme

Quando un task richiede una conferma, lo stato passa a input_required. Claude Code apre una finestra di elicitation, una richiesta di input strutturato che l’utente può fornire. Se l’utente rifiuta o preme Esc, il server decide come procedere. Nelle sessioni non interattive, Claude Code non può chiedere nulla, quindi invia una richiesta di annullamento al server, evitando gli hook di elicitation.

Casi d’uso tipici

    • Deploy da confermare prima di procedere.
    • Inclusione o esclusione di dati sensibili in un report.
    • Scelta di parametri di build in una pipeline complessa.

Secondo i dati di Anthropic, l’80 % del tempo delle sessioni Claude è in attesa di una risposta umana, rendendo questi meccanismi fondamentali.

Cosa succede se chiudi la sessione

Il comportamento dipende dal tipo di server:

SituazioneCosa succede al task
Esci da Claude Code, server remotoIl task continua a girare sul server
Esci da Claude Code, server stdio (processo locale)Il processo locale si ferma e il job termina con esso
Claude Code aperto, risultato arriva nella conversazione correnteIl risultato viene mostrato immediatamente
Nuova sessione o --fork-sessionLa nuova sessione non segue il task

Quindi la promessa di chiudere tutto e riprendere più tardi è valida solo per server remoti; i processi stdio muoiono con la sessione.

Requisiti per utilizzare i MCP Tasks

Per poter sfruttare i task, è necessario soddisfare tutti i seguenti requisiti:

    • Claude Code aggiornato alla versione 2.1.304 o successiva (rilasciata 19 ottobre).
    • Un server MCP aggiornato alla revisione 2026‑07‑28, la prima a includere i Tasks come estensione ufficiale.
    • Server HTTP, stdio o connettore claude.ai senza le variabili MCPSDKGENERATION=v1 né MCPPROTOCOLNEGOTIATION=legacy.
    • Una sessione che recupera i feature flag, escludendo provider terzi come Amazon Bedrock.
    • Una chiamata avviata dalla conversazione principale (non da sub‑agent o server IDE).
    • Un run interattivo (claude --resume, --continue, -p) se si vuole che il client segua il task.

Claude Code funziona da terminale, Agent SDK o GitHub Actions, ma non è ancora attivato nell’estensione per VS Code né nell’app desktop.

Implementare i MCP Tasks in un server

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 i seguenti campi:

{

"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. pollIntervalMs è limitato da Claude Code tra 250 ms e 30 000 ms (2 000 ms di default se manca). Su HTTP e sui connettori claude.ai la risposta con il task deve arrivare entro il timer della singola richiesta, quindi il server accetta il job e risponde prima di mettersi al lavoro.

Annullamento di un task

Claude Code usa tasks/cancel per richiedere l’interruzione, ma l’annullamento è cooperativo: il server può scegliere di completare comunque il lavoro.

Prova immediata e conclusioni

Per provare i MCP Tasks, aggiorna Claude Code alla versione 2.1.304 o successiva e collega un server MCP compatibile. Il funzionamento è disponibile nella CLI da terminale; l’estensione VS Code e l’app desktop non supportano ancora questa funzionalità.

In sintesi, i MCP Tasks rappresentano un passo avanti significativo nella gestione di operazioni lunghe e complesse, spostando il carico di lavoro dal client al server e consentendo a Claude Code di rimanere reattivo. Con la corretta configurazione di server e client, gli sviluppatori possono ora eseguire build, esportazioni di report e pipeline di dati senza bloccare la conversazione, migliorando l’efficienza e l’esperienza utente.