Skip to main content
Glama

revoke_proof

Destructive

Revoke a proof by its public handle (ph_ctl_* / ph_dlg_*) or a verification ID — the same addresses get_proof_status takes. The proof token will no longer validate anywhere: the status endpoint, the public validator, the revocation list and the Token Status List all report it revoked. A domain CONTROL proof (a ph_ctl_* of a domain) also revokes, for good, every delegation issued from it; for a domain you own, every proof of the domain is revoked and the domain needs re-verification. The API key needs proofs:write, plus delegations:write while the revocation reaches live delegations — for a domain you own, any live delegation of the domain, whichever of its handles you name (the refusal names the scope and the count). A handle revoked before the domain was verified again does not reach the new proof: revoke that one by its own handle. Otherwise it revokes the PROOF only — the asset or consent it is about stays. Need a temporary stop? Use suspend_proof instead. Cannot be undone.

ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesPublic proof handle (ph_ctl_* / ph_dlg_*) or verification ID
reasonNoReason for revocation

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say destructiveHint=true / readOnlyHint=false; the description goes far beyond that with cascade semantics (a ph_ctl_* of a domain permanently revokes every delegation issued from it; owning the domain revokes every proof and forces re-verification), permission escalation behavior, what the refusal message reports (scope and count), what is NOT destroyed (the underlying asset/consent stays), and irreversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but every clause carries operative information — no filler. The purpose and the identifier format are front-loaded, though the long unbroken run of cascade/permission/edge-case prose would be easier to scan as separate lines rather than mid-paragraph dashes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, cascading mutation with no output schema, the description supplies exactly the missing pieces: blast radius, auth/permission requirements, refusal behavior, scope limits (asset/consent preserved), irreversibility, and the alternative tool. Nothing an agent needs to call it safely is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description earns an increment by tying the 'id' parameter to an existing mental model ('the same addresses get_proof_status takes') and spelling out both handle families. The 'reason' parameter is left entirely to the schema, so it is not a full 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Revoke a proof') and immediately scopes the identifier domain ('by its public handle (ph_ctl_* / ph_dlg_*) or a verification ID'). It also names the sibling whose parameter space it shares (get_proof_status) and the alternative for a different intent (suspend_proof), so an agent can distinguish it from revoke_delegation, revoke_asset, and list_revoked_proofs without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: temporary stop → suspend_proof; permanent removal → this tool. It also states the preconditions (Proof account, client authentication, proofs:write plus delegations:write) and the edge case of a handle revoked before re-verification, telling the agent to revoke 'that one by its own handle'. Both when-to-use and when-to-use-something-else are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.