Skip to main content
Glama

Cancel a Snapshot X proposal from the Safe

snapshot_x_cancel_proposal
Destructive

Cancels an on-chain Snapshot X proposal by submitting Space.cancel from the Safe: executes immediately at threshold 1, otherwise queues for other owners to sign.

Instructions

Cancels (vetoes) an on-chain Snapshot X proposal by proposing Space.cancel(proposalId) from the Safe — the streamlined replacement for wiring snapshot.box to the Safe over WalletConnect by hand. Only works when the Safe is the space controller. At threshold 1 the transaction executes immediately; above that it lands in the Safe queue with the exact to/data/value for the other owners to verify and sign, and the final signer's confirmation executes it.

Input Schema

NameRequiredDescriptionDefault
spaceYesThe Snapshot X space: a space contract address, a prefixed id like "eth:0x594E…", or a full snapshot.box proposal URL (in which case proposalId can be omitted).
reasonNoWhy the proposal is being cancelled. Recorded in the local log only.
proposalIdNoThe proposal number, e.g. 3. Not needed when the space is a proposal URL.
skipChecksNoBypass the pre-flight controller/state checks and simulation. Only for sx-evm forks that break the standard view methods.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag this as destructive, non-idempotent and open-world, but the description adds real context beyond them: execution behavior varies by Safe threshold (immediate at 1, queued with to/data/value above that) and the final signer's confirmation executes it. It doesn't cover failure modes or whether a cancel can be undone on-chain.

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?

Two sentences, front-loaded with the core action and mechanism. The WalletConnect aside and the threshold explanation are dense but each earns its place; the final sentence carries several clauses that could be split.

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?

No output schema exists, yet the description covers the outcome (immediate execution vs. queued Safe transaction) and the key precondition, which is everything an agent needs to know before invoking a destructive on-chain tool. Schema covers the parameters fully.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents space, proposalId, reason and skipChecks, including the URL-omits-proposalId rule. The description adds no parameter-level detail beyond what the schema provides, so the baseline of 3 applies.

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 and resource ('Cancels (vetoes) an on-chain Snapshot X proposal') plus the exact on-chain call it makes (Space.cancel(proposalId) from the Safe). This clearly separates it from siblings like snapshot_x_vote, snapshot_x_proposal, and safe_confirm_transaction.

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

Usage Guidelines4/5

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

Gives a hard precondition ('Only works when the Safe is the space controller') and positions itself against the manual WalletConnect alternative. It stops short of naming sibling tools (e.g. safe_pending_transactions for queue follow-up, snapshot_open_proposals to find the id), so it is clear but not fully routed.

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