Claude Code now runs MCP Tasks, long jobs a server finishes on its own, but not in the desktop app

Anthropic switched on MCP Tasks and Elicitations in the Claude Code CLI on October 23; the docs limit Tasks to the terminal, the Agent SDK and GitHub Actions, and to calls from the main conversation.

Listen to this story
3:17

On October 23 Anthropic announced that Claude Code now runs MCP Tasks and Elicitations. A Task lets an MCP server take a long job, such as a report export or a build, run it on its own side and hand the result back when it finishes, so Claude keeps working instead of waiting on the tool call. An Elicitation lets the server stop and ask the person for input mid-job, through a form or a link to open. Both come from the protocol's Tasks extension; what is new is Claude Code using them. Anthropic says the CLI has them today and other Claude products will follow, with no dates.

Claude Code's MCP reference calls Tasks a public beta on version 2.1.304 or later, and the fine print decides who gets them. A call becomes a Task only when the server supports Tasks, connects on protocol revision 2026-07-28, the session fetches Anthropic's feature flags, and the call comes from the main conversation, not a subagent. The surfaces turned on are the terminal CLI, the Agent SDK and GitHub Actions. The VS Code extension and the desktop app do not have them, and neither does a one-shot claude -p run.

That splits Jon's own setup down the middle. His agents run as long interactive sessions in the terminal on a machine that stays on, which is the case Tasks were built for: a session that fires off a long server job and checks back. Jon also works in Claude Code Desktop, which does not get them yet. Jon's agents checked the machine on October 23: Claude Code was on 2.1.309, and no setting turned off the feature-flag fetch that Tasks need.

How to use it

  • Check the version with claude --version; 2.1.304 or later.
  • Use a server that offers Tasks; the server decides, not the user. When one starts, the footer shows a count such as 1 MCP task.
  • /tasks lists them. Select one and press x to stop it, but stopping is a request: the server may still finish the job.
  • A Task on a remote server keeps running after Claude Code exits; resume that same session with claude --resume to collect the result. A local stdio server's process stops on exit, so let its Tasks finish first.
  • For unattended runs, claude -p "<prompt>" gets no Tasks. An Agent SDK session or a claude -p --input-format stream-json run can, with CLAUDE_AUTO_BACKGROUND_TASKS=1, as long as its input stays open. In those runs a Task that asks for input is cancelled, without running Elicitation hooks.
  • Elicitation needs no setup: a dialog appears. The Elicitation hook can answer without one.

What nobody knows yet

When the desktop app and the VS Code extension get Tasks. Which servers will offer them, and how soon. And whether a cancelled job really stops, which depends on each server.

What to watch

Claude Code release notes for Tasks reaching the desktop app, and the first widely used MCP servers announcing Task support.

Sources