NameWheel
org.namewheelv1.0.0更新於 Oct 3, 2026
Fair random picks with the wheel in your chat: pick names, split teams, run certified draws.
概覽
讓助理進行公平的隨機抽選、把名單隨機分組,並執行或驗證可公開查核的認證抽籤。
- 功能
- 提供隨機選擇工具:spin_wheel 從名單中抽出中選者,make_teams 把名單隨機分成人數平均的小組,open_wheel_link 回傳已載入名單的 namewheel.org 連結。verify_draw 會在本機重新計算承諾、中選結果與 Ed25519 簽章來查核認證抽籤。certified_draw、freeze_list 與 my_draws 透過 NameWheel API 發布或列出認證抽籤與凍結名單。
- 適用情境
- 適合抽獎、課堂或團隊分組,以及任何需要隨機決定的情境。當其他人日後需要查核結果時,可使用認證抽籤,結果會發布在公開證明頁面上。
- 執行需求
- 可作為託管的 Streamable HTTP 端點使用,網址為 stdio 執行,需要 Node.js 20+ 或 Docker。認證抽籤、freeze_list 與 my_draws 需要免費的 NameWheel API 金鑰,透過 NAMEWHEEL_API_KEY 或 Authorization Bearer、x-api-key 標頭提供。本機抽選、分組與連結不需要網路或金鑰。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 NameWheel,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"mcp": {
"type": "http",
"url": "https://mcp.namewheel.org/mcp"
}
}
}README
NameWheel MCP server
An open source (MIT) MCP server for fair random picks: pick names from a list, split people into random teams, make wheel links, and check certified draws. It runs on your own machine over stdio (Node.js 20+ or Docker), and the same code also runs as a hosted Streamable HTTP server at https://mcp.namewheel.org/mcp.
In clients that show MCP Apps (Claude, ChatGPT and others), the NameWheel wheel spins to the result right in the chat. When other people need to check a result later, it runs a certified draw with a permanent public proof page.
Run it locally (stdio)
Or with Docker:
What runs on your machine:
- Picking winners (
spin_wheel): Node's cryptographic random number generator (crypto.randomInt) in this process. No network needed. - Teams (
make_teams) and wheel links (open_wheel_link): computed locally. No network needed. - Checking a certified draw (
verify_draw): downloads the draw's public record and NameWheel's public key, then recomputes everything locally: the SHA-256 commitment, the HMAC-SHA256 winner and the Ed25519 signature. - Limits (
check_plan): answered locally.
Only certified_draw, freeze_list and my_draws call the NameWheel API, because a certified draw is published on a public proof page at namewheel.org. They use your own free API key:
Make a key in one press at namewheel.org/mcp. Without a key the server still starts and everything above works.
Claude Desktop, Cursor, Cline, Windsurf and other clients that start local servers:
The env block is optional.
Tools
Certified draws publish the title, every entry and the winner on the proof page. The tool description says so, so assistants tell people before running one.
The server also has 5 prompts (pick_student, split_teams, certified_draw_with_proof, make_a_decision, verify_a_draw) and 2 resources (namewheel://truespin, how certified draws work, and namewheel://limits).
Or use the hosted server (nothing to install)
The same server runs at https://mcp.namewheel.org/mcp (Streamable HTTP). Without an account: 30 calls a minute and 500 a day per connection. Certified draws need a free NameWheel account, connected through the sign-in flow your client shows.
Claude (web, desktop, mobile): Settings, Connectors, Add custom connector, paste https://mcp.namewheel.org/mcp.
Claude Code
ChatGPT (web): Settings, Apps (Developer Mode), add https://mcp.namewheel.org/mcp.
Codex CLI
Cursor: Install in Cursor, or ~/.cursor/mcp.json:
VS Code: Install in VS Code, or .vscode/mcp.json:
Windsurf, ~/.codeium/windsurf/mcp_config.json:
Gemini CLI, ~/.gemini/settings.json:
To use your account without the sign-in flow, send your key as Authorization: Bearer nw_live_... or x-api-key: nw_live_....
Run the HTTP server yourself
Settings: PORT (default 8791), HOST (default 127.0.0.1), PUBLIC_URL (the address clients reach, used for OAuth metadata), NAMEWHEEL_API_URL, MCP_JWT_SECRET (signs access tokens), STATE_DIR (OAuth clients, tokens and guest meters, default /var/lib/namewheel-mcp).
The HTTP server is an OAuth 2.1 authorization server (PKCE, dynamic client registration, client ID metadata documents, RFC 9728 and 8414 metadata). Tools that need no account need no sign-in. When a client calls a tool that needs an account, the server answers 401 and the client shows its Connect flow; the connect page asks for a NameWheel API key and binds the connection to it. Deleting the key in the NameWheel dashboard (Settings, API keys) disconnects every assistant that used it. A key can only run certified draws, freeze lists, read the plan and list its own draws: it cannot change the account, its payments or its data.
How certified draws work
- NameWheel's server makes a secret and publishes only its SHA-256 fingerprint before anything is revealed.
- The connection adds its own randomness.
- The winner is HMAC-SHA256 over that randomness and the fingerprint of the entry list, keyed with the secret.
- After the spin the secret is published and the record is signed with NameWheel's Ed25519 key (public key).
- The proof page lists every certified draw the same account ran on the same list, so re-rolling until a favourite wins is visible.
Spec: namewheel.org/truespin-spec. Independent verifier: namewheel/truespin-verifier. verify_draw runs the same checks (src/verify.ts).
The in-chat wheel
spin_wheel, make_teams, certified_draw and verify_draw link an MCP Apps view (ui://namewheel/wheel-v1.html, text/html;profile=mcp-app). It is one self-contained HTML file in widget/wheel.html: no outside scripts, fonts or requests. Clients without MCP Apps get the same result as text.
Privacy
Spins, teams and wheel links never store the names. Certified draws and frozen lists are stored by NameWheel and published on their proof pages, as on the website. The hosted server meters calls without an account by IP address and keeps request logs (tool, number of entries, client name, address, outcome, never the names) for 30 days. Policy: namewheel.org/privacy.
License
MIT. NameWheel and TrueSpin are names of Outline Technologies LLC.
來源:README.md,提交 00fdb78
工具
0版本歷史
1- v1.0.0最新Oct 3, 2026
