Skip to main content
Glama

Pick giveaway winners

draw_winners

Pick random winners from a list of names with Perkadoo's Winner Picker. The draw uses public drand randomness that didn't exist when the names were locked in, so anyone can check it. Returns the winners and a public results link to share.

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": {
      "entrants": "<entrants>"
    },
    "name": "draw_winners"
  }
}

Input Schema

NameRequiredDescriptionDefault
titleNoA name for the giveaway, shown on the results page.
methodNosingle: one winner. multiple: several equal winners. placed: 1st, 2nd, 3rd… with a prize per place.single
prizesNoPrize labels. For placed draws, one per place in order; otherwise one prize for every winner.
entrantsYesThe entrants: an array of names, or text with one name per line. A name listed twice gets two entries.
winnerCountNoHow many winners to pick.

Output Schema

NameRequiredDescriptionDefault
titleNo
statusYes
winnersYes
imageUrlYes
drandRoundYes
resultsUrlYes
entrantCountYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / imageUrl
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "status",
      -  "entrantCount",
      -  "resultsUrl",
      -  "drandRound",
      -  "winners"
      -]New value: +[
      +  "status",
      +  "entrantCount",
      +  "resultsUrl",
      +  "imageUrl",
      +  "drandRound",
      +  "winners"
      +]
  2. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare this is a non-idempotent, open-world write with no destructive effect; the description adds genuinely new context by disclosing the verifiability model (public drand randomness that did not exist when names were locked in) and that a shareable public results link is produced. It stops short of saying whether repeated calls create separate draw records, which matters given idempotentHint=false.

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?

Three short sentences, front-loaded with the core action, and the fairness note earns its place by explaining why the draw is trustworthy. The 'with Perkadoo's Winner Picker' branding is mild filler but not disruptive.

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?

With an output schema present, the description need not explain return values, and it still mentions winners plus a results link. The remaining gap is routing between this and sibling draw tools, plus whether each invocation persists a new draw, which would be valuable for a non-idempotent write.

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% and the schema already defines method modes, prize ordering for placed draws, duplicate-name handling, and entrant limits. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Pick random winners from a list of names.' The phrase 'from a list of names' implicitly separates it from comment-based siblings like draw_from_post, but no sibling is named explicitly, so an agent must infer the routing.

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

Usage Guidelines3/5

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

Usage is only implied by the input shape (you supply entrants yourself, rather than drawing from a post). There is no explicit when-to-use, when-not-to-use, or named alternative such as draw_from_post or pick_random_numbers, which is a real gap given several sibling draw tools.

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.

Resources