Skip to main content
Glama

Cast a Snapshot vote from the Safe

snapshot_vote

Cast a gasless off-chain Snapshot vote on behalf of a Safe by signing an EIP-712 message and submitting it once the Safe's EIP-1271 signature is validated.

Instructions

Casts an off-chain, gasless Snapshot vote on behalf of the Safe. Signs an EIP-712 vote as a Safe message, waits for the Safe's EIP-1271 signature, then submits it to the Snapshot sequencer. Read the proposal with snapshot_get_proposal first so the choice index and voting system match. Voting again on the same proposal replaces the earlier vote.

Input Schema

NameRequiredDescriptionDefault
choiceYes1-indexed choice. A single number for single-choice/basic proposals, an array for approval or ranked-choice, or an object of option->weight for weighted or quadratic (e.g. {"1": 70, "2": 30}).
reasonNoPublic rationale recorded with the vote. Strongly recommended.
proposalIdYesSnapshot proposal id (0x… hash)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare this is a non-read-only but non-destructive, open-world operation; the description adds real context beyond that: it is gasless, requires a Safe EIP-1271 signature round-trip, goes to the Snapshot sequencer, and a repeat call silently replaces the prior vote. Failure modes and timing of the signature wait are not described, keeping it below a 5.

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

Conciseness5/5

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

Four sentences, front-loaded with the action and its mechanism, then the prerequisite, then the replacement caveat. No filler.

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

Completeness4/5

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

For a mutation tool with no output schema, the description covers the signing flow, prerequisite lookup and re-vote semantics, which is enough to call it correctly. What an agent gets back on success/failure, and how long the signature wait may take, are unstated.

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 baseline is 3; the description adds genuine meaning by tying the meaning of 'choice' to the proposal's voting system and directing the agent to inspect the proposal before choosing an index. It does not restate the choice shapes, but the schema already does.

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 and mechanism: casts an off-chain gasless Snapshot vote on behalf of the Safe via EIP-712/EIP-1271. An agent can distinguish this from sibling vote tools like snapshot_x_vote or snapshot_submit_pending_vote because the signing path is spelled out.

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 an explicit prerequisite: read the proposal with snapshot_get_proposal first so the choice index and voting system match. It also clarifies the re-vote case (voting again replaces the earlier vote). It stops short of routing the agent away from the other sibling vote-submission tools, so no explicit when-not guidance.

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