simulate-new-user
by posthog
Send synthetic first-time-visitor traffic to a URL and confirm that PostHog $pageview events fire. Use when a customer wants to verify that anonymous visitor…
npx skills add https://github.com/posthog/posthog --skill simulate-new-userSimulate new-user traffic
Drives a fresh browser context for each visit (no cookies, no localStorage), goes to the given URL, scrolls a bit, and reports which PostHog events fired. Each visit looks to PostHog like a brand-new anonymous visitor.
When to use
- Confirm
$pageviewfires on the first visit (no cookies present). - Confirm an anonymous
distinct_idis generated and a PostHog request is sent within a few seconds of page load. - Reproduce "events not showing up for new users" reports.
How to invoke
Call the simulate_new_user MCP tool with:
url(required) — the page to visit, e.g.https://example.com/pricing.visits(default3) — number of fresh-context visits.interval(default5.0) — seconds between visits.posthog_host(defaulthttps://us.i.posthog.com) — set tohttps://eu.i.posthog.comfor the EU cloud, or your self-hosted host (e.g.https://ph.example.com).
Each visit takes ~10s of Playwright time plus the interval, so plan accordingly.
Interpreting the result
The tool returns a structured summary:
{
"run_id": "a1b2c3d4",
"scenario": "new-user",
"total_visits": 3,
"posthog_requests": 6,
"posthog_requests_ok": 6,
"events_by_type": { "$pageview": 3, "$autocapture": 3 },
"pageviews": 3,
"errors": [],
"verified": true,
}
verified: truemeans at least one$pageviewwas captured per visit and no errors occurred — the new-user flow works.verified: falsewithpageviews: 0means PostHog isn't firing pageviews. Runcheck_posthog_loadingnext to see whether the snippet is even loaded.posthog_requests_ok < posthog_requestsmeans PostHog returned non-2xx responses. Check the project's ingestion limits and api_host configuration.