Claude Code approved one state. Its MCP write changed another
A reviewer approved a Claude Code change against resource version 41. By execution time, version 42 existed, but the MCP write replaced it anyway.
Topic archive
54 essays tagged Agentsecurity. Practical notes on what happens after the demo: prompts, tools, review packets, evals, rollback, and production ownership.
A reviewer approved a Claude Code change against resource version 41. By execution time, version 42 existed, but the MCP write replaced it anyway.
A permitted CI retry reached production through an artifact event and a more powerful release service. Tool permissions missed the effect that mattered.
A Claude Code transcript can describe an MCP action without proving who was authorized, what committed, whether an independent read saw it, or what rollback left behind.
A stable operation ID can stop duplicate MCP writes while still allowing an action after its approval expires. Recheck authority where the effect occurs.
A new Claude Code run selected the right tenant, but its pooled MCP session kept the previous tenant context. Bind every session to the authority it carries.
A reviewer approved a staging MCP request, but the adapter filled an omitted environment with production. Authorize the normalized payload that will actually execute.
Revoking Claude Code access is useless if an MCP gateway keeps serving an old allow decision. Bind cached authorization to policy version, resource state, and a short expiry.
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.
An MCP tool returned 100 clean records, so Claude Code declared a migration complete. The other 8,642 records were still waiting behind a cursor.