NameWheel について
NameWheelは、名前の抽選、チーム分け、ルーレットリンクの作成、認証付き抽選の検証を行うMCPサーバーです。ローカルstdioまたはホスト型エンドポイントで接続し、MCP Apps対応クライアントではチャット内にルーレットを表示します。
主な機能
- 01チャット内で名前をランダム抽選
- 02ランダムなチーム分け
- 03ルーレットリンクの作成
- 04認証付き抽選の公開と検証
- 05プロンプトとリソースの提供
活用シーン
- 01リストから当選者を選ぶ
- 02参加者をチームに分ける
- 03公開証明ページ付きで抽選を公開
MCP 対応
MCPクライアントにツール、プロンプト、リソース、MCP Appsのルーレットを提供します。ローカルstdioまたはホスト型Streamable HTTPサーバーとして動作します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.namewheel.org/mcpclaude mcp add --transport http org-namewheel https://mcp.namewheel.org/mcp{"mcpServers":{"org-namewheel":{"type":"http","url":"https://mcp.namewheel.org/mcp"}}}Cursor で開く{"servers":{"org-namewheel":{"type":"http","url":"https://mcp.namewheel.org/mcp"}}}VS Code で開く{"mcpServers":{"org-namewheel":{"type":"http","url":"https://mcp.namewheel.org/mcp"}}}{"mcpServers":{"org-namewheel":{"serverUrl":"https://mcp.namewheel.org/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
8| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| title | string | いいえ | ルーレットの短いタイトル。例:'Period 3 cold call'、'Who presents first'。 |
| entries | array | はい | 名前または選択肢を 1 項目ずつ、ユーザーが提示したとおりに指定します。名前を繰り返すと、NameWheel のウェブサイトと同様に枠が追加され(当選確率が上がり)ます。 |
| winners | integer | いいえ | 選出する当選者の人数。デフォルトは 1 です。 |
| allow_repeat_winners | boolean | いいえ | 当選者が複数いる場合、同じ項目が複数回当選してもよいですか?デフォルトは false です。当選した項目はルーレットから除外されます。 |
詳細
NameWheel MCP サーバー
公平なランダム抽選を行うオープンソース(MIT)の MCP サーバーです。リストから名前を選んだり、参加者をランダムなチームに分けたり、ルーレットのリンクを作成したり、認証済み抽選を確認したりできます。お使いのマシン上で stdio 経由で動作し(Node.js 20+ または Docker)、同じコードがホスト型 Streamable HTTP サーバー https://mcp.namewheel.org/mcp としても動作します。
MCP Apps を表示できるクライアント(Claude、ChatGPT など)では、チャット内で NameWheel のルーレットが回転し、結果が表示されます。後からほかの人が結果を確認する必要がある場合は、永続的な公開証明ページがある認証済み抽選を実行します。
ローカルで実行する(stdio)
git clone https://github.com/namewheel/mcp && cd mcp
npm install && npm run build
node dist/stdio.js
Docker を使う場合:
docker build -t namewheel-mcp .
docker run -i --rm namewheel-mcp
お使いのマシン上で実行される処理:
- 当選者の抽選(
spin_wheel):このプロセス内の Node.js の暗号学的乱数生成器(crypto.randomInt)を使用します。ネットワークは不要です。 - チーム分け(
make_teams)とルーレットのリンク(open_wheel_link):ローカルで計算します。ネットワークは不要です。 - 認証済み抽選の確認(
verify_draw):抽選の公開記録と NameWheel の公開鍵をダウンロードし、SHA-256 コミットメント、HMAC-SHA256 による当選者、および Ed25519 署名をすべてローカルで再計算します。 - 利用制限(
check_plan):ローカルで回答します。
NameWheel API を呼び出すのは certified_draw、freeze_list、my_draws のみです。認証済み抽選は namewheel.org の公開証明ページに掲載されるためです。これらのツールでは、お使いの無料 API キーを使用します。
NAMEWHEEL_API_KEY=nw_live_... node dist/stdio.js
docker run -i --rm -e NAMEWHEEL_API_KEY=nw_live_... namewheel-mcp
n amewheel.org/mcp で、ワンクリックでキーを作成できます。キーがなくてもサーバーは起動し、上記の機能はすべて動作します。
Claude Desktop、Cursor、Cline、Windsurf など、ローカルサーバーを起動するクライアントの場合:
{
"mcpServers": {
"namewheel": {
"command": "node",
"args": ["/absolute/path/to/mcp/dist/stdio.js"],
"env": { "NAMEWHEEL_API_KEY": "nw_live_..." }
}
}
}
env ブロックは任意です。
ツール
| ツール | 機能 | 実行場所 |
|---|---|---|
spin_wheel | リストから 1 人以上の当選者をランダムに選び、チャット内にルーレットを表示します。 | ローカル |
make_teams | 名前をランダムなチームまたは均等な人数のグループに分けます。 | ローカル |
open_wheel_link | 名前が読み込まれた状態でルーレット全体を開く namewheel.org のリンクを作成します。 | ローカル |
verify_draw | コードまたはリンクから認証済み抽選を確認します。当選者を再計算し、コミットメントと Ed25519 署名を検証します。 | 公開記録の取得後、ローカル |
check_plan | この接続でできることと、本日残っている認証済み抽選の回数を確認します。 | ローカル(キーがある場合はプランを読み込みます) |
certified_draw | TrueSpin 認証済み抽選を行います。抽選前に当選者を封印し、公開証明ページ(namewheel.org/v/CODE)に掲載します。 | NameWheel API、お使いのキー |
freeze_list | 抽選前にエントリーリストを公開状態で固定します(namewheel.org/f/CODE)。 | NameWheel API、お使いのキー |
my_draws | お使いの認証済み抽選と固定済みリストを証明リンク付きで表示します。 | NameWheel API、お使いのキー |
認証済み抽選では、タイトル、すべてのエントリー、当選者が証明ページに公開されます。ツールの説明にその旨が記載されているため、アシスタントは実行前に利用者へ知らせます。
このサーバーには、5 つのプロンプト(pick_student、split_teams、certified_draw_with_proof、make_a_decision、verify_a_draw)と 2 つのリソース(認証済み抽選の仕組みを説明する namewheel://truespin と namewheel://limits)もあります。
またはホステッドサーバーを利用する(インストール不要)
同じサーバーが https://mcp.namewheel.org/mcp(Streamable HTTP)で稼働しています。アカウントがない場合、接続ごとに1分あたり30回、1日あたり500回まで呼び出せます。認証付き抽選には、クライアントに表示されるサインインフローを通じて接続した無料のNameWheelアカウントが必要です。
Claude(ウェブ、デスクトップ、モバイル): 設定、コネクター、カスタムコネクターを追加し、https://mcp.namewheel.org/mcp を貼り付けます。
Claude Code
claude mcp add --transport http namewheel https://mcp.namewheel.org/mcp
ChatGPT(ウェブ): 設定、アプリ(開発者モード)を開き、https://mcp.namewheel.org/mcp を追加します。
Codex CLI
codex mcp add namewheel --url https://mcp.namewheel.org/mcp
Cursor: Cursor にインストール、または ~/.cursor/mcp.json に追加します。
{ "mcpServers": { "namewheel": { "url": "https://mcp.namewheel.org/mcp" } } }
VS Code: VS Code にインストール、または .vscode/mcp.json に追加します。
{ "servers": { "namewheel": { "type": "http", "url": "https://mcp.namewheel.org/mcp" } } }
Windsurf の場合は、~/.codeium/windsurf/mcp_config.json に追加します。
{ "mcpServers": { "namewheel": { "serverUrl": "https://mcp.namewheel.org/mcp" } } }
Gemini CLI の場合は、~/.gemini/settings.json に追加します。
{ "mcpServers": { "namewheel": { "httpUrl": "https://mcp.namewheel.org/mcp" } } }
サインインフローを使わずにアカウントを利用するには、キーを Authorization: Bearer nw_live_... または x-api-key: nw_live_... として送信します。
HTTP サーバーを自分で実行する
npm install && npm run build
NAMEWHEEL_API_URL=https://namewheel.org PUBLIC_URL=https://your-host.example MCP_JWT_SECRET=<random hex> node dist/index.js
設定:PORT(デフォルトは8791)、HOST(デフォルトは127.0.0.1)、PUBLIC_URL(クライアントが接続するアドレス。OAuthメタデータに使用)、NAMEWHEEL_API_URL、MCP_JWT_SECRET(アクセストークンに署名)、STATE_DIR(OAuthクライアント、トークン、ゲストの利用回数。デフォルトは/var/lib/namewheel-mcp)。
HTTPサーバーはOAuth 2.1認可サーバーです(PKCE、動的クライアント登録、クライアントIDメタデータドキュメント、RFC 9728および8414メタデータに対応)。アカウント不要のツールではサインインも不要です。アカウントが必要なツールをクライアントが呼び出すと、サーバーは401を返し、クライアントに接続フローが表示されます。接続ページでNameWheel APIキーを入力すると、そのキーに接続が紐付けられます。NameWheelダッシュボード(設定、APIキー)でキーを削除すると、そのキーを使用したすべてのアシスタントとの接続が解除されます。キーで実行できるのは、認証付き抽選、リストの凍結、プランの確認、自分の抽選の一覧表示のみです。アカウント、支払い、データを変更することはできません。
認証付き抽選の仕組み
- NameWheelのサーバーが秘密値を生成し、何かが公開される前に、そのSHA-256フィンガープリントのみを公開します。
- 接続が独自のランダム性を追加します。
- 秘密値を鍵として、そのランダム性とエントリーリストのフィンガープリントからHMAC-SHA256を計算し、当選者を決定します。
- 抽選後に秘密値が公開され、NameWheelのEd25519鍵で記録に署名します(公開鍵)。
- 証明ページには、同じアカウントが同じリストで実行した認証付き抽選がすべて表示されるため、お気に入りが当たるまで再抽選したことが分かります。
仕様:namewheel.org/truespin-spec。独立した検証ツール:namewheel/truespin-verifier。verify_draw は同じチェックを実行します(src/verify.ts)。
チャット内のルーレット
spin_wheel、make_teams、certified_draw、verify_draw は、MCP Appsビュー(ui://namewheel/wheel-v1.html、text/html;profile=mcp-app)を開きます。これは widget/wheel.html にある単一の自己完結型HTMLファイルで、外部スクリプト、フォント、リクエストは使用しません。MCP Appsに対応していないクライアントでは、同じ結果がテキストで表示されます。
プライバシー
抽選、チーム分け、ルーレットのリンクに名前が保存されることはありません。認証付き抽選と凍結リストは、ウェブサイトと同様にNameWheelに保存され、証明ページで公開されます。ホステッドサーバーは、アカウントなしの呼び出しをIPアドレスで計測し、リクエストログ(ツール、エントリー数、クライアント名、アドレス、結果。名前は記録しません)を30日間保存します。ポリシー:namewheel.org/privacy。
ライセンス
MIT。NameWheelおよびTrueSpinはOutline Technologies LLCの名称です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。