{
  "slug": "secret-santa",
  "mcpServerUrl": "https://plugins-worker.demos.42a.ai/secret-santa/mcp",
  "interface": {
    "displayName": "Handy Secret Santa Generator",
    "shortDescription": "Private draws, one link each",
    "longDescription": "Draw names for a Secret Santa and give every person a private link that shows only their own match, so the organizer can join in too.\n\nList the participants, add couples or housemates who should not draw each other, one-way rules (\"the kids shouldn't draw Grandma\"), and optionally forbid two people drawing each other. The draw uses a cryptographic random number generator, makes every valid assignment equally likely, and if the rules make a draw impossible it says exactly which people and which rule cause it.\n\nNobody sees the full list of matches: not the organizer, not ChatGPT. Instead the card gives a private link for each person, a ready-to-send message with the budget and exchange date, and a CSV of every name and link for email or chat. Each person opens their link, taps to reveal who they are buying for, and sees the budget, date and your note on a festive page that works on any phone, in light or dark mode.\n\nNothing is stored: the matches live only inside the encrypted links.",
    "category": "Productivity",
    "defaultPrompt": [
      "Draw names for our office Secret Santa: Ana, Ben, Chloe, Dev, Ella, Finn, Gia and Hal. $30 limit, exchange Dec 18.",
      "Secret Santa for my family of 6, but couples (Mom and Dad, Sam and Alex) can't draw each other",
      "Make private Secret Santa links for my friends with a $25 budget and a note about the party"
    ],
    "capabilities": [
      "Random draw where nobody gets themselves",
      "Couples and one-way exclusions, optional no mutual pairs",
      "Explains exactly why a draw is impossible",
      "A private reveal link per person: nobody sees the whole list",
      "Ready-to-send messages and a CSV of all links",
      "Festive, mobile-friendly reveal page with tap to reveal"
    ],
    "logo": "https://plugins-worker.demos.42a.ai/secret-santa/icon.svg",
    "websiteURL": "https://plugins-worker.demos.42a.ai/secret-santa/",
    "supportURL": "https://plugins-worker.demos.42a.ai/support",
    "privacyPolicyURL": "https://plugins-worker.demos.42a.ai/privacy",
    "termsOfServiceURL": "https://plugins-worker.demos.42a.ai/terms",
    "developerName": "42a"
  },
  "keywords": [
    "secret santa generator",
    "secret santa name draw",
    "draw names for secret santa",
    "secret santa with exclusions",
    "white elephant gift exchange names",
    "kris kringle draw",
    "gift exchange name picker",
    "online secret santa"
  ],
  "tools": [
    {
      "name": "draw_secret_santa",
      "title": "Draw Secret Santa",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": false
      }
    }
  ],
  "dataSources": [],
  "review": {
    "positiveTestCases": [
      {
        "description": "Office draw with budget and date",
        "prompt": "Draw names for our office Secret Santa: Ana, Ben, Chloe, Dev, Ella, Finn, Gia and Hal. $30 limit, exchange Dec 18.",
        "tools_triggered": [
          "draw_secret_santa"
        ],
        "expected_behavior": "8 private links and messages, budget $30, exchange Fri, Dec 18; no pairing visible anywhere."
      },
      {
        "description": "Family with couples who must not draw each other",
        "prompt": "Secret Santa for my family of 6, but couples (Mom and Dad, Sam and Alex) can't draw each other, and no two people should get each other.",
        "tools_triggered": [
          "draw_secret_santa"
        ],
        "expected_behavior": "6 private links; couples excluded both ways and no mutual pairs; budget $50."
      },
      {
        "description": "One-way rule",
        "prompt": "Gift exchange for Mom, Dad, Sam, Alex, Jordan and Riley. Jordan and Riley are kids so they shouldn't draw Mom.",
        "tools_triggered": [
          "draw_secret_santa"
        ],
        "expected_behavior": "6 private links; Jordan and Riley cannot draw Mom (Mom may draw them)."
      },
      {
        "description": "Smallest group with a note",
        "prompt": "Secret Santa for Ana, Ben and Chloe. Note: wrap it in newspaper!",
        "tools_triggered": [
          "draw_secret_santa"
        ],
        "expected_behavior": "3 private links; the note shows on every reveal page."
      },
      {
        "description": "A 20-person draw with a CSV",
        "prompt": "We have 20 people in the club, make Secret Santa links I can paste into emails, $20 budget, party on December 12.",
        "tools_triggered": [
          "draw_secret_santa"
        ],
        "expected_behavior": "20 private links and messages, plus a CSV of all names and links."
      }
    ],
    "negativeTestCases": [
      {
        "prompt": "Pick one random name from Ana, Ben and Chloe.",
        "expected_behavior": "Does not call Handy Secret Santa Generator: A single random pick is a wheel or name picker, not a gift-exchange draw."
      },
      {
        "prompt": "What should I buy my Secret Santa for under $30?",
        "expected_behavior": "Does not call Handy Secret Santa Generator: Gift ideas are a conversation, not a draw."
      },
      {
        "prompt": "Split my 12 coworkers into 3 teams for the holiday quiz.",
        "expected_behavior": "Does not call Handy Secret Santa Generator: Team splitting is a different tool."
      }
    ]
  }
}