Skip to main content
Glama
ProofHoldings

@proof-holdings/mcp-server

Official

revoke_proof

Destructive

Permanently revoke a proof by public handle or verification ID so it no longer validates anywhere; domain-control proofs also revoke linked delegations. Use suspend for a temporary stop.

Instructions

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. Set PROOF_API_KEY and restart this server, 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 observedv1.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Goes far beyond the destructiveHint/readOnlyHint annotations: it discloses irreversibility, the full blast radius (status endpoint, public validator, revocation list, Token Status List), cascading delegation revocation, the required scopes (proofs:write plus delegations:write), and the refusal behavior. This is rich behavioral context an agent needs before invoking a destructive tool.

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?

Front-loaded with the core action and accepted ids, then layers scope/permission/consequence details. It is dense and slightly long with some repetition around the 'domain you own' case, but nearly every sentence carries load-bearing caveat information, so it is appropriately sized for a destructive cascading operation.

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, cascade-prone tool with no output schema and only coarse annotations, the description covers prerequisites (API key, account requirement), irreversibility, cascade rules, and the exact alternative tool. An agent has everything needed to call it correctly or choose suspend_proof.

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, but the description adds genuine meaning: it explains what the two id forms are (control vs delegation handles), where they come from ('the same addresses get_proof_status takes'), and how the handle type changes the output effect. This exceeds the schema's plain type description.

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 qualifies the accepted identifiers (ph_ctl_* / ph_dlg_* or verification ID). It is clearly distinguishable from sibling mutations like revoke_delegation, revoke_api_key, revoke_asset, and revoke_authorization, and from the near-sibling suspend_proof named later.

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 names the alternative for a different intent ('Need a temporary stop? Use suspend_proof instead') and distinguishes the two. It also spells out when the operation cascades (domain CONTROL proof, domain ownership), when a pre-re-verification handle does not reach, and the hard exclusion 'Cannot be undone.'

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

Deploy Server

Other Tools