You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
execute_tools was used 0 times. It refuses every MCP tool (codemode.rs:212-218) and re-implements part of the approval gate instead of prepare_tool_call.
The sub-agent MCP adapter requires approval for every MCP tool and ignores readOnly/destructive hints (registry.rs:1548-1562). The parent path honours them.
(S–M) Plugins: the same namespace over plugin MCP servers and script tools.
On by default. [features] code_mode_mcp = false or a per-server code_mode = false opts out. Computer Use and authenticate stay direct. Secrets and MCP auth stay host-side. Gate: the eval harness (#6506) A/B on cost per completed task, success, tool errors, turns and cache hit rate.
Founder decisions
the mcp_call dispatcher;
default off until the eval passes;
auto-approve execute_tools once the gate lands;
hooks per nested call;
whether the sub-agent vs parent MCP approval difference is intentional.
Decisions (founder, 2026-09-24)
Add the stable mcp_call dispatcher: yes.
Code mode for MCP is ON by default. Founder override: "just do the MCP code mode, period — DS models are good enough." No eval gate. The shared approval gate still applies to every nested call.
Once the shared gate lands, execute_tools is auto-approved (every nested call is gated) and hooks run per nested call: yes.
Sub-agents follow the parent's MCP approval rules (honour readOnly/destructive hints through the one gate): yes. The separate always-approve logic in the sub-agent MCP adapter is removed.
Design research (2026-09-24). References: Cloudflare Code Mode, Anthropic "code execution with MCP" and "advanced tool use", Cursor's per-server schema folders (−46.9% tokens in MCP runs).
Evidence (founder's sessions, 81 sessions, 11,574 tool calls)
tool_searchcalls that return MCP tools activate them. Each activation re-pins the tool list, so the next request's cache hit falls to 54% vs 96% (Token efficiency: per-request usage telemetry, cost-based compaction trigger, stable tool list, smaller static prefix #6541).execute_toolswas used 0 times. It refuses every MCP tool (codemode.rs:212-218) and re-implements part of the approval gate instead ofprepare_tool_call.registry.rs:1548-1562). The parent path honours them.Phases
tool_searchdescribe mode that returns TS/JSDoc signatures (new JSON Schema → TS generator) without activating;mcp_calldispatcher, so direct calls never re-pin.mcp.<server>.<tool>()bindings inexecute_toolsthrough oneNestedCallGatebuilt onprepare_tool_call:inputSchema.An approval-gated nested call fails clearly with a ready-to-run direct call.
2b. (M) Pause the script for an approval in place (blocked by 0.10.2 R1: runtime raises child approvals (owner-labelled, off the event loop, no default timeout) #6469).
On by default.
[features] code_mode_mcp = falseor a per-servercode_mode = falseopts out. Computer Use andauthenticatestay direct. Secrets and MCP auth stay host-side. Gate: the eval harness (#6506) A/B on cost per completed task, success, tool errors, turns and cache hit rate.Founder decisions
mcp_calldispatcher;execute_toolsonce the gate lands;Decisions (founder, 2026-09-24)
mcp_calldispatcher: yes.execute_toolsis auto-approved (every nested call is gated) and hooks run per nested call: yes.