World ID for ChatGPT
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 서버입니다.
연결 흐름은 다음과 같습니다:
ChatGPT가 원격
/mcp엔드포인트에서 OAuth를 발견합니다.사용자는 이 서비스의
/authorize엔드포인트로 전송됩니다.브라우저가 World ID 4.0 세션을 생성하거나 재개하고, 사용자 존재 여부가 포함된 Orb 기반
proof_of_human을 요청합니다.Worker가 World로 완전한 증명을 검증하고, 재생 방지를 기록하며, OAuth를 완료합니다.
인증된 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, 세션 nullifier, 지갑, 전화번호, RP 키 또는 OAuth 토큰 내부를 절대 수신하지 않습니다.
창립자 실험(Founding Human experiment)
동일한 World ID 커넥터가 이제 창립자 상태/네트워크 실험을 지원합니다:
get_world_agent_status는 연결된 고유 인간이 자리를 차지했는지 확인하고, 아무것도 게시하지 않고 Genesis 100 진행 상황을 반환합니다.claim_world_agent_place는 연결된 내부 주체에 대해 하나의 영구 서수를 멱등적으로 청구하고, 공개 카드와 초대 링크를 반환합니다.기존의 확인된 세션은 원래 확인 순서대로 백필되어, 현재 테스터에게 가장 이른 번호를 예약합니다. 카드는 명시적으로 청구될 때까지 비공개로 유지됩니다.
공개 창립자 카드를 열면 불투명한 퍼스트파티 초대 쿠키가 저장됩니다. 해당 카드를 통해 도달한 새로운 World ID 연결은 추천된 인간이 확인 및 청구한 후에만 초대자에게 귀속됩니다.
처음 100개의 서수는 영구적으로 Genesis 100 처리를 받습니다. 레지스트리는 코호트가 완료되면 미래의 확인된 인간 기능을 암시합니다. 공개 카드는 번호, 코호트, 날짜 및 최소한의 보증만 노출하며, 내부 주체, 증명, 세션, nullifier, 지갑, 신원 또는 대화 데이터를 절대 노출하지 않습니다.
실험 측정은 방문자 식별자 없이 D1에서 매일 집계됩니다: 공유 링크 발행, 공개 프로필 조회, 상태 확인 및 확인된 추천 사용. 활성화는 카드의 첫 번째 claimed_at입니다. 반복 사용은 다른 날짜에 걸친 상태 확인으로 측정됩니다.
프로토타입 마켓플레이스는 선별된 스킬 제출 프로세스를 사용합니다. 공개 /submit 페이지는 복사 가능한 템플릿을 통해 개념, 파트너 파일럿 및 작업 통합 제안을 수락합니다. 코드 업로드를 수락하거나 자동 게시를 암시하지 않고, 확인된 인간 적합성 테스트, 최소 공개 요구 사항, 검토 단계 및 일반적인 실험 지표를 문서화합니다.
제안된 ChatGPT 프롬프트:
Claim my place as a Founding Human.
인간 그랜트 게이트웨이 프로토타입(Human Grant gateway prototype)
커넥터는 이제 자체 World ID 신뢰 당사자(relying party)를 운영하지 않는 파트너를 위한 인간 증명 게이트웨이 역할을 할 수 있습니다. 첫 번째 고정 클라이언트 데모는 의도적으로 좁습니다:
list_human_grant_opportunities는 아무것도 공유하지 않고 사용 가능한 파트너 액션을 보여줍니다.create_human_grant는 사용자가 명시적으로 기회를 활성화하도록 요청한 후에만 10분 동안 유효한 브라우저 바운드 동의 링크를 생성합니다.동의 페이지는 파트너, 혜택, 액션 및 공유되는 정확한 클레임을 명명합니다.
승인은 5분 동안 유효한 단일 사용 인가 코드를 생성합니다. 파트너는 HTTP Basic 인증을 사용하여 서버 간에 이를 교환합니다.
게이트웨이는 청중에 바운드된 쌍별 주체(pairwise subject), 인가된 액션 및 최소한의 Orb/World ID 4.0 보증 클레임만 포함하는 15분 동안 유효한 HMAC 서명된
world-id-human-grant/v1어설션을 반환합니다.D1 고유성 제약 조건은 주어진 내부 인간, 파트너 및 액션에 대해 단 한 번의 사용만 허용합니다.
파트너는 World 증명, World 세션 ID, 내부 주체, 지갑, 전화번호, 신원 또는 ChatGPT 대화를 절대 수신하지 않습니다. 쌍별 주체는 하나의 파트너 내에서 안정적이며 다른 파트너 간에는 연결할 수 없습니다. 시뮬레이션된 파트너 경험은 Human Grant 데모에서 확인할 수 있습니다. 기계가 읽을 수 있는 발행자 메타데이터는 /.well-known/world-id-human-grants에 있습니다.
제안된 ChatGPT 프롬프트:
Use World ID to show me verified-human partner opportunities, then activate the gateway demo.
프로토타입은 하나의 사전 등록된 데모 클라이언트를 사용합니다. 실제 파트너 온보딩 계층은 파트너별로 별도의 클라이언트 자격 증명 및 서명 비밀, 검토된 액션/클레임 허용 목록, 비밀 순환, 폐기, 파트너 감사 이벤트 및 셀프 서비스 등록 워크플로우를 추가해야 합니다. 일반적인 ID 브로커가 되거나 파트너가 서비스 전반에서 사용자를 상호 연결할 수 있도록 해서는 안 됩니다.
Human Required Shopify 전환(Human Required Shopify handoff)
주 실험은 humanrequired.shop에서 실시간 거래를 발견하고, 두 번째 World ID 인증 절차 없이 연결된 계정의 확인된 인간 자격을 Shopify로 전달할 수 있습니다:
list_unique_human_deals는 현재 공개 카탈로그와 재고를 읽습니다.get_unique_human_deal은 제품, 가격 및 사용 가능한 옵션을 반환합니다.create_unique_human_claim_link는 사용자가 15% 할인을 청구하도록 요청한 후에만 5분 동안 유효한 불투명한 청구 URL을 생성합니다.청구 URL을 열면 무작위의 단일 사용 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 experiment)
월은 연결 위에 구축된 첫 번째 애플리케이션입니다. 세 가지 OAuth 보호 MCP 도구를 노출합니다:
get_verified_human_question: 활성 공개 질문을 읽습니다.list_verified_human_answers: 최근 공개 답변을 신뢰할 수 없는 사용자 생성 콘텐츠로 읽습니다.publish_verified_human_answer: 명시적인 사용자 확인 후 연결된 계정의 하나의 답변을 생성하거나 교체합니다.
게시에는 별도의 wall:write OAuth 범위가 필요합니다. 월 배포 전에 생성된 연결은 연결을 끊고 다시 연결해야 게시할 수 있습니다. 월 읽기는 공개 GET /api/wall 엔드포인트에서도 가능하며, 이 엔드포인트는 내부 World/OAuth 주체를 포함하지 않습니다.
첫 번째 질문은: 확인된 인간만이 AI로 무엇을 할 수 있어야 합니까?
제안된 ChatGPT 프롬프트:
Use the World ID connector to open the Verified Human Wall. Show me today’s question and recent answers, help me write my response, then ask for my explicit confirmation before publishing it.
이 프로토타입의 "확인됨" 레이블은 답변이 Orb로 확인된 World ID 4.0 세션에 의해 지원되는 OAuth 연결을 통해 게시되었음을 의미합니다. World App이 정확한 답변 텍스트를 새로 서명했거나 저자의 신원이 알려져 있다고 주장하지 않습니다.
프로덕션 아키텍처
Cloudflare Worker: 안정적인 HTTPS 오리진, OAuth 제공자, World 확인 및 상태 비저장 MCP 전송
D1: 만료되는 인증 시도, 암호화된 World 세션 연속성, 증명 재생 기록, 창립자 서수/추천/집계, 암호화된 Shopify 청구 티켓, 일회성 Human Grant 및 공개 월 질문/답변
Workers KV: OAuth 클라이언트, 권한 부여, 인가 코드 및 Cloudflare OAuth 제공자가 관리하는 토큰
Rate Limit 바인딩: 별도의 인증, 증명 제출, MCP, 청구, Human Grant, 의도(intent) 및 월 게시 제한
Cron 정리: 만료된 D1 시도/재생 마커, Human Grant, 의도, 청구 및 OAuth 데이터
Workers Observability: 증명 또는 식별자 로깅 없이 구조화된 이벤트
World 세션 ID 및 보류 중인 OAuth 요청은 D1 저장 전 AES-256-GCM으로 암호화됩니다. 별도의 HMAC 키가 불투명한 내부 OAuth 주체를 파생합니다. 원시 World 증명은 메모리에서 확인되고 절대 저장되지 않습니다.
World ID 구성
배포된 Worker는 다음에 고정됩니다:
앱:
app_d25e6e3d21651abfb9fbc52d033ef2a3RP:
rp_79ffdf898662dd4c환경:
production프로토콜: World ID 4.0 세션 증명
기존의 register 액션은 계정 연결에 사용되지 않습니다. 액션/nullifier는 일회성 고유성 작업에 적합하며, 계정 연속성은 createSession 및 proveSession을 사용하며, RP 서명은 의도적으로 액션을 생략합니다.
로컬 검증
npm install
npm run build
npm run typecheck
npm test
npx wrangler d1 migrations apply world-id-chatgpt --local
npm run cf:devWrangler는 .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 --remote4개의 관리 비밀을 업로드하세요. 첫 번째 값에는 기존 World RP 서명 키를 사용하고, 다른 세 개에는 독립적인 무작위 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가 자동으로 제공됩니다.
보안 불변 조건(Security invariants)
인증 상태는 10분 후에 만료되며
Secure,HttpOnly,SameSite=Lax,__Host-브라우저 쿠키에 바인딩됩니다.서버는 프로토콜
4.0, 프로덕션, 액션리스 세션 증명만 허용하며, 사용자 존재 및 발급자 스키마1(proof_of_human)이 완료된 상태여야 합니다.각 증명은 해당 인증 시도에 대해 서버가 서명한 정확한 RP nonce와 일치해야 합니다.
완전한 세션 nullifier 튜플은 해시되어 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 제약 조건은 활성 질문 및 내부 연결 계정 주제당 하나의 교체 가능한 답변을 강제합니다.
도구 지침은 월 답변을 신뢰할 수 없는 콘텐츠로 취급하며, 공개 게시 전에 정확한 텍스트 사용자 확인을 요구합니다.
클레임 티켓은 무작위이며, 조회를 위해 해시로만 저장되고, 통제된 재발급을 위해 암호화되며, 5분 후에 만료되고, 중복 Shopify 생성을 방지하기 위해 원자적 D1 처리 임대를 사용합니다.
Shopify 할인 코드는 무작위이며, 저장 시 암호화되고, 적격 제품 ID로 제한되며, 15분 후에 만료되고, 총 1회 사용을 허용합니다.
Human Grant 동의 링크는 10분 후에 만료되며, 기능 쿠키와 브라우저의 World ID 세션 쿠키 모두에 바인딩됩니다.
파트너 인증 코드는 5분 후에 만료되며, 인증된 백채널 교환을 통해 한 번 소비됩니다.
어설션은 쌍별 파트너 주제를 사용합니다. World 세션 및 내부 주제는 게이트웨이를 벗어나지 않습니다.
파트너, 액션 및 내부 주제에 걸친 D1 기본 키는 동시 교환 시도에서도 일대일-일회-사용을 강제합니다.
테스트
npm test는 레거시 MCP 전송과 강화된 4.0 증명 형태, 정확한 nonce 바인딩, 고유성 증명 거부, 필수 사용자 존재, 암호화된 세션 저장소, 불투명한 안정적 주제 파생, Shopify 클레임 핸드오프 및 주제 삭제, 월 입력 검증, 공개 주제 삭제를 다룹니다. wrangler deploy --dry-run은 프로덕션 번들을 검증하며, 로컬 Worker 검사는 OAuth 등록/발견, 인증 상태, D1 지속성, CSP 및 RP 서명 생성을 실행합니다.
World 참조: World ID 4.0 마이그레이션, RP 서명, IDKit 통합.
This server cannot be installed
Maintenance
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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