{
  "slug": "spin-wheel",
  "mcpServerUrl": "https://plugins-worker.demos.42a.ai/spin-wheel/mcp",
  "interface": {
    "displayName": "Handy Spin the Wheel",
    "shortDescription": "Fair picks, teams and dice",
    "longDescription": "Spin a wheel of names, split people into random teams, roll dice and flip coins with real, verifiable randomness.\n\nType the names or choices and the card spins a wheel that lands on a winner picked with a cryptographic random number generator before the animation starts, so the chat and the wheel always agree. Draw several winners with or without repeats, give some options better odds, or run an elimination where each winner leaves the wheel.\n\nSplit a class, office or party into random teams by number of teams or team size, balance them by a skill rating, and keep certain people together or apart. Roll any dice in standard notation (2d6+3, 4d6 drop lowest, d20 with advantage) with the exact odds of every total charted, flip one coin or a thousand, or draw random numbers in any range with no repeats.\n\nEvery number comes from unbiased rejection sampling. Nothing is stored.",
    "category": "Entertainment",
    "defaultPrompt": [
      "Spin the wheel: Ana, Ben, Chloe, Dev, Ella, Finn",
      "Split these 12 people into 3 random teams: Ana, Ben, Chloe, Dev, Ella, Finn, Gia, Hal, Ivy, Jon, Kai, Lea",
      "Roll 4d6 drop lowest six times for my D&D character"
    ],
    "capabilities": [
      "Spinning wheel of 2-100 names that lands on a fairly drawn winner",
      "Several winners, weighted odds and elimination rounds",
      "Random teams by count or size, balanced by skill, with together/apart rules",
      "Dice notation with advantage, drop lowest and exact odds charts",
      "Coin flips and random numbers in any range, with or without repeats",
      "Cryptographic randomness with unbiased rejection sampling"
    ],
    "logo": "https://plugins-worker.demos.42a.ai/spin-wheel/icon.svg",
    "websiteURL": "https://plugins-worker.demos.42a.ai/spin-wheel/",
    "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": [
    "spin the wheel",
    "pick a random name",
    "random name picker",
    "random team generator",
    "roll a dice",
    "flip a coin",
    "random number between 1 and 100",
    "wheel of names",
    "dice roller"
  ],
  "tools": [
    {
      "name": "spin_wheel",
      "title": "Spin the wheel",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": false
      }
    },
    {
      "name": "make_teams",
      "title": "Make random teams",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": false
      }
    },
    {
      "name": "roll_dice",
      "title": "Roll dice, flip coins, pick numbers",
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false,
        "idempotentHint": false
      }
    }
  ],
  "dataSources": [],
  "review": {
    "positiveTestCases": [
      {
        "description": "Spin a wheel of names",
        "prompt": "Spin the wheel: Ana, Ben, Chloe, Dev, Ella, Finn",
        "tools_triggered": [
          "spin_wheel"
        ],
        "expected_behavior": "A spinning wheel of 6 names lands on one winner; odds 1 in 6 (16.7%) each."
      },
      {
        "description": "Three raffle winners, one removed, weighted",
        "prompt": "Draw 3 different winners from Ana, Ben, Chloe, Dev, Ella; Ben already won last week so leave him out. Ana bought 3 tickets.",
        "tools_triggered": [
          "spin_wheel"
        ],
        "expected_behavior": "Three distinct winners from Ana, Chloe, Dev, Ella (Ben removed); Ana has 3/6 = 50% odds on the first draw."
      },
      {
        "description": "Balanced teams with a keep-apart rule",
        "prompt": "Make 2 balanced teams for basketball. Skills: Ana 9, Ben 7, Chloe 6, Dev 5, Ella 4, Finn 3. Keep Ana and Ben apart.",
        "tools_triggered": [
          "make_teams"
        ],
        "expected_behavior": "Two teams of 3, each with skill total 17 (spread 0), Ana and Ben on different teams."
      },
      {
        "description": "D&D ability scores",
        "prompt": "Roll 4d6 drop lowest six times for my D&D character",
        "tools_triggered": [
          "roll_dice"
        ],
        "expected_behavior": "Six totals between 3 and 18, each from four dice with the lowest dropped; expected average 12.24."
      },
      {
        "description": "A random number in a range",
        "prompt": "Give me a random number between 1 and 100",
        "tools_triggered": [
          "roll_dice"
        ],
        "expected_behavior": "One integer from 1 to 100, with 1 in 100 odds."
      }
    ],
    "negativeTestCases": [
      {
        "prompt": "Organize a Secret Santa for my family of 8 with private links.",
        "expected_behavior": "Does not call Handy Spin the Wheel: Secret Santa needs private, hidden assignments: a different plugin."
      },
      {
        "prompt": "What is the probability of rolling two sixes with two dice?",
        "expected_behavior": "Does not call Handy Spin the Wheel: A probability question with no actual roll; the model can explain it."
      },
      {
        "prompt": "Make a round robin schedule for 6 teams.",
        "expected_behavior": "Does not call Handy Spin the Wheel: Fixtures and brackets are a tournament tool, not random teams."
      }
    ]
  }
}