Draw names for a holiday gift exchange, an office party or a family Secret Santa.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants to draw names for a Secret Santa or holiday gift exchange and give each person a private link. Takes 3 to 60 names, optional couples or households who must not draw each other, one-way exclusions (for example last year's match), a budget, an exchange date and a note. Publishes a hosted page: each private link shows one person whom they buy for, the budget, the date and the match's wishlist, and each person can add their own wishlist. Returns one private link per person and an organizer link; the draw itself is not returned. Explains why when no draw is possible. Does not send emails or texts. Do not use for White Elephant games or for picking one winner.
Everyone taking part, 3 to 60 first names or nicknames, each unique, e.g. ["Ana","Bo","Cy","Dee"].
Short note from the organizer shown on every private page, e.g. Wrap it and bring it to the party. No links.
Spending limit as text, e.g. $25 or 20-30 EUR.
Groups whose members must not draw each other (couples, households), e.g. [["Ana","Bo"]].
IANA time zone for showing when links were opened, e.g. America/Chicago. Default America/New_York.
Name shown on every page, e.g. Office Secret Santa 2026.
One-way rules, e.g. [{"giver":"Cy","cannot_draw":"Dee"}] for last year's match.
Day of the gift exchange as YYYY-MM-DD, e.g. 2026-12-18.
true = no two people draw each other (A gives to B and B gives to A). Default false.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http secret-santa https://secret-santa.zovo.one/mcp
Use this when the user wants to draw names for a Secret Santa or holiday gift exchange and give each person a private link. Takes 3 to 60 names, optional couples or households who must not draw each other, one-way exclusions (for example last year's match), a budget, an exchange date and a note. Publishes a hosted page: each private link shows one person whom they buy for, the budget, the date and the match's wishlist, and each person can add their own wishlist. Returns one private link per person and an organizer link; the draw itself is not returned. Explains why when no draw is possible. Does not send emails or texts. Do not use for White Elephant games or for picking one winner.
| Argument | Type | Description |
|---|---|---|
| note | string | Short note from the organizer shown on every private page, e.g. Wrap it and bring it to the party. No links. |
| budget | string | Spending limit as text, e.g. $25 or 20-30 EUR. |
| couples | array | Groups whose members must not draw each other (couples, households), e.g. [["Ana","Bo"]]. |
| time_zone | string | IANA time zone for showing when links were opened, e.g. America/Chicago. Default America/New_York. |
| event_name | string | Name shown on every page, e.g. Office Secret Santa 2026. |
| exclusions | array | One-way rules, e.g. [{"giver":"Cy","cannot_draw":"Dee"}] for last year's match. |
| participants* | array | Everyone taking part, 3 to 60 first names or nicknames, each unique, e.g. ["Ana","Bo","Cy","Dee"]. |
| exchange_date | string | Day of the gift exchange as YYYY-MM-DD, e.g. 2026-12-18. |
| no_two_person_loops | boolean | true = no two people draw each other (A gives to B and B gives to A). Default false. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"participants"
],
"properties": {
"note": {
"type": "string",
"maxLength": 1600,
"description": "Short note from the organizer shown on every private page, e.g. Wrap it and bring it to the party. No links."
},
"budget": {
"type": "string",
"maxLength": 240,
"description": "Spending limit as text, e.g. $25 or 20-30 EUR."
},
"couples": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string",
"maxLength": 400
},
"maxItems": 60
},
"maxItems": 30,
"description": "Groups whose members must not draw each other (couples, households), e.g. [[\"Ana\",\"Bo\"]]."
},
"time_zone": {
"type": "string",
"maxLength": 64,
"description": "IANA time zone for showing when links were opened, e.g. America/Chicago. Default America/New_York."
},
"event_name": {
"type": "string",
"maxLength": 400,
"description": "Name shown on every page, e.g. Office Secret Santa 2026."
},
"exclusions": {
"type": "array",
"items": {
"type": "object",
"required": [
"giver",
"cannot_draw"
],
"properties": {
"giver": {
"type": "string",
"maxLength": 400,
"description": "Person who must not draw someone, e.g. Cy."
},
"cannot_draw": {
"type": "string",
"maxLength": 400,
"description": "Person they must not draw, e.g. Dee (for example last year's match)."
}
}
},
"maxItems": 120,
"description": "One-way rules, e.g. [{\"giver\":\"Cy\",\"cannot_draw\":\"Dee\"}] for last year's match."
},
"participants": {
"type": "array",
"items": {
"type": "string",
"maxLength": 400
},
"maxItems": 200,
"description": "Everyone taking part, 3 to 60 first names or nicknames, each unique, e.g. [\"Ana\",\"Bo\",\"Cy\",\"Dee\"]."
},
"exchange_date": {
"type": "string",
"maxLength": 40,
"description": "Day of the gift exchange as YYYY-MM-DD, e.g. 2026-12-18."
},
"no_two_person_loops": {
"type": "boolean",
"description": "true = no two people draw each other (A gives to B and B gives to A). Default false."
}
}
}Use this when the organizer wants a new random draw for an existing Secret Santa, for example because they saw an assignment by mistake. Takes the organizer link. Works only while nobody has opened a private link; it replaces the old draw with the same rules, keeps the same private links and keeps wishlists. Does not add or remove people (make a new Secret Santa for that).
| Argument | Type | Description |
|---|---|---|
| manage_link* | string | The private organizer link from when the draw was made, e.g. https://secret-santa.zovo.one/m/AbC.../XyZ... (it contains /m/). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"manage_link"
],
"properties": {
"manage_link": {
"type": "string",
"maxLength": 400,
"description": "The private organizer link from when the draw was made, e.g. https://secret-santa.zovo.one/m/AbC.../XyZ... (it contains /m/)."
}
}
}Use this when the organizer asks who has opened their Secret Santa link, who added a wishlist, or wants the private links again. Takes the organizer link (it contains /m/). Returns each person's link, whether and when it was first opened, and whether they added a wishlist. Does not return who buys for whom. Does not change anything. Does not work with a person's private link.
| Argument | Type | Description |
|---|---|---|
| manage_link* | string | The private organizer link from when the draw was made, e.g. https://secret-santa.zovo.one/m/AbC.../XyZ... (it contains /m/). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"manage_link"
],
"properties": {
"manage_link": {
"type": "string",
"maxLength": 400,
"description": "The private organizer link from when the draw was made, e.g. https://secret-santa.zovo.one/m/AbC.../XyZ... (it contains /m/)."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.