Anthropic released Claude Code 2.1.319 on November 6, 2026, according to the Claude Code changelog. Long jobs that an MCP server runs as tasks now move to the background right away in terminal sessions. A new setting, permissions.denyInsteadOfPrompting, denies a tool call that would wait on a permission prompt, so the turn continues.
What changed in Claude Code 2.1.319
The background entry in the changelog reads: "Added support for MCP tasks in the terminal: when an MCP server runs a tool call as a task, Claude Code moves it to the background right away and tells Claude the result when it finishes".
The permissions entry reads: "Added permissions.denyInsteadOfPrompting setting: a tool call that would wait on a permission prompt is denied and the turn continues, in terminal sessions, subagents and teammates".
A related entry reads: "Changed MCP tasks to work in the terminal without feature-flag fetching (Bedrock, Vertex, Foundry, LLM gateways, DISABLE_TELEMETRY); set CLAUDE_CODE_DISABLE_MCP_TASKS=1 to turn them off". An earlier release changed a different rule; see our post on Claude Code 2.1.317.
What is an MCP task?
The Claude Code MCP docs define it: "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." MCP is the Model Context Protocol. Our plain-English guide to MCP covers servers and tools.
The MCP Tasks overview says: "MCP Tasks let servers return a durable handle instead of blocking, so clients can poll for progress, provide input when needed, and retrieve the final result after reconnecting." A task has one of five statuses: working, input_required, completed, failed or cancelled. "The server decides per-request whether to create a task." Cancellation is cooperative: the server acknowledges the intent but is not obligated to stop the work. The full specification is in the ext-tasks repository. MCP's current protocol version is 2026-07-28, per the MCP versioning page.

How background MCP tasks work in Claude Code
Per the MCP docs, Claude's tool call returns once the server accepts the job, so Claude keeps working unless you make it wait. When the job ends, the transcript says so and Claude gets the result. The result goes to Claude, not into the transcript, so ask Claude for it. If Claude is idle when the result arrives, Claude starts on it unprompted.
The footer shows a count such as "1 MCP task". A task on a remote server keeps running after you exit. To follow it again, resume the same session. By default, a task in the background has no Claude Code time limit.
To stop a task, select it in /tasks and press x, or ask Claude to. Claude Code asks the server to cancel it, "though the server may still finish it." Pressing Esc doesn't stop a background task.
How to make Claude wait instead
The MCP docs list two environment variables for interactive sessions. Set CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS to 0 and Claude waits for every MCP tool call until the call ends. Set CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND, a variable that 2.1.319 adds, to 1 and Claude waits for a task's result. While automatic backgrounding is on, the call still moves after two minutes by default, as a plain background call that doesn't survive exiting the session.
Where MCP tasks work, and where they don't
A tool call becomes an MCP task only when several conditions hold. Among them: the server supports tasks, the server is an HTTP, stdio or claude.ai connector server connected on protocol revision 2026-07-28, and the call comes from the main conversation, not from a subagent.
The docs list terminal CLI sessions, Agent SDK sessions and GitHub Actions runs as covered. "Other surfaces, such as the VS Code extension and the desktop app, don't have MCP tasks". A one-shot claude -p "<prompt>" run doesn't get them. The docs add: "MCP tasks are in public beta in the Claude Code CLI and require Claude Code v2.1.304 or later."
As of November 9, 2026, the docs' list of conditions still includes a session that fetches feature flags, which rules out Amazon Bedrock and sessions with telemetry off. The 2.1.319 changelog entry quoted above says MCP tasks in the terminal no longer need feature-flag fetching, and that CLAUDE_CODE_DISABLE_MCP_TASKS=1 turns them off.
The new denyInsteadOfPrompting setting
Per the changelog line, a tool call that would wait on a permission prompt is denied and the turn continues, instead of the session waiting for an answer. It applies in terminal sessions, subagents and teammates. In agent teams, teammates are separate Claude Code instances coordinated by a team lead; the docs say agent teams are experimental and disabled by default.

The release also changes other permission rules. Two examples: A session's exact Bash or PowerShell ask rule is now refused, not asked about, when a broader deny rule covers the command. The Bash tool now asks for permission before running which with flags outside a lookup/display set. For a separate permissions issue, see our report on how Claude Code's "Yes, and don't ask again" approvals saved secrets to GitHub.
Other changes in this release
- A new
/claude-api latency-optimizecommand "to find where your Claude API code makes people wait and try faster settings against your eval". - An "Earlier in this session" row in
/tasksthat lists finished subagents, so you can reopen one and message it. - The rest of the 146 entries (18 additions, 22 changes, 16 improvements and 90 bug fixes in all), listed in the changelog and the GitHub release.
