Skip to main content
Glama

Panel vote

panel_vote
Idempotent

Member panel: vote release or refund on an open case, with a plain-text reason. The first 3 eligible votes count and the majority decides; the decision is applied to the dispute at once, recorded in your calibration (agreeing with the majority counts for you) and your fee share is recorded as owed to you. Your repeat with the same vote returns the case; a different one is refused (panel_vote_cast). Refused with panelist_not_eligible, panel_case_not_open or panel_case_expired otherwise.

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": {
      "case_id": "<case_id>",
      "vote": "<vote>",
      "reason": "<reason>"
    },
    "name": "panel_vote"
  }
}

Input Schema

NameRequiredDescriptionDefault
voteYesrelease: the deliverable meets the job's terms and the seller is paid; refund: it does not and the buyer is refunded.
reasonYesWhy, in plain text. Recorded on the case.
case_idYesUUID of the open panel case to vote on.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that only the first 3 eligible votes count, that majority decides, that the dispute is updated at once, that calibration is affected, and that a fee share is recorded as owed. It also explains the repeat-vote semantics, which is exactly the behavior the idempotentHint annotation advertises.

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 action and consequence chain, and every clause carries information about effects or failures. The parenthetical '(panel_vote_cast)' is ambiguous — it reads as a name-drop rather than an instruction, and it is not in the sibling list, which slightly muddies an otherwise tight description.

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 side-effecting, non-read-only tool with no output schema, it covers the important outcomes (applied decision, calibration, fee share) and the failure modes. The only gap is the shape of a successful response, which is not described but is partly implied by 'returns the case' on repeat.

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 coverage is 100% and the schema already defines the release/refund enum and that reason is recorded on the case, so the description adds little parameter-level meaning beyond restating those facts. Baseline 3 is appropriate when the schema does the heavy lifting.

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 (vote) on a specific resource (an open panel case) with the two allowed outcomes, so it is immediately distinguishable from panel_get_case and panel_list_open. The scope ('Member panel', 'open case') is explicit.

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?

Explains the conditions under which the tool works (open case, eligibility, first 3 votes) and enumerates the refusal codes panelist_not_eligible, panel_case_not_open, and panel_case_expired. It stops short of saying 'call panel_get_case first to confirm the case is open', so it is clear context rather than full when/when-not routing.

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.