MCP Server

NameWheel

org.namewheel/mcp
Productivity Public & reachable MCP 2025-11-25

What this MCP does

Performs random draws, team assignments, wheel spins, and verifiable public draw records.

certified_draw
Run a certified draw
Run a TrueSpin certified draw on NameWheel: the winner is sealed by NameWheel's server before it is revealed, randomness from this connection is added, and the result is published on a permanent public proof page (namewheel.org/v/CODE) that anyone can check, with a button that recomputes the draw. Use it when the result must be provable to other people: a class prize, a team decision, a draw announced to a group. IMPORTANT: the title, every entry and the winner become public on the proof page, so only use names the person is happy to publish, and tell them so. Needs a connected NameWheel account (free). To draw against a list locked earlier with freeze_list, pass frozen_code instead of entries.
Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title'], 'properties': {'title': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "The draw's public title, such as 'Year 9 reading prize' or 'Who presents first'."}, 'entries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500, 'minItems': 2, 'description': 'The names or options, one per item, exactly as the person gave them. Repeating a name gives it another slot (another chance), as on the NameWheel website.'}, 'entropy': {'type': 'string', 'maxLength': 200, 'description': "Optional words or a number from the person, mixed into the draw's randomness."}, 'frozen_code': {'type': 'string', 'maxLength': 40, 'description': 'Code or link of a list frozen earlier with freeze_list (namewheel.org/f/CODE). The draw uses exactly that list.'}}, 'additionalProperties': False}
check_plan
Check what this connection can do
Say what this NameWheel connection can do: without an account (spins, teams, wheel links, checking draws) or with a connected account (certified draws, frozen lists, the account's draws), and how many certified draws are left today. Use it when the person asks about limits, their account, or why a request was refused.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
freeze_list
Freeze an entry list
Lock a list of entries in public before a draw, at namewheel.org/f/CODE, with a fingerprint and the exact time. Nobody can add or remove a name after that, and when certified_draw later uses this list (frozen_code), the frozen page links to the result. Use it when entries close before the draw happens. The title and every entry are public. Needs a connected NameWheel account (free).
Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'entries'], 'properties': {'title': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "The list's public title."}, 'entries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500, 'minItems': 2, 'description': 'The names or options, one per item, exactly as the person gave them. Repeating a name gives it another slot (another chance), as on the NameWheel website.'}}, 'additionalProperties': False}
make_teams
Split into random teams
Split a list of names into random teams or groups of even size, and show them as cards in the chat. Use it for class groups, project teams, game sides, rotations. Give either how many teams or how many people per team. Works without an account.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['entries'], 'properties': {'teams': {'type': 'integer', 'maximum': 50, 'minimum': 2, 'description': 'How many teams. Default 2 when team_size is not given.'}, 'title': {'type': 'string', 'maxLength': 80, 'description': "A short title for the wheel, such as 'Period 3 cold call' or 'Who presents first'."}, 'entries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500, 'minItems': 2, 'description': 'The names or options, one per item, exactly as the person gave them. Repeating a name gives it another slot (another chance), as on the NameWheel website.'}, 'team_size': {'type': 'integer', 'maximum': 250, 'minimum': 1, 'description': 'How many people per team, instead of a number of teams.'}, 'team_names': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 50, 'description': 'Names for the teams, in order. Default Team 1, Team 2...'}}, 'additionalProperties': False}
my_draws
List my certified draws
List this account's recent NameWheel certified draws (or frozen lists) with their winners and proof links, newest first. Needs a connected NameWheel account.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'How many to list. Default 10.'}, 'frozen_lists': {'type': 'boolean', 'description': 'List frozen entry lists instead of draws.'}}, 'additionalProperties': False}
open_wheel_link
Get a wheel link
Make a namewheel.org link that opens the full NameWheel wheel with these names already loaded, for spinning on a projector, a stream or a shared screen with sound, modes and themes. Works without an account. Commas inside a name become spaces in the link.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['entries'], 'properties': {'title': {'type': 'string', 'maxLength': 80, 'description': "A short title for the wheel, such as 'Period 3 cold call' or 'Who presents first'."}, 'entries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500, 'minItems': 2, 'description': 'The names or options, one per item, exactly as the person gave them. Repeating a name gives it another slot (another chance), as on the NameWheel website.'}}, 'additionalProperties': False}
spin_wheel
Spin the wheel
Pick one or more winners at random from a list of names or options, and show the wheel spinning to the result in the chat. Use it whenever the person wants something chosen at random: a student to answer, who goes first, where to eat, a raffle winner among friends. Works without an account. The pick is fair (a cryptographic random number generator), but it is not a certified record; when other people need to be able to check the result later, use certified_draw instead.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['entries'], 'properties': {'title': {'type': 'string', 'maxLength': 80, 'description': "A short title for the wheel, such as 'Period 3 cold call' or 'Who presents first'."}, 'entries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500, 'minItems': 2, 'description': 'The names or options, one per item, exactly as the person gave them. Repeating a name gives it another slot (another chance), as on the NameWheel website.'}, 'winners': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'How many winners to pick. Default 1.'}, 'allow_repeat_winners': {'type': 'boolean', 'description': 'With more than one winner, may the same entry win twice? Default false: each winner leaves the wheel.'}}, 'additionalProperties': False}
verify_draw
Check a certified draw
Check whether a NameWheel certified draw is genuine, from its code or its namewheel.org/v/ link: recomputes the winner from the published secret, the added randomness and the entries, checks the commitment made before the spin, and checks NameWheel's Ed25519 signature on the record. Also says how many draws the host ran on this exact list. Use it when someone asks whether a draw or a giveaway result was real. Works without an account.
Read only Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['code'], 'properties': {'code': {'type': 'string', 'maxLength': 200, 'minLength': 4, 'description': 'The draw code (8 letters and digits) or its link, such as namewheel.org/v/DG5J6VD7.'}}, 'additionalProperties': False}
Added
check_plan
Oct. 5, 2026, 2:40 a.m.
Added
my_draws
Oct. 5, 2026, 2:40 a.m.
Added
verify_draw
Oct. 5, 2026, 2:40 a.m.
Added
freeze_list
Oct. 5, 2026, 2:40 a.m.
Added
certified_draw
Oct. 5, 2026, 2:40 a.m.
Added
open_wheel_link
Oct. 5, 2026, 2:40 a.m.
Added
make_teams
Oct. 5, 2026, 2:40 a.m.
Added
spin_wheel
Oct. 5, 2026, 2:40 a.m.