Skip to main content
Glama

Vote on and execute a proposal

dexe_proposal_vote_and_execute
Destructive

Vote on a DAO proposal, auto-deposit missing governance tokens to meet voting power, and execute the proposal once it passes, with optional signer broadcasting or WalletConnect payloads.

Instructions

Broadcasts when a signer is configured. The ONE call for 'vote on / pass / execute proposal N': checks proposal state, AUTO-DEPOSITS wallet tokens when voting power is short (approve UserKeeper → deposit → vote, the frontend's bundled shape), and with autoExecute executes once the vote passes. Without a signer it returns ordered TxPayloads + a WalletConnect QR. Unsure of the lifecycle (validator round, locked tokens)? Call dexe_guide (flow:'vote_execute') first.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "govPool": "<govPool>",
      "proposalId": "<proposalId>"
    },
    "name": "dexe_proposal_vote_and_execute"
  }
}

Input Schema

NameRequiredDescriptionDefault
userNoUser address. Required when no signer is loaded.
dryRunNoIf true, return ordered TxPayloads even when a signer is loaded (preview without broadcasting).
chainIdNoTarget chain (56 mainnet, 97 testnet); needs an RPC for it. Default: the MCP's default chain.
govPoolYesDAO GovPool address (dexe_dao_registry_lookup).
isVoteForNoVote for (true) or against (false)
signerKeyNoKeyring signer: omit = primary key; 'agent<n>' or address = a DEXE_AGENT_PK_* key.
proposalIdYesOn-chain proposal id, 1-indexed decimal (dexe_proposal_list).
voteAmountNoVote amount: raw wei (digits only) or human units with a decimal point ('12.5'). Default: ALL available power (deposited + wallet).
voteNftIdsNoYour governance NFT token ids, decimal; [] for ERC20-only DAOs.
autoExecuteNoAttempt execute if proposal passes after vote
flowContextNoGuided-flow position from dexe_guide's step templates. Adds flowProgress + next to the result and persists it.
depositFirstNo'auto': deposit exactly what is missing when deposited power is short. true: deposit the whole wallet balance. false: never deposit.auto
driveValidatorRoundNoWith autoExecute, drive the validator stage too: moveProposalToValidators, cast the signer's validator vote if it is one, then execute. False stops after the member vote.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.37.1

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already flag a destructive write, and the description adds the crucial detail that it AUTO-DEPOSITS wallet tokens when voting power is short (approve UserKeeper → deposit → vote), plus that autoExecute and driveValidatorRound extend the action into validator stages. It stops short of stating failure/rollback behavior, gas implications, or whether a partially executed sequence can be resumed, so it is strong but not exhaustive for 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 identity and then the branching modes (signer vs no signer, autoExecute, dryRun) in a single dense paragraph with no filler sentences. The opening fragment "Broadcasts when a signer is configured" is slightly elliptical and would read better as a clause about broadcast behavior, but nothing is redundant.

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 13-parameter, nested-object, destructive tool with no output schema, the description covers the primary path, the preview path, the signer-less payload/QR path, the validator-round branch, and where to go for lifecycle questions. An agent can decide to call it and predict the result shape without opening the schema.

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; the description still adds real meaning by tying autoExecute, depositFirst ("AUTO-DEPOSITS ... the frontend's bundled shape"), and driveValidatorRound together into a coherent default path, and by noting voteAmount defaults to ALL available power. It does not explain how voteNftIds interacts with ERC20-only DAOs beyond the schema text, but the added behavioral framing is genuinely useful.

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?

"The ONE call for 'vote on / pass / execute proposal N'" names a specific multi-step operation and the resource (proposal N), and the phrasing positions it against the granular dexe_vote_build_* siblings without needing to list them. The subsequent clauses (state check, auto-deposit, auto-execute) make the composite behavior concrete.

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?

Explicit routing: use dexe_guide with flow:'vote_execute' when the lifecycle (validator round, locked tokens) is unclear, use dryRun to preview, and note the signer-less path returns TxPayloads + WalletConnect QR. That covers when to call it, when to call something else first, and what each mode yields.

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