Write Guard
Write Guard makes every mutating call stop and ask you first. It is opt-in, and if you point R1-MCP at a production tenant you should turn it on.
Enable it under Features in the dashboard.
How it works
Section titled “How it works”- Claude attempts a mutating call without a confirmation token.
- The call is not sent. Instead the tool returns a
confirm_requiredenvelope containing a preview — what would run, and against which tenant — plus a single-purpose token. - Claude shows you the preview and waits for an explicit OK in the conversation.
- On your OK, Claude re-sends the identical call with the token, and it executes.
The preview names the target connection — its label and tenant ID — so a confirmation tells you which tenant you’re about to change. With multiple connections configured, that matters.
The token can’t be reused elsewhere
Section titled “The token can’t be reused elsewhere”The confirmation token is an HMAC over your user id and a canonical fingerprint of the exact call — method, path, parameters, body, and the resolved connection id. Object keys are sorted recursively so a re-send that reorders fields still matches.
The consequences:
- Changing anything about the call after the preview invalidates the token — the fingerprint no longer matches, and you get a fresh preview instead of a silent execution of something you didn’t approve.
- A token minted for tenant A cannot be replayed against tenant B, because the connection id is part of the fingerprint.
- Tokens expire.
So “approve once, then quietly do something else” is not a failure mode available to the model.
What counts as a write
Section titled “What counts as a write”The guard errs toward over-asking. Some operations that are technically non-destructive — exports, comparisons, validations — still ask for confirmation. That’s a deliberate trade: a spurious confirmation costs you a sentence, and a missed one costs you a production change.
Reading a preview
Section titled “Reading a preview”Before you say yes, check three things:
- The tenant — is this the connection you meant?
- The operation — the method and path, not just Claude’s summary of it.
- The body — especially on anything that replaces rather than patches.
When you don’t need it
Section titled “When you don’t need it”A read-only R1 API client can’t write regardless, so Write Guard adds only friction there. The stronger control is always the credential’s own permissions in RUCKUS One — Write Guard is a second layer, not a substitute for issuing the right API client.
Related
Section titled “Related”- Security model — credentials, tokens, and what Claude can see
- Multiple connections — why the preview names a tenant