Your tool approval says staging. The JSON also says production.
A first-wins preview and a last-wins executor can disagree about the same tool arguments. Both decoded objects can still pass the same schema.
Topic archive
6 essays tagged ToolPermissions. Practical notes on what happens after the demo: prompts, tools, review packets, evals, rollback, and production ownership.
A first-wins preview and a last-wins executor can disagree about the same tool arguments. Both decoded objects can still pass the same schema.
An MCP approval can bind to a tool name while DNS, redirects, proxies, and service discovery send the request elsewhere. Pin the transport identity at dispatch time.
An MCP method labelled read only can still start paid queries, create exports, send webhooks, and change audit state. Control the effects, not the method name.
A broader MCP grant may unblock one Claude Code task while authorizing unrelated production actions. Test what became possible and what must remain forbidden.
A refusal test can pass because the tool is broken. Pair denied calls with permitted controls and adapter faults before trusting an MCP permission gate.
Claude Code can revert a patch, but Git cannot restore every MCP or production effect. Add an irreversibility gate before destructive tool calls run.