Reviewer demo guide
Use this handoff when a directory reviewer, integration partner, or design partner needs to test HollyHR without touching a real customer tenant.
The reviewer tenant must be synthetic, resettable, and usable without a manual signup loop. Do not ask reviewers to complete MFA, SMS verification, email verification, or customer onboarding before they can test the API/MCP surface.
Create the tenant
The synthetic Sandbox already exists. Rotate its non-expiring OAuth backing actor through the protected exact-current-main workflow:
Code
The workflow derives the production target proof from Vercel inside the
protected environment. It creates one read-only backing actor, revokes older
same-name actors and publishes a content-free receipt. The public connector URL
is https://app.hollyhr.com/api/mcp; the fixed fictional workspace remains
https://sandbox.hollyhr.com.
The current production actor and fixed login configuration were prepared by
protected workflow run 30589683447 on 2026-07-30 and released at
9e2322fa9df42dcb0ff33e0afb3213052a673b6c. The actor is non-expiring, has
exactly the seven approved read scopes, and replaced one prior same-name actor.
Protected live-smoke run 30589684851 proved both supported MCP protocol eras;
its temporary credential was revoked after the smoke. The fixed login also
completed DCR, PKCE, browser consent, token exchange, an OpenAI Responses
remote-MCP tool scan and whoami, and an ephemeral Codex CLI whoami call.
Claude custom-connector proof remains a user-present submission step.
demo-tenant.json is the non-secret reviewer manifest. It includes:
- the concrete API and MCP endpoints;
- the endpoint template for directory forms;
- the seeded scenario name and reset/reseed evidence;
- the reviewer login model and requested personas;
- safe starter prompts for Claude, ChatGPT, and generic MCP hosts;
- commands for TTFC and submission-pack generation.
- the public status page URL for service-health checks during review.
The directory reviewer signs in at
https://app.hollyhr.com/mcp-reviewer-login using the fixed email and
high-entropy access code supplied directly in the provider portal. The login
has no MFA, inbox loop or automatic expiry. Its host, identity and Sandbox
workspace are all server-bound; none can be selected in the request. Do not
commit the credential or paste it into model prompts.
Prove time to first call
Run the smoke from the generated env file:
Code
Attach ttfc-evidence.json to the internal submission bundle. It proves:
- REST auth,
/me, people, and metadata; - MCP protected-resource metadata and unauthenticated challenge discovery;
- authenticated
GET /api/mcpreturning405 Method Not Allowed; - MCP initialize,
tools/list, andwhoami; - request IDs and rate-limit headers where returned by the live endpoint.
Generate the submission pack
Build the reviewer and partner pack:
Code
The generated files are local evidence outputs:
Code
They are intentionally not committed. The tracked source of truth is
docs/api/developer-platform-submission-evidence.json.
Host-specific blockers
Server-side Claude API, Cursor, and generic MCP clients can use the developer-preview bearer-token flow when the token is stored outside prompts and browser code.
ChatGPT app/connector submission and public connector directories require the
production OAuth path to be live and proven. That OAuth and remote-MCP path is
now proven through OpenAI Responses and Codex. Do not submit if protected
resource metadata regresses to an empty authorization_servers array; complete
the remaining Claude custom-connector check while the founder is present.
The initial directory listing is read-only. Its backing actor has no write scopes, and disabled mode removes write tools, prompts and advertised write scopes as well as denying execution. Governed writes are a separate later listing revision after their own live client proof.
Starter prompts
Use these examples when a reviewer asks what to try first. They are written as human review tasks rather than secret test commands, and each one exercises a specific safety property of the hosted MCP server.
Code
Code
Code
Code