Model Context Protocol (MCP)

The PostHog Model Context Protocol (MCP) server enables your AI agents and tools to directly interact with PostHog's products.

Server URL

RegionURL
US (default)https://mcp.posthog.com/mcp
EUhttps://mcp-eu.posthog.com/mcp

Quick install using the PostHog wizard

Besides being able to quickly set up your project using AI, the PostHog Wizard can also install the MCP server directly into Cursor, Claude Code, Claude Desktop, Codex, VS Code and Zed.

Terminal
npx @posthog/wizard mcp add

We're working on adding more supported tools to the wizard. If you're using another option, you can manually install our MCP server with the instructions for your specific client:

Code editors

Platforms

Be mindful of prompt injection – LLMs can be tricked into following untrusted commands, so always review tool calls before executing them.

Using an API key instead of OAuth?

If your MCP client doesn't support OAuth, you can authenticate manually:

  1. Create a personal API key using the MCP Server preset (this scopes access to a specific project)
  2. Add the Authorization: Bearer YOUR_API_KEY header to your MCP configuration

Example for Cursor (add to .cursor/mcp.json):

JSON
{
"mcpServers": {
"posthog": {
"url": "https://mcp.posthog.com/mcp",
"headers": {
"Authorization": "Bearer phx_your_api_key_here"
}
}
}
}
Pinning to a specific organization or project?

If you're building a programmatic integration or want to restrict the MCP session to a specific organization or project, you can pin the context using headers or query parameters.

When you pin the context, the switch-organization and switch-project tools are automatically excluded from the available tool list:

  • When projectId is provided: both switch-organization and switch-project are excluded
  • When only organizationId is provided: only switch-organization is excluded

Headers:

  • x-posthog-organization-id - Pin to a specific organization
  • x-posthog-project-id - Pin to a specific project

Query parameters:

  • organization_id - Pin to a specific organization
  • project_id - Pin to a specific project

Example for Cursor (add to .cursor/mcp.json):

JSON
{
"mcpServers": {
"posthog": {
"url": "https://mcp.posthog.com/mcp",
"headers": {
"Authorization": "Bearer phx_your_api_key_here",
"x-posthog-organization-id": "your_org_id",
"x-posthog-project-id": "your_project_id"
}
}
}
}
Filtering available tools by feature?

You can limit which tools are available by adding a features query parameter to the MCP URL. If no features are specified, all tools are available. When features are specified, only tools matching those features are exposed.

text
https://mcp.posthog.com/mcp?features=flags,dashboards,insights

Available features:

FeatureDescription
workspaceOrganization and project management
actionsAction definitions
activity_logsActivity log viewing
alertsAlert management
annotationsAnnotation management
cohortsCohort management
dashboardsDashboard creation and management
data_schemaData schema exploration
data_warehouseData warehouse management
debugDebug and diagnostic tools
docsPostHog documentation search
early_access_featuresEarly access feature management
error_trackingError monitoring and debugging
eventsEvent and property definitions
experimentsA/B testing experiments
flagsFeature flag management
hog_functionsCDP function management
hog_function_templatesCDP function template browsing
insightsAnalytics insights
llm_analyticsLLM analytics evaluations
promptsLLM prompt management
logsLog querying
notebooksNotebook management
personsPerson and group management
reverse_proxyReverse proxy record management
searchEntity search across the project
sqlSQL query execution
surveysSurvey management
workflowsWorkflow management

Note: Hyphens and underscores are treated as equivalent in feature names (e.g., error-tracking and error_tracking both work).

Example for Cursor (add to .cursor/mcp.json):

JSON
{
"mcpServers": {
"posthog": {
"url": "https://mcp.posthog.com/mcp?features=flags,experiments,insights",
"headers": {
"Authorization": "Bearer phx_your_api_key_here"
}
}
}
}

Available tools

Tools trigger actions on behalf of the user based on the goals and information already in the context of the LLM.

Here's a list of tools we provide:

Actions

ToolPurpose
action-createCreate action
action-deleteDelete action
action-getGet action
action-updateUpdate action
actions-get-allGet all actions

Activity logs

ToolPurpose
activity-logs-listList activity logs

Alerts

ToolPurpose
alert-createCreate alert
alert-deleteDelete alert
alert-getGet alert
alert-simulateSimulate detector on insight
alert-updateUpdate alert
alerts-listList alerts

Annotations

ToolPurpose
annotation-createCreate annotation
annotation-deleteDelete annotation
annotation-retrieveRetrieve annotation
annotations-listList annotations
annotations-partial-updateUpdate annotation

Cohorts

ToolPurpose
cohorts-add-persons-to-static-cohort-partial-updateAdd persons to static cohort
cohorts-createCreate cohort
cohorts-listList all cohorts
cohorts-partial-updateUpdate cohort
cohorts-retrieveGet cohort
cohorts-rm-person-from-static-cohort-partial-updateRemove person from static cohort

Dashboards

ToolPurpose
dashboard-createCreate dashboard
dashboard-deleteDelete dashboard
dashboard-getGet dashboard
dashboard-reorder-tilesReorder dashboard tiles
dashboard-updateUpdate dashboard
dashboards-get-allGet all dashboards

Data schema

ToolPurpose
read-data-schemaExplore the user's events, actions, properties, and property values.
read-data-warehouse-schemaRead core data warehouse schemas and table lists.

Data warehouse

ToolPurpose
view-createCreate saved query
view-deleteDelete saved query
view-getGet saved query
view-listList saved queries
view-materializeMaterialize saved query
view-runRun saved query
view-run-historyGet run history
view-unmaterializeRevert materialization
view-updateUpdate saved query

Debug

ToolPurpose
debug-mcp-ui-appsDebug tool for testing MCP Apps SDK.

Documentation

ToolPurpose
docs-searchSearch the PostHog documentation for information.

Early access features

ToolPurpose
early-access-feature-createCreate early access feature
early-access-feature-destroyDelete early access feature
early-access-feature-listList early access features
early-access-feature-partial-updateUpdate early access feature
early-access-feature-retrieveGet early access feature

Error tracking

ToolPurpose
error-detailsGet the details of an error in the project.
error-tracking-issues-listList error tracking issues
error-tracking-issues-partial-updateUpdate error tracking issue
error-tracking-issues-retrieveGet error tracking issue
list-errorsList errors in the project.
update-issue-statusUpdate the status of an error tracking issue.

Events & properties

ToolPurpose
event-definition-updateUpdate an event definition's metadata.
event-definitions-listList all event definitions in the project with optional filtering.
properties-listGet properties for events or persons.

Experiments

ToolPurpose
experiment-createCreate A/B test experiment with guided metric and feature flag setup
experiment-deleteDelete an experiment by ID.
experiment-getGet details of a specific experiment.
experiment-get-allGet all experiments in the project.
experiment-results-getGet comprehensive experiment results including metrics and exposure data.
experiment-updateUpdate an existing experiment with lifecycle management and restart capability.

Feature flags

ToolPurpose
create-feature-flagCreate feature flag
delete-feature-flagDelete feature flag
feature-flag-get-allGet all feature flags
feature-flag-get-definitionGet feature flag definition
feature-flags-activity-retrieveGet feature flag activity log
feature-flags-copy-flags-createCopy feature flag across projects
feature-flags-dependent-flags-retrieveGet dependent feature flags
feature-flags-evaluation-reasons-retrieveGet feature flag evaluation reasons
feature-flags-status-retrieveGet feature flag status
feature-flags-user-blast-radius-createGet user blast radius
update-feature-flagUpdate feature flag

Function templates

ToolPurpose
cdp-function-templates-listList function templates
cdp-function-templates-retrieveGet function template

Functions

ToolPurpose
cdp-functions-createCreate function
cdp-functions-deleteDelete function
cdp-functions-invocations-createTest-invoke function
cdp-functions-listList functions
cdp-functions-partial-updateUpdate function
cdp-functions-rearrange-partial-updateReorder transformation execution
cdp-functions-retrieveGet function

Insights & analytics

ToolPurpose
insight-create-from-querySave a query as an insight.
insight-deleteDelete an insight by ID.
insight-getGet a specific insight by ID.
insight-queryExecute a query on an existing insight to get its results/data.
insight-updateUpdate an existing insight by ID.
insights-get-allGet all insights in the project with optional filtering.
query-generate-hogql-from-questionQueries project's PostHog data based on a provided natural language question.
query-runRun a trend, funnel, paths or HogQL query.

LLM analytics

ToolPurpose
evaluation-createCreate a new evaluation.
evaluation-deleteDelete an evaluation.
evaluation-getGet a specific evaluation by ID.
evaluation-runRun an evaluation on a specific event.
evaluation-updateUpdate an evaluation.
evaluations-getList LLM analytics evaluations.
get-llm-total-costs-for-projectFetches the total LLM daily costs for each model for a project over a given number of days.

Logs

ToolPurpose
logs-list-attribute-valuesGet values for a log attribute.
logs-list-attributesList available log attributes.
logs-querySearch and query logs in the project.

Notebooks

ToolPurpose
notebooks-createCreate notebook
notebooks-destroyDelete notebook
notebooks-listList notebooks
notebooks-partial-updateUpdate notebook
notebooks-retrieveGet notebook

Organization & project management

ToolPurpose
organization-details-getGet the details of the active organization.
organizations-getGet the organizations the user has access to.
projects-getFetches projects that the user has access to in the current organization.
property-definitionsGet event and property definitions for the project.
switch-organizationChange the active organization from the default organization.
switch-projectChange the active project from the default project.

Persons

ToolPurpose
persons-bulk-deleteBulk delete persons
persons-cohorts-retrieveGet person cohorts
persons-listList persons
persons-property-deleteDelete person property
persons-property-setSet person property
persons-retrieveGet person
persons-values-retrieveGet person property values

Prompts

ToolPurpose
prompt-createCreate prompt
prompt-duplicateDuplicate prompt
prompt-getGet prompt
prompt-listList prompts
prompt-updateUpdate prompt

Query wrappers

ToolPurpose
query-funnelRun a funnel query
query-retentionRun a retention query
query-traces-listList LLM traces
query-trendsRun a trends query

Reverse proxy

ToolPurpose
proxy-createCreate reverse proxy
proxy-deleteDelete reverse proxy
proxy-getGet reverse proxy details
proxy-listList reverse proxies
proxy-retryRetry reverse proxy provisioning

Search

ToolPurpose
entity-searchSearch for entities by name or description.

SQL

ToolPurpose
execute-sqlExecute an SQL query.

Surveys

ToolPurpose
survey-createCreates a new survey in the project.
survey-deleteDelete a survey by ID.
survey-getGet a specific survey by ID.
survey-statsGet response statistics for a specific survey.
survey-updateUpdate an existing survey by ID.
surveys-get-allGet all surveys in the project with optional filtering.
surveys-global-statsGet aggregated response statistics across all surveys.

Workflows

ToolPurpose
workflows-getGet workflow
workflows-listList workflows

Example prompts

Here are some examples of what you can ask your AI agent to do with the PostHog MCP server:

Feature flag management

Prompt: "Create a feature flag called 'new-checkout-flow' that's enabled for 20% of users"

The agent will use the create-feature-flag tool to create the flag with a 20% rollout and return the configuration including the key, rollout percentage, and a link to the flag in PostHog.

Multivariate feature flags

Prompt: "Create a multivariate feature flag called 'homepage-hero-test' with three variants: control at 34%, variant_a at 33%, and variant_b at 33%"

The agent will use the create-feature-flag tool with a multivariate configuration to create the flag with multiple variants. Variant rollout percentages must be integers that sum to 100.

Analytics queries

Prompt: "How many unique users signed up in the last 7 days, broken down by day?"

The agent will use the query-run tool to execute a trends query and return daily signup counts.

Path analysis

Prompt: "What are the most common paths users take after signing up?"

The agent will use the query-run tool with a PathsQuery to analyze user journeys, returning the flow of events users follow after signup.

Prompt: "Show me the navigation paths from the pricing page to checkout"

The agent will execute a paths query with startPoint set to the pricing page and endPoint set to checkout, revealing the most common routes users take.

SQL and HogQL queries

Your AI agent can execute complex HogQL queries to analyze both system data and analytics data in PostHog.

Prompt: "Query my feature flags to find all flags that are rolled out to less than 50% of users"

The agent will use SQL to query the system.feature_flags table and return flags filtered by rollout percentage.

Prompt: "Write a HogQL query to find users who triggered the signup event but didn't complete onboarding in the last 30 days"

The agent will construct and execute a HogQL query against the events table, using subqueries to find users who signed up but are missing the onboarding completion event.

Prompt: "What cohorts contain users who made a purchase in the last week?"

The agent will query system.cohorts and cross-reference with purchase events to identify relevant cohorts.

A/B test creation

Prompt: "Create an A/B test for our pricing page that measures conversion to checkout"

The agent will use experiment-create to set up an experiment with control/test variants and configure a funnel metric measuring pricing page to checkout conversion.

Error investigation

Prompt: "What are the top 5 errors in my project this week?"

The agent will use the list-errors tool to fetch error groups sorted by occurrence count and return details including affected user counts.

Log investigation

Prompt: "Show me error logs from the payments service in the last hour"

The agent will use logs-query to search for logs filtered by severity level and service name, returning log entries with timestamps, messages, and trace information.

Prompt management

Prompt: "List all prompts stored in my project"

The agent will use the prompt-list tool to retrieve all team prompts and return a summary with names, versions, and timestamps.

Prompt: "Create a prompt called 'code-reviewer' with instructions for reviewing pull requests"

The agent will use the prompt-create tool to create a new prompt with the specified name and content, making it available for use across all MCP-connected agents in your team.

Prompt: "Get the latest version of my 'support-assistant' prompt"

The agent will use the prompt-get tool to retrieve the full prompt content by name. You can also request a specific version if needed.

Prompt: "Update the 'onboarding-guide' prompt to include a section about feature flags"

The agent will use the prompt-update tool to publish a new version of the prompt with the updated content. The update includes conflict detection to prevent overwriting changes made by others.

Prompts and resources

The MCP server provides resources, including framework-specific documentation and example code, to help agents build great PostHog integrations. You can try these yourself using the posthog:posthog-setup prompt, available via a slash command in your agent. Just hit the / key.

Currently we support Next.js, with more frameworks in progress.

Privacy and support

The MCP server acts as a proxy to your PostHog instance. It does not store your analytics data – all queries are executed against your PostHog project and results are returned directly to your AI client.

Next steps

Community questions

Was this page useful?

Questions about this page? or post a community question.