Skip to main content
Glama

DrawKind Secret Santa

Plan Secret Santa draw

plan_gift_exchange
Read-only

Use this when the user wants to draw names for a Secret Santa or gift exchange (secret santa generator, name draw, no email needed), including exclusions such as couples, households, "Ana can't draw Bo", or last year's pairs, an optional no 2-person loops rule, a budget, an exchange date, wish lists, and an organizer note. Returns one private reveal link per participant plus copy-ready messages; each pairing is encrypted inside the link, so the result never shows who drew whom. Explains exactly why when no valid draw exists. Handles 3 to 60 people. Does not send emails or texts and does not store anything. Do not use for White Elephant or Yankee Swap games (use plan_white_elephant) or for picking one random winner.

Input Schema

NameRequiredDescriptionDefault
budgetNoGift budget as the group says it, e.g. $30, 25 EUR, or £20-£25.
languageNoLanguage of the reveal pages and share messages: en, es, fr, de, pl, pt, or ja (e.g. pl). Default en.
event_nameNoName of the exchange shown on every link, e.g. Office Holiday Party 2026.
exclusionsNoOne-way rules such as "Ana can't draw Cy" or last year's pairs, e.g. [{"giver":"Ana","cannot_draw":"Cy"}]. Cy may still draw Ana unless a second rule says otherwise.
householdsNoCouples or households whose members must not draw each other (both directions), e.g. [["Ana","Bo"],["Cy","Dee","Eli"]].
wish_listsNoOptional wish lists. Each one is shown only to the person who draws that participant.
participantsYesEveryone taking part (3 to 60 people), e.g. ["Ana","Bo","Cy","Dee","Eli","Fay"]. Names must be unique; add a last initial to tell two people with the same name apart. Any language or script works.
exchange_dateNoGift exchange date as YYYY-MM-DD, e.g. 2026-12-18.
organizer_noteNoOptional note shown on every reveal page, e.g. Wrap gifts and bring them to the kitchen by 3 pm.
no_two_person_loopsNotrue = never let two people draw each other (no A gives to B while B gives to A). Default false.
include_organizer_listNotrue only when the organizer explicitly asks to see every pairing; adds a link to the full list, which spoils the surprise for them. Default false.

Output Schema

NameRequiredDescriptionDefault
modeYes
rulesYes
budgetYes
languageYes
samplingYes
warningsYes
downloadsYes
draw_codeYes
event_nameYes
exclusionsYes
householdsYes
participantsYes
exchange_dateYes
message_templateYes
valid_arrangementsYes
exchange_date_labelYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare this is a non-destructive read (readOnlyHint=true, destructiveHint=false), and the description adds genuinely new behavioral facts: one private reveal link per participant, encrypted pairings never shown to the caller, copy-ready messages, explicit explanation when no valid draw exists, 3-60 person bounds, no email/text sending, and no storage. Nothing contradicts idempotentHint=false (the draw is randomized).

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 'Use this when...' trigger and then packed with decision-relevant facts; no filler sentences. The opening sentence is long and list-heavy enough that a reader may need a second pass, which keeps it just short of a 5.

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?

Despite an 11-parameter tool, the description covers constraints (3-60 people, unique names), failure behavior (explains why no valid draw exists), side effects (no emails, no storage), and the shape of the output in user terms (private links plus copy-ready messages). An output schema exists, yet the description still tells the agent what the caller will and will not see.

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 schema already documents every parameter and the baseline is 3. The description adds value by framing the domain vocabulary an agent will encounter in user requests—'couples' and 'households' map to one input while 'Ana can't draw Bo' and 'last year's pairs' map to another, and 'no 2-person loops' is called out by name—which helps translate intent into the right field.

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 concrete verb and resource ('draw names for a Secret Santa or gift exchange') and enumerates the concrete capabilities: exclusions, households, no-two-person-loops, budget, date, wish lists, organizer note. It explicitly distinguishes itself from plan_white_elephant and from a random-winner picker, so an agent can select it without opening either schema.

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?

Gives explicit selection criteria ('Use this when the user wants to draw names for a Secret Santa') plus explicit exclusions ('Do not use for White Elephant or Yankee Swap games (use plan_white_elephant) or for picking one random winner'). The named alternative removes any ambiguity.

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