Skip to main content
Glama

Zovo Raffle Tickets

Draw raffle winners

draw_raffle_winners
Read-only

Use this when the user wants to draw a raffle winner, pick random winners from ticket numbers or names, or use a raffle number generator with no repeats. Draws winners (and optional alternates) without replacement with a secure random number generator from a range such as 1-500, several sold ranges, or a list of names (a name listed twice has two entries); can exclude numbers and assign prizes in draw order. Returns the ordered winners and a draw log PDF and CSV with time, method, entry count and an entry-list fingerprint. Each call is a new draw, so do not call it again to change a result. Does not sell tickets or take payments, and is not legal advice: raffle rules vary by place.

Input Schema

NameRequiredDescriptionDefault
prizesNoPrizes in draw order; the first winner gets the first prize. Example: ["TV", "Gift card", "Mug"].
entriesNoWhat is in the drum: sold ticket numbers, ranges or names, as a list or pasted lines. Ranges like 1-250 or A-0001 to A-0100 are expanded. A name listed 3 times has 3 entries. Example: "1-250, 301-420" or ["Ava Patel", "Liam Chen", "Ava Patel"].
excludeNoNumbers or names to leave out before the draw, e.g. void tickets or earlier winners: "17, 42".
winnersNoHow many winners to draw, 1 to 100. Default 1, or the number of prizes when prizes are given.
alternatesNoBackup winners drawn after the winners, in order, for unclaimed prizes. Default 0.
event_nameNoEvent name for the draw log, e.g. Spring Gala Raffle.
last_numberNoInstead of entries: the last ticket number of a range, e.g. 500.
first_numberNoInstead of entries: the first ticket number of a range, e.g. 1.
one_prize_per_personNoWith names: skip further entries of someone who already won. Default true.

Output Schema

NameRequiredDescriptionDefault
kindYes
methodYes
winnersYes
warningsYes
downloadsYes
alternatesYes
entry_typeYes
event_nameYes
assumptionsYes
entry_countYes
drawn_at_utcYes
eligible_countYes
excluded_countYes
drawn_at_new_yorkYes
entry_fingerprint_sha256Yes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=true, idempotentHint=false), the description explains the sampling semantics (without replacement, duplicate names count as multiple entries, exclusions applied before the draw) and the non-idempotency rationale, which the bare idempotentHint=false flag does not convey. It also discloses the artifacts produced (ordered winners, a draw log PDF and CSV containing time, method, entry count and an entry-list fingerprint), so an agent knows a fresh random result is generated on every call.

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?

It opens with the use-case triggers, then moves to mechanism, outputs, and limits — well front-loaded with no filler sentences. It is dense and somewhat long, but each clause carries distinct information; minor tightening of the output/log sentence would make it crisper.

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 9-parameter tool with an output schema, the description covers what an agent still needs: valid entry forms, draw semantics, the non-repeat-call warning, and scope boundaries (no sales, no legal advice). Return values are summarized rather than re-specified, correctly deferring to the output 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, but the description adds real meaning: ranges are expanded, a name repeated three times yields three entries, the first winner takes the first prize, and exclusion is applied before the draw (void tickets, prior winners). It does not restate defaults for every parameter, relying on the schema for counts and alternates, which is appropriate.

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?

The description states a specific verb and resource — drawing raffle winners (plus optional alternates) without replacement using a secure RNG — and gives concrete entry forms (1-500 range, multiple sold ranges, name lists). It does not name the sibling generate_raffle_tickets or explicitly contrast drawing winners with generating tickets, so sibling differentiation is only implicit.

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?

It gives explicit trigger intents ('when the user wants to draw a raffle winner, pick random winners from ticket numbers or names, or use a raffle number generator with no repeats') plus a clear anti-pattern: 'Each call is a new draw, so do not call it again to change a result.' It also fences off adjacent-but-out-of-scope requests (selling tickets, payments, legal advice).

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