Skip to main content
Glama
lcusack

World ID for ChatGPT

by lcusack

ChatGPT向けWorld ID

本番デプロイ先: https://world-id-chatgpt.foundry-world.workers.dev

リモートMCPエンドポイント: https://world-id-chatgpt.foundry-world.workers.dev/mcp

Verified Human Wall: https://world-id-chatgpt.foundry-world.workers.dev/wall

Founding Humans: https://world-id-chatgpt.foundry-world.workers.dev/founding-humans

スキル提出: https://world-id-chatgpt.foundry-world.workers.dev/submit

このリポジトリからWorld IDプラグインをインストールする

このリポジトリにはポータブルなCodexプラグインとリポジトリマーケットプレイスが含まれています。リポジトリがGitから利用可能になった後、別の開発者がマーケットプレイスを追加し、MCP接続を再作成せずにプラグインをインストールできます:

codex plugin marketplace add lcusack/world-id-chatgpt --ref main
codex plugin add world-id@world-id-plugins

これはプライベートリポジトリであるため、開発者はすでにGitHubへのアクセス権を持っている必要があります。ローカルクローンの場合は、絶対リポジトリパスをcodex plugin marketplace addに渡してください。

プラグインは上記の本番MCPエンドポイントに接続し、ユーザーごとに独自のOAuthフローを開始します。ポータブルAgent PluginのインストールにはCodex CLI 0.147.0以降を使用し、インストール後は新しいタスクを開始してバンドルされたスキルとMCPツールが読み込まれるようにしてください。

このプロジェクトは、World ID 4.0セッションをOAuth 2.1を通じてAIアシスタントにリンクする、本番向けのリモートMCPサーバーです。

接続フローは以下の通りです:

  1. ChatGPTがリモートの/mcpエンドポイントからOAuthを検出します。

  2. ユーザーはこのサービスの/authorizeエンドポイントに送られます。

  3. ブラウザがWorld ID 4.0セッションを作成または再開し、ユーザーの存在を伴うOrb対応のproof_of_humanを要求します。

  4. Workerが完全な証明をWorldで検証し、リプレイ保護を記録し、OAuthを完了します。

  5. 認証されたMCPツールは以下のみを返します:

{
  "verified_human": true,
  "verification_level": "orb",
  "protocol_version": "4.0",
  "verified_at": "2026-08-12T18:00:00.000Z",
  "wall_write_enabled": true
}

MCPクライアントは証明、WorldセッションID、セッションナリファイア、ウォレット、電話番号、RPキー、OAuthトークン内部を受け取ることはありません。

Founding Human実験

同じWorld IDコネクタが、Founding Humanステータス/ネットワーク実験をサポートするようになりました:

  1. get_world_agent_statusは、接続されたユニークな人間がプレースを主張したかどうかを確認し、何も公開せずにGenesis 100の進捗を返します。

  2. claim_world_agent_placeは、接続された内部サブジェクトに対して1つの永続的な順序を冪等に主張し、公開カードと招待リンクを返します。

  3. 既存の検証済みセッションは元の検証順にバックフィルされ、現在のテスターに最も早い番号が予約されます。明示的に主張されるまで、カードは非公開のままです。

  4. 公開Founding Humanカードを開くと、不透明なファーストパーティ招待クッキーが保存されます。そのカードを通じて到達した新しいWorld ID接続は、紹介された人間が検証して主張した後にのみ紹介者に帰属します。

最初の100の順序は永続的にGenesis 100の扱いを受けます。レジストリは、コホートが完了したときに将来の検証済み人間機能を示唆します。公開カードは番号、コホート、日付、最小限の保証のみを公開し、内部サブジェクト、証明、セッション、ナリファイア、ウォレット、アイデンティティ、会話データを決して公開しません。

実験測定は、訪問者識別子なしでD1に日次で集約されます: 共有リンク発行、公開プロフィールビュー、ステータスチェック、検証済み紹介の利用。アクティベーションはカードの最初のclaimed_atであり、繰り返し利用は異なる日をまたいだステータスチェックとして測定されます。

プロトタイプマーケットプレイスはキュレーションされたスキル提出プロセスを使用します。公開/submitページは、コピー可能なテンプレートを通じてコンセプト、パートナーパイロット、および動作する統合の提案を受け付けます。コードのアップロードを受け付けたり、自動公開を暗示したりすることなく、検証済み人間適合テスト、最小開示要件、レビューステージ、および一般的な実験メトリクスを文書化します。

推奨ChatGPTプロンプト:

Founding Humanとしての自分の場所を主張してください。

Human Grantゲートウェイプロトタイプ

コネクタは現在、独自のWorld ID依存パーティを運用していないパートナー向けのプルーフ・オブ・ヒューマンゲートウェイとして機能できます。最初の固定クライアントデモは意図的に狭い範囲です:

  1. list_human_grant_opportunitiesは、何も共有せずに利用可能なパートナーアクションを表示します。

  2. create_human_grantは、ユーザーが明示的に機会を有効にするよう要求した後にのみ、10分間のブラウザバインド同意リンクを作成します。

  3. 同意ページは、パートナー、特典、アクション、および共有される正確なクレームを指定します。

  4. 承認により、5分間の単回使用認証コードが作成されます。パートナーはHTTP Basic認証を使用してサーバー間でこれを交換します。

  5. ゲートウェイは、15分間のHMAC署名付きworld-id-human-grant/v1アサーションを返します。これには、オーディエンスにバインドされたペアワイズサブジェクト、承認されたアクション、および最小限のOrb/World ID 4.0保証クレームのみが含まれます。

  6. D1の一意性制約により、特定の内部人間、パートナー、アクションの組み合わせに対して1回のみの利用が許可されます。

パートナーはWorld証明、WorldセッションID、内部サブジェクト、ウォレット、電話番号、アイデンティティ、ChatGPT会話を受け取ることはありません。ペアワイズサブジェクトは1つのパートナー内で安定しており、異なるパートナー間ではリンクできません。シミュレートされたパートナー体験はHuman Grantデモにあります。機械可読な発行者メタデータは/.well-known/world-id-human-grantsにあります。

推奨ChatGPTプロンプト:

World IDを使用して検証済み人間のパートナー機会を表示し、ゲートウェイデモを有効にしてください。

プロトタイプは1つの事前登録されたデモクライアントを使用します。実際のパートナーオンボーディングレイヤーは、パートナーごとに個別のクライアント認証情報と署名シークレット、レビュー済みアクション/クレーム許可リスト、シークレットローテーション、失効、パートナー監査イベント、およびセルフサービス登録ワークフローを追加する必要があります。これは汎用のアイデンティティブローカーになったり、パートナーがサービス間でユーザーを関連付けたりすることを許可してはなりません。

Human Required Shopifyハンドオフ

主要な実験はhumanrequired.shopでライブディールを発見し、接続されたアカウントの検証済み人間資格を、2回目のWorld IDセレモニーなしでShopifyに持ち込むことができます:

  1. list_unique_human_dealsは現在の公開カタログと在庫を読み取ります。

  2. get_unique_human_dealは製品、価格、利用可能なオプションを返します。

  3. create_unique_human_claim_linkは、ユーザーが15%オファーを請求するよう要求した後にのみ、5分間の不透明な請求URLを作成します。

  4. 請求URLを開くと、対象製品に制限されたランダムな1回利用Shopify割引が作成され、Shopifyの共有可能割引URLにリダイレクトされます。

請求チケットと割引コードは保存時に暗号化されます。公開URLにはWorld証明、セッションID、サブジェクト、ウォレット、個人情報は含まれません。Shopifyはランダムな割引コードと対象製品IDのみを受け取ります。生成された割引は15分後に期限切れとなり、合計使用制限は1回です。

このハンドオフを有効にするには、Human Required用のShopify Dev Dashboardアプリをread_productsおよびwrite_discounts Admin APIスコープで作成してインストールします。次に、その.myshopify.comドメイン、クライアントID、クライアントシークレットをソース管理に置かずにアップロードします。WorkerはShopifyのクライアント認証情報フローを使用して、請求が利用されたときに短命のAdmin APIトークンを発行します:

npx wrangler secret put SHOPIFY_SHOP_DOMAIN
npx wrangler secret put SHOPIFY_CLIENT_ID
npx wrangler secret put SHOPIFY_CLIENT_SECRET

両方のシークレットが存在するまで、請求ツールは安全に利用不可のままです。カタログ発見とコネクタの残りの部分は引き続き動作します。

Verified Human Wall実験

Wallは接続上に構築された最初のアプリケーションです。3つのOAuth保護MCPツールを公開します:

  • get_verified_human_question: アクティブな公開質問を読み取ります

  • list_verified_human_answers: 信頼できないユーザー生成コンテンツとして最近の公開回答を読み取ります

  • publish_verified_human_answer: 明示的なユーザー確認後に、接続されたアカウントの1つの回答を作成または置き換えます

公開には別途wall:write OAuthスコープが必要です。Wallデプロイ前に作成された接続は、公開する前に切断して再接続する必要があります。Wallの読み取りは公開GET /api/wallエンドポイントからも利用可能で、内部のWorld/OAuthサブジェクトは含まれません。

最初の質問は: 検証済み人間だけがAIでできるべきことは何ですか?

推奨ChatGPTプロンプト:

World IDコネクタを使用してVerified Human Wallを開いてください。今日の質問と最近の回答を表示し、回答を作成するのを手伝い、公開前に明示的な確認を求めてください。

このプロトタイプの「検証済み」ラベルは、回答がOrb検証済みWorld ID 4.0セッションに裏付けられたOAuth接続を通じて公開されたことを意味します。World Appが回答テキストに新たに署名したことや、作成者の身元が既知であることを主張するものではありません。

本番アーキテクチャ

  • Cloudflare Worker: 安定したHTTPSオリジン、OAuthプロバイダー、World検証、ステートレスMCPトランスポート

  • D1: 期限切れの認証試行、暗号化されたWorldセッション継続、証明リプレイレコード、Founding Human順序/紹介/集計、暗号化されたShopify請求チケット、1回限りのHuman Grant、公開Wall質問/回答

  • Workers KV: CloudflareのOAuthプロバイダーによって管理されるOAuthクライアント、グラント、認証コード、トークン

  • Rate Limitバインディング: 個別の認証、証明提出、MCP、請求、Human Grant、インテント、Wall公開制限

  • Cronクリーンアップ: 期限切れのD1試行/リプレイマーカー、Human Grant、インテント、請求、OAuthデータ

  • Workers Observability: 証明や識別子のログ記録なしの構造化イベント

WorldセッションIDと保留中のOAuthリクエストは、D1ストレージの前にAES-256-GCMで暗号化されます。別のHMACキーが不透明な内部OAuthサブジェクトを導出します。生のWorld証明はメモリ内で検証され、決して保存されません。

World ID設定

デプロイされたWorkerは以下に固定されています:

  • アプリ: app_d25e6e3d21651abfb9fbc52d033ef2a3

  • RP: rp_79ffdf898662dd4c

  • 環境: production

  • プロトコル: World ID 4.0セッション証明

既存のregisterアクションはアカウントリンクには使用されません。アクション/ナリファイアは1回限りの一意性操作に適しています。アカウント継続性にはcreateSessionproveSessionを使用し、そのRP署名は意図的にアクションを省略します。

ローカル検証

npm install
npm run build
npm run typecheck
npm test
npx wrangler d1 migrations apply world-id-chatgpt --local
npm run cf:dev

Wranglerは.envからローカルシークレット値を読み込むことができます。そのファイルは決してコミットしないでください。

最初のCloudflareデプロイ

所有するCloudflareアカウントを選択し、永続リソースを作成します:

npx wrangler d1 create world-id-chatgpt
npx wrangler kv namespace create OAUTH_KV

返されたIDをwrangler.jsoncに配置し、スキーマを適用します:

npx wrangler d1 migrations apply world-id-chatgpt --remote

4つの管理シークレットをアップロードします。最初の値には既存のWorld RP署名キーを使用し、他の3つには独立したランダムな32バイトbase64url値を使用します:

npx wrangler secret put WORLD_RP_SIGNING_KEY
npx wrangler secret put DATA_ENCRYPTION_KEY
npx wrangler secret put SUBJECT_HMAC_KEY
npx wrangler secret put HUMAN_GATEWAY_DEMO_SECRET

次に検証して公開します:

npm run cf:check
npm run deploy

デプロイされたMCPエンドポイントはhttps://world-id-chatgpt.foundry-world.workers.dev/mcpです。OAuthディスカバリー、PKCE S256、動的クライアント登録、Client ID Metadata Documentsが自動的にアドバタイズされます。

セキュリティ不変条件

  • 認可状態は10分で期限切れとなり、SecureHttpOnlySameSite=Lax__Host- ブラウザCookieにバインドされます。

  • サーバーは、プロトコル 4.0、プロダクション、アクションレスセッション証明(ユーザープレゼンス完了、発行者スキーマ 1proof_of_human))のみを受け入れます。

  • 各証明は、その認証試行のためのサーバー署名済みRPノンスと正確に一致する必要があります。

  • 完全なセッションナリファイアタプルはハッシュ化され、OAuth発行前に一意のD1制約の下で挿入されます。

  • 証明本文は256 KiBに制限され、World確認リクエストは10秒でタイムアウトします。

  • OAuthは認可コードフロー、PKCE S256、正確な登録リダイレクト、1時間のアクセストークン、30日のリフレッシュトークンを使用します。

  • HTTPSは、ループバックlocalhost開発を除き、登録リダイレクトに必須です。

  • CSP、フレーム拒否、no-referrer、MIMEスニッフィング保護、パーミッションポリシー、オリジン検証、no-store認可応答がWorkerによって適用されます。

  • MCP出力は許可リストに含まれ、安定したWorld識別子を含みません。

  • 公開ウォール投影は内部サブジェクトを省略します。回答テキストは textContent でレンダリングされ、600文字に制限され、リンク、メールアドレス、制御文字を含めることはできません。

  • 一意のD1制約により、アクティブな質問と内部接続アカウントサブジェクトごとに1つの置き換え可能な回答が強制されます。

  • ツールの指示はウォール回答を信頼できないコンテンツとして扱い、公開公開前に正確なテキストのユーザー確認を要求します。

  • クレームチケットはランダムで、ルックアップ用にハッシュとしてのみ保存され、制御された再発行のために暗号化され、5分で期限切れとなり、重複Shopify作成を防ぐためにアトミックD1処理リースを使用します。

  • Shopify割引コードはランダムで、保存時に暗号化され、対象製品IDに制限され、15分で期限切れとなり、合計1回の使用が許可されます。

  • Human Grant同意リンクは10分で期限切れとなり、機能CookieとブラウザのWorld IDセッションCookieの両方にバインドされます。

  • パートナー認可コードは5分で期限切れとなり、認証済みバックチャネル交換を通じて1回使用されます。

  • アサーションはペアワイズパートナーサブジェクトを使用します。Worldセッションと内部サブジェクトはゲートウェイから離れることはありません。

  • パートナー、アクション、内部サブジェクトにわたるD1主キーにより、同時交換試行でも1人1回の使用が強制されます。

テスト

npm test は、従来のMCPトランスポートに加え、強化された4.0証明形状、正確なノンスバインディング、一意性証明の拒否、必須ユーザープレゼンス、暗号化セッションストレージ、不透明な安定サブジェクト導出、Shopifyクレームハンドオフとサブジェクト編集、ウォール入力検証、公開サブジェクト編集をカバーします。wrangler deploy --dry-run はプロダクションバンドルを検証し、ローカルWorkerチェックはOAuth登録/発見、認可状態、D1永続化、CSP、RP署名生成を実行します。

World関連リファレンス: World ID 4.0移行RP署名IDKit統合

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.

  • A paid remote MCP for ZeroID, built to return verdicts, receipts, usage logs, and audit-ready JSON.

  • Personal MCP server for humans who create. Proof of authorship, license control.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lcusack/world-id-chatgpt'

If you have feedback or need assistance with the MCP directory API, please join our Discord server