{"codex":{"first_check":{"header":"Authorization: Bearer todo-user-token","method":"GET","url":"https://api.badbank.ai/api/v1/whoami"},"install_command":"export TODO_MCP_TOKEN=\"todo-user-token\"\ncodex mcp add todo-playground --url https://mcp.badbank.ai/mcp --bearer-token-env-var TODO_MCP_TOKEN","instructions":["Use the REST OpenAPI document for network calls.","Send the bearer token in the Authorization header for every /api/v1 request.","Use the MCP config for the hosted HTTP MCP endpoint; set the named bearer-token environment variable before starting Codex.","For Clerk production mode, sign in once and mint a long-lived xwllm install token."]},"display_name":"Todo Playground","mcp":{"mcpServers":{"todo-playground":{"bearer_token_env_var":"TODO_MCP_TOKEN","url":"https://mcp.badbank.ai/mcp"}}},"mode":"badbank-dev","name":"todo-playground","production_clerk_shape":{"server_requirement":"Verify Clerk JWT before minting; verify xwllm token and live entitlement on every tool call.","stripe_requirement":"Resolve Clerk user/workspace to Stripe customer or entitlement before paid operations.","token_source":"Clerk sign-in -> short-lived Clerk JWT -> server-issued xwllm token"},"rest":{"auth":{"header":"Authorization: Bearer todo-user-token","token":"todo-user-token","type":"bearer"},"base_url":"https://api.badbank.ai","openapi_url":"https://api.badbank.ai/openapi.json","plugin_manifest_url":"https://api.badbank.ai/.well-known/ai-plugin.json"},"schema":"xw.codex.install-pill.v1"}