{"version":"2.1.301","anchor":"per-turn-disallowed-mcp-tools","canonical_anchor":"per-turn-disallowed-mcp-tools","heading":"Tools can now be blocked for a single turn","tier":"use","area":"SDK","scope":"individual","heads_up":true,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/per-turn-disallowed-mcp-tools","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301","markdown":"### Tools can now be blocked for a single turn\n\nA per-turn disallowedTools list now blocks named MCP tools for one turn, feeds deny rules, and suppresses misleading tool-revoked notices\n\n**Unclear.** It is not shown which interface lets a caller send this list.\n\n**What**\n\nA turn is one request to Claude and its reply. A request for a turn can now carry a list of tools that are not allowed for that turn only:\n\n- `disallowed_tools` on a turn request: only names in the form `mcp__server__tool` are accepted (tools that come from MCP servers, which are add-ons that give Claude extra tools), at most 64 of them. They are added to the deny rules for that turn.\n\n- Queued work: a per-turn `disallowedTools` list is gathered from the queued items. When `replaceDenyRules` is set, the list is also added to the deny rules for commands.\n\n- Headless input: in headless mode (Claude Code driven by another program, without its usual screen), incoming user messages now set `disallowedTools` on the queued command. It is empty for messages delivered by a peer session and worked out from the message otherwise.\n\n- Revoked-tool notices: tools on the turn's list are no longer reported as revoked, so you are not told a tool was taken away when it was blocked on purpose.\n\n- Turn start: at the start of each turn that queries the model, unless `skipSkillPermissionReset` is set, the list of tools a skill was allowed to use is trimmed. Only tools that are in the turn's `disallowedTools` list and known to the tool descriptions are kept.\n\nSeparately, results from the auto mode classifier (the check that decides whether an action can go ahead without asking you) can now carry an optional `category`, and one classifier call is marked `judgesServedCall: true`.\n\n**Why**\n\nPrograms that drive Claude Code can now block particular MCP tools for one turn without changing the session's settings. Skill permissions are reset each turn, so what a skill was allowed earlier may not carry over.\n\n- Area: SDK\n- Names: `disallowed_tools`\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: yes"}