Zovo Raffle Tickets
Server Details
Print numbered raffle tickets with matching stubs for a fundraiser.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Score is being calculated.
Available Tools
2 toolsdraw_raffle_winnersDraw raffle winnersARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prizes | No | Prizes in draw order; the first winner gets the first prize. Example: ["TV", "Gift card", "Mug"]. | |
| entries | No | What 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"]. | |
| exclude | No | Numbers or names to leave out before the draw, e.g. void tickets or earlier winners: "17, 42". | |
| winners | No | How many winners to draw, 1 to 100. Default 1, or the number of prizes when prizes are given. | |
| alternates | No | Backup winners drawn after the winners, in order, for unclaimed prizes. Default 0. | |
| event_name | No | Event name for the draw log, e.g. Spring Gala Raffle. | |
| last_number | No | Instead of entries: the last ticket number of a range, e.g. 500. | |
| first_number | No | Instead of entries: the first ticket number of a range, e.g. 1. | |
| one_prize_per_person | No | With names: skip further entries of someone who already won. Default true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| method | Yes | |
| winners | Yes | |
| warnings | Yes | |
| downloads | Yes | |
| alternates | Yes | |
| entry_type | Yes | |
| event_name | Yes | |
| assumptions | Yes | |
| entry_count | Yes | |
| drawn_at_utc | Yes | |
| eligible_count | Yes | |
| excluded_count | Yes | |
| drawn_at_new_york | Yes | |
| entry_fingerprint_sha256 | Yes |
TDQS
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.
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.
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.
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.
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.
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.
generate_raffle_ticketsGenerate raffle ticketsARead-onlyIdempotentInspect
Use this when the user wants printable raffle tickets, a raffle ticket template, or numbered tickets with stubs for a fundraiser. Returns a print-ready PDF with 10 or 8 numbered tickets per US Letter or A4 sheet, each with a stub carrying the same number, dashed cut lines, and the event name, date, prizes, price and contact line; numbers run in order across sheets with no gaps or repeats. Up to 2,000 tickets per call. Does not sell tickets, collect payments or check whether a raffle is legal where the user lives.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Draw date and time as you want it printed, e.g. May 3, 2027 at 7 pm or 2027-05-03. | |
| color | No | Accent colour as a name or hex, e.g. blue, green or #1D5FC4. Default red. | |
| count | No | How many tickets, 1 to 2,000. Default 100. Example: 200. | |
| paper | No | letter (US Letter, default) or a4. | |
| price | No | Ticket price as printed, e.g. 5 (printed $5), "$5 or 5 for $20", or "€2". | |
| digits | No | Minimum digits per number with leading zeros, e.g. 4 gives 0001. Default 4. | |
| prefix | No | Text before each number, e.g. A- gives A-0001. Default none. | |
| prizes | No | Prize lines, up to 3 printed, e.g. ["Grand prize: 55-inch TV", "2nd: $100 gift card"] or one line. | |
| contact | No | Organizer contact line, e.g. PTA - pta@example.org - (555) 010-2000. | |
| location | No | Where the draw happens, e.g. Lincoln High School gym. | |
| per_page | No | Tickets per sheet: 10 (2 x 5, each 3.75 x 2 in) or 8 (2 x 4, each 3.75 x 2.5 in). Default 10. | |
| end_number | No | Last ticket number instead of count, e.g. 500 for tickets 1 to 500. | |
| event_name | No | Event or fundraiser name printed on each ticket, e.g. Spring Gala Raffle. Default: Raffle. | |
| fine_print | No | Short line such as Need not be present to win. | |
| stub_fields | No | Write-in lines on the stub, up to 3. Default Name and Phone. Example: Name, Phone, Email. | |
| start_number | No | First ticket number. Default 1. Example: 1001. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| paper | Yes | |
| price | Yes | |
| prizes | Yes | |
| sheets | Yes | |
| per_page | Yes | |
| warnings | Yes | |
| downloads | Yes | |
| event_name | Yes | |
| assumptions | Yes | |
| last_number | Yes | |
| stub_fields | Yes | |
| ticket_size | Yes | |
| first_number | Yes | |
| ticket_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the return artifact (print-ready PDF), layout behavior (10 or 8 tickets per US Letter or A4 sheet), numbering guarantees (sequential with no gaps or repeats), and a hard limit of 2,000 tickets per call. It also clarifies important exclusions around sales, payments, and legal compliance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the usage condition, then moves to output details, limits, and exclusions in a compact three-sentence structure. Every sentence adds useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 16 optional parameters and full schema coverage, the description provides sufficient context about the generated artifact, numbering behavior, sheet layout, capacity limit, and scope exclusions. Because an output schema exists, it need not explain return values in greater detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter thoroughly. The description reinforces the overall constraint of up to 2,000 tickets and describes sheet layout, but adds little parameter-specific meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: generating printable raffle tickets, and describes the exact deliverable (a print-ready PDF with numbered tickets and stubs). It is easy to distinguish from the sibling draw_raffle_winners because this tool produces ticket sheets, not draw results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening sentence gives a clear when-to-use condition tied to user intent, and the final sentence states what the tool does not do (sell tickets, collect payments, check legality). It does not explicitly name draw_raffle_winners as the alternative, so it falls short of full when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
draw_raffle_winners - First observed
generate_raffle_tickets
Related MCP Connectors
Print name tags and place cards for an event from a guest list: adhesive name badges, 8 per sheet.
1
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables printing labels whose layout adapts to the roll reported by a CUPS/IPP label printer, as well as PDF, Markdown, and HTML documents, with preview, copies, duplex, page ranges, and print-job management.7MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI clients to prepare and preview labels, then safely submit physical print jobs to an Xprinter XP-330B through local stdio or authenticated remote access, with status, cancellation, and retry receipts.MIT
- AlicenseAqualityBmaintenanceEnables an AI agent to design, lay out, proof and print badges, business cards, flyers, photos and sublimation transfers on real paper printers with millimetre-accurate output, packing mixed items onto shared sheets with crop marks. It also remembers named print profiles, including printer, paper, tray, media type, quality and calibration settings.10MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to print and manage 58mm thermal water bill receipts, including previewing, customizing, and printing receipts for an EPPOS EP5821 printer.-
Glama MCP Gateway
Add one secure layer between your agents and this server.