checking-member-access
Explains what a member or a role can do in a PostHog project, using the access control MCP tools. Use when the user asks what someone can see or edit, who can…
Creates and launches PostHog surveys through MCP, including NPS/CSAT popovers, hosted feedback forms, and headless surveys. Guides survey type selection, audience targeting, draft review, and launch readiness. Use when asked to create a survey or form, or before calling
$ npx -y skills add posthog/posthog --skill creating-surveys --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/creating-surveysContext preview
The summary Claude sees to decide when to auto-load this skill.
Creates and launches PostHog surveys through MCP, including NPS/CSAT popovers, hosted feedback forms, and headless surveys. Guides survey type selection, audience targeting, draft review, and launch readiness. Use when asked to create a survey or form, or before calling
name: creating-surveys description: > Creates and launches PostHog surveys through MCP, including NPS/CSAT popovers, hosted feedback forms, and headless surveys. Guides survey type selection, audience targeting, draft review, and launch readiness. Use when asked to create a survey or form, or before calling survey-create. For investigating an existing survey's delivery or responses, use debugging-surveys instead.
Create a useful draft from the user's goal, then verify its audience and delivery before launch. The workflow can run through MCP without opening the survey editor.
Infer the name, purpose, and questions from the request. Ask only for missing information that changes who receives the survey or how it is delivered.
| User's goal | Survey type | Delivery requirement | | --------------------------------------- | ----------------- | ---------------------------------------------------- | | Feedback inside an app | `popover` | A supported PostHog SDK with surveys enabled | | Always-available feedback button | `widget` | SDK support and a widget configuration | | A shareable hosted form | `external_survey` | A hosted survey link; no in-app targeting | | A custom form built in application code | `api` | The app renders questions and captures survey events |
Prefer one to three questions unless the user requests more. Use a rating plus an optional open question for NPS/CSAT, or choice questions with at least two choices. Inspect the current tool schema for question types, scales, branching, and translations instead of guessing their JSON shapes. Minimal starting points are in [examples](references/examples.md).
Survey names, questions, and appearance text are public content. Do not copy private customer details into them without making that visibility clear first.
Resolve existing event and flag identifiers before using them. A URL condition does not define a person or cohort audience.
targeting. Groups are alternative rules; properties within a group must all match. Preserve the intended audience when translating the request.
targeting. Explain the restriction and offer a supported static snapshot or another equivalent audience definition. A snapshot does not update with the original cohort. Get agreement before making that tradeoff; never drop a rule or broaden the audience to make a failed request pass.
targeting flags. Do not attach those fields to a hosted form.
the organization's white-labelling entitlement (Enterprise). Do not infer it from a request for custom colors. Verify entitlement before setting it. `surveyPopupDelaySeconds` must be non-negative.
substitute for omission; question fields and nested objects have different nullability rules.
Call `posthog:survey-create` with the resolved configuration. Omit `start_date` for a draft. If the user already asked for immediate launch, continue through the readiness check and launch without asking for the same approval again.
Keep the returned survey `id`. Subsequent survey tools use `id`, not a question ID, feature flag ID, or survey name.
Read the saved survey with `posthog:survey-get`. Review the questions, type, audience, schedule, response limit, and branding with the user. Show the MCP survey app when the client supports it; otherwise give a concise text review. Always include the returned `_posthogUrl`. A saved configuration is not evidence that an in-app popup has rendered successfully.
For changes, call `posthog:survey-update` after fetching the saved survey. Questions, conditions, appearance, targeting, and translations may replace nested values. Preserve unchanged fields and existing question IDs, which link questions to collected responses. Omit IDs only for new questions.
Before `posthog:survey-launch`, confirm:
existing survey, unarchive it or clear/extend its end date only as authorized.
supports the requested features. Event-triggered surveys need the actual triggering event in the app. Creating an event name in configuration does not instrument that event.
capture. Creating and launching the definition does not implement that code.
Use `posthog:survey-launch` with `id`, then verify the returned state. Report whether the survey is a draft, launched, or awaiting an SDK/setup step. For hosted forms, return a verified public form URL when available; `_posthogUrl` is the management page and is not a respondent link.
Use `posthog:survey-stats` or `posthog:surveys-responses-list` to check subsequent activity. Zero responses immediately after launch do not prove delivery failed. For a survey that should have been shown, follow `debugging-surveys`.
Read the validation field and reason before retrying. For appearance failures, check branding entitlement and the supplied appearance fields. For targeting failures, verify cohort support and rule structu
:hedgehog: PostHog is the leading platform for building self-driving products. Our developer tools – AI observability, analytics, session replay, flags, experiments, error tracking, logs, and more – capture all the context agents need to diagnose problems, uncover opportunities, and ship fixes. Steer it all from Slack, web, desktop, or the MCP.
Repo: posthog/posthog
Explains what a member or a role can do in a PostHog project, using the access control MCP tools. Use when the user asks what someone can see or edit, who can…
Analyze the most expensive users in AI observability and explain why they cost so much. Use when the user asks about top spenders, expensive users, per-user…
Author continuously-running online evaluations in PostHog AI observability, grounded in real failure modes you've identified. Use when the user wants…
Find where an AI/LLM application is failing in production and surface the failure patterns, working from real traces. Use when someone wants to understand…
Investigate AI observability clusters — understand usage patterns in AI/LLM traffic, compare cluster behavior, compute cost/latency metrics, and drill into…
Investigate LLM spend in PostHog — total cost over time, cost by model, provider, user, trace, or custom dimension, token and cache-hit economics, and cost…