Claude Code MCP Tasks: ¿cómo se usan? Tareas largas en segundo plano y confirmación a mitad de camino con Elicitations, compatibles desde la 2.1.304 (probado con una API Key de terceros)

Claude Code v2.1.304 estrena en beta pública MCP Tasks: el servidor MCP se encarga de las tareas largas y las ejecuta por su cuenta, Claude no tiene que quedarse esperando y las tareas remotas siguen vivas aunque salgas. Este artículo repasa, según la documentación oficial, las condiciones para activarlo, cómo usar /tasks, las dos variables para esperar el resultado y la diferencia con el paso automático a segundo plano tras 2 minutos. Además, lo probamos en v2.1.309 con una API Key de terceros: paso automático a segundo plano, /tasks y confirmación a mitad de camino con Elicitation.

13 分钟阅读
Claude Code MCP Tasks: ¿cómo se usan? Tareas largas en segundo plano y confirmación a mitad de camino con Elicitations, compatibles desde la 2.1.304 (probado con una API Key de terceros)

Según lo publicado por @ClaudeDevs el 24 de octubre en supost principal, Claude Code empieza a admitir MCP Tasks: un servidor MCP puede convertir una llamada a una herramienta que tarda mucho en una «tarea», ejecutarla por su cuenta en el servidor, y Claude, con el ID de la tarea en la mano, sigue con otras cosas.Una respuestapresenta las Elicitations, es decir, un cuadro emergente que te pide datos cuando la tarea va a medias; otrarespuestaaclara que el CLI ya está disponible.

Primero la conclusión:

  • MCP Tasks está por ahora en beta pública. El texto oficial dice: MCP tasks are in public beta in the Claude Code CLI and require Claude Code v2.1.304 or later.
  • Para que una llamada se convierta en una MCP task tienen que cumplirse a la vez varias condiciones: que el servidor admita tasks, que esté conectado con el protocolo 2026-07-28, que la sesión pueda obtener feature flags y que la llamada venga de la conversación principal.
  • Lo probamos con la API Key de este sitio en Claude Code v2.1.309: el protocolo negocia 2026-07-28, las llamadas MCP que superan los 2 minutos pasan solas a segundo plano, puedes ver su progreso en /tasks y el cuadro de confirmación de Elicitation a mitad de camino funciona bien. Lo que no se activó fue la MCP task en el lado del servidor, por un tema de feature flags que explicamos más abajo.
  • Nuestro tutorial anterior no te pedía configurar DISABLE_TELEMETRY ni CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC; en las pruebas, el comportamiento anterior fue el mismo con ellas y sin ellas.

Crear API Key →

Qué problema resuelve

Antes, si una llamada a una herramienta MCP tardaba mucho, por ejemplo exportar un informe o lanzar una compilación, Claude solo podía quedarse bloqueado esperando. La documentación oficial define una MCP task así:

An MCP task is a long job, such as a report export or a build, that an MCP server runs itself using the MCP tasks extension. Claude's tool call returns once the server accepts the job, so Claude keeps working unless you make Claude wait.

Es decir: en cuanto el servidor acepta el trabajo, la llamada a la herramienta devuelve el control y Claude sigue trabajando. Cuando la tarea termina, aparece una línea de aviso en la conversación y Claude recibe el resultado. La barra de estado inferior muestra un contador del tipo 1 MCP task . Las tareas en servidores remotos siguen ejecutándose después de que salgas de Claude Code, y al retomar la misma sesión puedes seguir su evolución.

Las Elicitations resuelven otra cosa: la tarea necesita que decidas a mitad de camino, por ejemplo «¿despliego ya en staging?». El servidor puede mostrarte un formulario con la pregunta, en lugar de fallar o adivinar.

No es lo mismo que el paso automático a segundo plano tras 2 minutos

Es lo que más se confunde. Claude Code tiene un mecanismo anterior: una llamada MCP normal en la conversación principal que lleva más de dos minutos ejecutándose se mueve sola a segundo plano y deja de bloquear la sesión. El texto de la documentación:

An MCP tool call in the main conversation that is still running after two minutes moves to a background task instead of blocking the session.

Las diferencias:

Llamada normal que pasa a segundo planoMCP task (tarea en el servidor)
Quién la ejecutaSigue siendo esa misma llamada a la herramienta; Claude Code la espera en segundo planoEl propio servidor MCP la ejecuta; Claude Code consulta su estado a intervalos
Cuándo pasa a segundo planoAl cumplirse los 2 minutosDevuelve el control en cuanto el servidor acepta el trabajo
Al salir de Claude CodeSegún la documentación: it doesn't survive exiting the sessionLa tarea en el servidor remoto sigue ejecutándose y vuelves con claude --resume a recoger el resultado
Detalle en /tasksNo aparece runs on the serverMuestra runs on the server; survives exiting this session
Condiciones necesariasNingún requisito especialVersión, protocolo, feature flags, soporte del servidor, etc.; mira la sección siguiente

La documentación también da una forma de comprobarlo: si en /tasks el detalle de una llamada en segundo plano muestra runs on the server; survives exiting this session, entonces es una MCP task en el lado del servidor.

Versión y requisitos previos

La sección «What a call needs to become an MCP task» de la documentación oficial enumera todas las condiciones. Una llamada a una herramienta tiene que cumplirlas todas a la vez para convertirse en MCP task:

  • El servidor admite tasks.
  • El servidor es HTTP, stdio o un conector de claude.ai, y está conectado con el protocolo 2026-07-28. Según el texto original: Setting MCP_SDK_GENERATION=v1 or MCP_PROTOCOL_NEGOTIATION=legacy rules that out.
  • La sesión obtiene feature flags. Según el texto original: so not on a third-party provider such as Amazon Bedrock, and not with telemetry or flag fetching turned off.
  • Anthropic ha activado MCP tasks para sesiones como la tuya. Desde v2.1.304 cubre el CLI de terminal, el Agent SDK y GitHub Actions; según el texto original: Other surfaces, such as the VS Code extension and the desktop app, don't have MCP tasks.
  • La llamada viene de la conversación principal, no de un subagente.
  • La sesión es interactiva, o es del Agent SDK, o lee --input-format stream-json de claude -p, y además CLAUDE_AUTO_BACKGROUND_TASKS vale 1,CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND no vale 1 yCLAUDE_CODE_MCP_AUTO_BACKGROUND_MS no vale 0.

Ojo con la última condición: el modo normal de una sola ejecución claude -p "..." no recibe MCP tasks; el original dice A one-shot claude -p "" run doesn't get MCP tasks.

Primero comprueba la versión:

bash
claude --version
# 低于 2.1.304 就先升级
claude update

Pasos para activarlo y usarlo

1. Conecta un servidor MCP compatible con tasks

Se añade igual que cualquier servidor MCP, sin ningún interruptor extra:

bash
# 远程 HTTP 服务器
claude mcp add --transport http my-server https://mcp.example.com/mcp
# 本地 stdio 服务器
claude mcp add --transport stdio my-server -- python3 /path/to/server.py

El servidor debe implementar la extensión MCP tasks. La documentación indica que, en la conexión 2026-07-28, cada solicitud de Claude Code trae, dentro de params._meta["io.modelcontextprotocol/clientCapabilities"] , el campo extensions y, bajo él, "io.modelcontextprotocol/tasks": {}; en las tools/call que no pueden convertirse en tarea no se incluye esta extensión. El servidor solo puede responder con "resultType": "task" si la ve. Si responde con una task sin haberla visto, Claude recibe Unsupported result type 'task' for tools/call.

Si aún no has conectado ningún MCP, puedes empezar por el lado de Codex con eltutorial de configuración de MCPpara entender cómo añadir, quitar y consultar servidores, o echar un vistazo aClaude Code controlando Unreal Engine, un ejemplo completo de integración con MCP.

2. Usa /tasks para ver el progreso y pulsa x para detener

Cuando la tarea esté en marcha, escribe /tasks para abrir la lista. Cómo detenerla, según el original:

To stop a running task, select it in /tasks and press x, or ask Claude to.

Algunos detalles:

  • Pulsar Esc no detiene las tareas en segundo plano.
  • Tras detenerla, Claude Code le pide al servidor que la cancele, pero el servidor puede terminarla de todos modos.
  • Si el servidor se desconectó, primero tienes que reconectarlo en /mcp ; si no, la solicitud de cancelación no sale y Claude Code deja de seguir esa tarea.

Cuando termina la tarea, aparece una línea como esta en la conversación:

text
MCP task <server task id> (<server>/<tool>) completed.

El resultado se entrega a Claude y no se imprime directamente en la conversación; si quieres verlo, pregúntaselo a Claude. Si Claude está libre cuando llega el resultado, sigue trabajando con él por su cuenta.

3. Tras salir, recupera el resultado con claude --resume

Las tareas de servidores remotos siguen ejecutándose después de salir. Al volver, retoma la sesión donde estaba la tarea:

bash
claude --resume

El requisito es que el nombre del servidor y la configuración de conexión no cambien. Una sesión nueva o usar --fork-session tampoco seguirán la tarea original; en una ejecución de un solo uso con claude -p , --resume tampoco la sigue. Además, el proceso de un servidor stdio se detiene cuando sale Claude Code; aunque /tasks también muestre survives exiting this session, la documentación recomienda que, salvo que la documentación del servidor indique que el trabajo sobrevive al proceso, primero lo dejes terminar o lo detengas antes de salir.

4. Haz que Claude espere el resultado antes de continuar

Por defecto Claude no espera. Para que espere, en settings.json , dentro de env , elige una de estas dos opciones:

  • CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS con valor 0: Claude espera a que termine cada llamada MCP y además se desactiva el paso automático a segundo plano a los 2 minutos de las llamadas normales.
  • CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND con valor 1: Claude espera el resultado de la tarea, pero el paso automático a segundo plano de las llamadas normales sigue activo, así que las que superan los 2 minutos se mueven igualmente a segundo plano; lo que se mueve es una llamada normal en segundo plano, no una MCP task, y desaparece al salir.
json
{
  "env": {
    "CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS": "0"
  }
}

Configurar solo CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1 o usar el modo bare tampoco hace que Claude espere las MCP tasks.

5. Elicitation: la tarea necesita tu confirmación a mitad de ejecución

Mientras la tarea se ejecuta puede aparecer un cuadro de diálogo de elicitation. Dos cosas a tener en cuenta:

  • /tasks está abierto, el cuadro de diálogo queda oculto; primero tienes que cerrar /tasks para poder responder.
  • Elegir Decline o pulsar Esc también cuenta como respuesta; el servidor decide por su cuenta si la tarea continúa.

En una sesión no interactiva, la tarea se cancela en cuanto pide entrada. Original: In a non-interactive session, Claude Code asks the server to cancel a task that requests input, without running your Elicitation hooks or calling the Agent SDK's onElicitation callback.

Qué tener en cuenta con una API de terceros

Seguimos lo descrito en eltutorial de configuración de API de terceros para Claude Code, en el archivo global ~/.claude/settings.json dejamos configurada la Key de este sitio (ANTHROPIC_BASE_URL sin /v1):

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
    "ANTHROPIC_AUTH_TOKEN": "你的 API Key"
  }
}

Después conecté Claude Code v2.1.309 a un servidor MCP stdio mínimo que escribí yo mismo. Implementa la extensión tasks y ofrece dos herramientas: una compilación lenta y un despliegue que pide confirmación a mitad de ejecución. Estos son los resultados de las pruebas.

Prueba 1: protocolo y MCP task

  • La conexión funciona y el log de depuración registra negotiatedProtocolVersion":"2026-07-28", lo que indica que se usa el nuevo protocolo.
  • El log de depuración también registra mcp runtime arm: v2 (source: default). Según la documentación, las sesiones que no obtienen los feature flags usan por defecto el runtime v2; en esta línea, el source es default y no flags.
  • En el tools/call que recibe el servidor,clientCapabilities solo contiene roots y elicitation, sin io.modelcontextprotocol/tasks. Por eso el servidor no puede responder con una task y la llamada se ejecuta como una llamada MCP normal.

Conclusión: al usar la Key de este sitio, las MCP tasks del lado del servidor no se activaron en esta prueba, lo que coincide con el requisito de la documentación de que la sesión pueda obtener los feature flags. Tanto el anuncio oficial como la documentación siguen hablando de beta pública; si cambia el alcance de la apertura, actualizaremos este artículo.

Prueba 2: las llamadas largas normales pasan a segundo plano automáticamente, /tasks

Hice que la herramienta de compilación lenta se ejecutara durante 150 segundos:

  • Al llegar a unos 2 minutos, la llamada se movió a segundo plano, Claude respondió que la tarea había pasado a segundo plano y en la parte inferior apareció 1 MCP task.
  • Al abrir /tasks se ven el progreso y los mensajes de progreso que reporta el servidor, y en la parte inferior aparece el aviso Esc to go back · x to stop.
  • A los 150 segundos apareció el aviso de finalización y Claude informó enseguida del resultado.

claude-code-mcp-tasks-tasks

claude-code-mcp-tasks-done

Ojo: esto es el paso automático a segundo plano de una llamada normal. Aunque /tasks también la marca como MCP task, en el detalle no aparece el texto runs on the server, y desaparece al salir de la sesión. Si la tarea es larga, deja que termine antes de salir, o ajusta el umbral con CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS .

Prueba 3: confirmación a mitad de ejecución con Elicitation

Al llamar a la herramienta de despliegue, el servidor devolvió, bajo el protocolo 2026-07-28, un resultado que requiere entrada, y Claude Code mostró un formulario:

claude-code-mcp-tasks-elicitation

Tras marcar la confirmación y elegir Accept, el servidor recibió confirm: truey la herramienta devolvió el resultado. Desde la pregunta hasta el resultado pasaron unos 7 segundos. Es decir, la confirmación a mitad de una llamada MCP normal funciona con una Key de terceros.

Qué hacer con las variables de telemetría

Algunos lectores, para enviar menos peticiones, definen una de estas dos variables:

bash
export DISABLE_TELEMETRY=1
# 或
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

Repetimos la prueba definiendo cada una de ellas: el runtime fue el mismo, v2 (source: default), el servidor siguió sin recibir la extensión tasks y el diálogo de Elicitation funcionó igual. Así que, si usas una Key de terceros, definir o no estas dos variables no cambia el comportamiento de la parte MCP.

Recomendaciones:

  • Si usas una cuenta oficial y quieres MCP tasks del lado del servidor: según la documentación, no desactives la telemetría ni la obtención de flags.
  • Si usas una API Key de terceros: estas dos variables no afectan a las funciones que probamos en este artículo, así que decide según tus necesidades de privacidad y de red. Nuestro tutorial de Claude Code nunca ha pedido definirlas.
  • No definas MCP_SDK_GENERATION=v1 ni MCP_PROTOCOL_NEGOTIATION=legacypor "compatibilidad": eso descartaría directamente las MCP tasks.

Si lo que te pasa es lentitud o bloqueos y no un problema con las tareas, consultaClaude Code responde lento: cómo diagnosticarlo.

Estados y errores habituales

Los siguientes mensajes aparecen en las entradas de /tasks o en la línea de cierre de una tarea, y su significado sale de la tabla de estados de la documentación oficial. Mientras se muestran, la tarea puede seguir ejecutándose y Claude Code seguirá consultando su estado.

MensajeSignificadoQué hacer
reconnecting…El servidor no ha respondido tras reanudar, o la consulta de estado no obtuvo respuestaSi no desaparece, reconecta desde /mcp
needs a sign-in to …El servidor rechazó la consulta de estadoInicia sesión desde /mcp
status requests come back with errors; retrying…El servidor, o el proxy que tiene delante, devolvió un errorEspera a que Claude Code reintente
server '…' did not reconnect within 300sNo hubo ninguna consulta exitosa en 5 minutosReconecta desde /mcp
server '…' is not configured in this session; the task may still be running on itEn la sesión no hay ningún servidor con ese nombreRestaura el servidor con su nombre original y luego reanuda la sesión
server '…' was reconfigured to a different transport since this task was created Mensajes que empiezan porSe modificó la URL, el comando, los argumentos, las variables de entorno, las cabeceras o el timeout del servidorVuelve a la configuración original y luego reanuda la sesión
the server rejected this task's id; asking again…El servidor dice que no reconoce este ID de tarea; se vuelve a preguntar durante 5 minutos como máximoEspera
Con outcome unknown. al final de la líneaClaude Code dejó de hacer su seguimientoPrimero pregunta al servidor qué hizo y después decide si vuelves a llamar, para evitar ejecuciones duplicadas

Dos tipos de error en herramientas que suelen cometer los autores de servidores, según la documentación original:

  • El cliente no envió la extensión tasks pero recibió un task como respuesta:Unsupported result type 'task' for tools/call.
  • ID de tarea no válido (máximo 128 caracteres ASCII imprimibles, sin espacios): el error empieza por MCP server e incluye returned a malformed task handle for tool.

Preguntas frecuentes

¿Qué versión necesita Claude Code MCP Tasks?

v2.1.304 o superior; por ahora está en beta pública en la CLI. También cubre el Agent SDK y GitHub Actions; la extensión de VS Code y la app de escritorio todavía no.

¿Puedo usar MCP Tasks con una API Key de terceros?

Al probar con la Key de este sitio en v2.1.309, el MCP task del lado del servidor no estaba activado y el cliente no declaró la extensión tasks al servidor. Pasar a segundo plano automáticamente tras 2 minutos, ver y detener con /tasks y la confirmación a mitad de tarea con Elicitation funcionaron con normalidad.

¿Sigue funcionando si defino DISABLE_TELEMETRY?

Según la documentación, las sesiones con la telemetría desactivada o con la descarga de flags desactivada no tendrán MCP task. Con una Key de terceros, en nuestras pruebas el comportamiento fue el mismo con y sin ella, y Elicitation siguió disponible.

¿Se convierten en tareas dentro de un subagente o de claude -p?

Las llamadas iniciadas por un subagente no. El modo de un solo uso claude -p "" tampoco; con el Agent SDK o con un cliente que lee --input-format stream-json mediante claude -p solo es posible si se cumplen condiciones como CLAUDE_AUTO_BACKGROUND_TASKS=1 , y además la entrada debe mantenerse abierta.

¿Siguen las tareas después de salir de Claude Code?

Los MCP task en servidores remotos siguen activos; usa claude --resume para reanudar la misma sesión y obtener el resultado, sin cambiar el nombre del servidor ni la configuración de conexión. Las llamadas normales que pasaron a segundo plano automáticamente desaparecen al salir. El proceso de un servidor stdio se detiene al salir.

¿Cómo hago que Claude espere el resultado de una tarea antes de continuar?

Define CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS=0(espera todas las llamadas MCP) o CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND=1(espera los resultados de las tareas, aunque las que superan los 2 minutos siguen pasando a llamadas normales en segundo plano).

¿Qué hago si no aparece el cuadro de Elicitation?

Primero confirma que no tienes activo /tasks, ya que con esa opción el cuadro de diálogo permanece oculto. En sesiones no interactivas, una tarea que pide entrada se cancela directamente.

Crear API Key →

相关文章

¿Se nota a la legua que una página hecha con IA lo es? Instala Hallmark v2 en Claude Code / Codex, genera páginas con 48 temas y deja que se autocomprueben (prueba real con API Key de terceros)

¿Se nota a la legua que una página hecha con IA lo es? Instala Hallmark v2 en Claude Code / Codex, genera páginas con 48 temas y deja que se autocomprueben (prueba real con API Key de terceros)

¿Por qué las páginas generadas con IA se nota a la legua que son de IA? Hallmark v2 es una skill de diseño web para Claude Code y Codex: primero te propone 3 temas de entre 48 para que elijas, luego maquetea según la tarea de la landing y por último se autocomprueba en un navegador real con 8 anchos. En este artículo probamos con la API Key de este sitio la instalación, una landing para una app de registro de gastos, /hallmark audit y /hallmark redesign, con comparación de antes y después y el tiempo de cada paso.

¿Qué hay de nuevo en Codex CLI 0.164? Presets de prompts con /presets, cambio del esfuerzo de razonamiento en una línea con /model y proxy corporativo en Windows (probado con una Key de terceros)

¿Qué hay de nuevo en Codex CLI 0.164? Presets de prompts con /presets, cambio del esfuerzo de razonamiento en una línea con /model y proxy corporativo en Windows (probado con una Key de terceros)

Codex CLI 0.164.0 añade /presets con 10 ranuras numeradas, parámetros en línea para /model y /permissions, corrige la restauración de los ajustes de sesión con resume y admite la autenticación Negotiate/NTLM en proxies corporativos de Windows. En este artículo citamos el texto original del release oficial para explicar cada novedad y probamos, con una API Key de terceros y un provider personalizado, los aciertos de caché y resume después de cambiar el esfuerzo de razonamiento con /presets y /model.

Lanzamiento de Kimi K3.1 Pro: guía para configurarlo en Claude Code, diferencias con K3 y cómo elegir Highspeed

Lanzamiento de Kimi K3.1 Pro: guía para configurarlo en Claude Code, diferencias con K3 y cómo elegir Highspeed

Kimi lanzó K3.1 Pro y K3.1 Pro Highspeed el 24 de octubre a la 01:15 (hora de Pekín). Este artículo recoge los puntos clave del anuncio oficial, las diferencias entre K3.1 Pro y K3, la configuración de settings.json en Claude Code (el ID de modelo oficial de K3.1 Pro y el kimi-k3 que está disponible actualmente en este sitio) y una tarea de programación que ejecutamos en Claude Code con kimi-k3.