Fix guides · check safety.write_unmarked

Mark tools that change state as destructive

Tools named create/send/delete/pay… should declare readOnlyHint: false and a destructiveHint.

1,786 of 15,360 reachable MCP servers (11.6%) have this issue today.

Why it matters

A send_email or transfer_funds tool without annotations can be auto-approved by a client that treats unannotated tools as reads. Declaring the side effect is what lets the client ask the user first.

What to do

{ "name": "send_email", "annotations": { "readOnlyHint": false, "destructiveHint": false, "openWorldHint": true } }

Check your server

Paste your endpoint at /check, or run it in CI:

pipx run glimind check https://your-server.example.com/mcp --min-grade B

Related