posthog-mcp-server
Provides tools for querying events, persons, insights, dashboards, feature flags, cohorts, experiments, and actions from a PostHog instance.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@posthog-mcp-server Show me the last 10 pageview events"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PostHog MCP Server
Connect AI assistants to PostHog — query events, persons, insights, dashboards, feature flags, cohorts, and experiments through the Model Context Protocol.
Works with Claude Desktop, Cursor, Windsurf, Cline, Continue, and any MCP-compatible client.
Features
Tool | Description |
| Query events with filters (event name, person, date range, properties) |
| Get a person (user) by distinct_id — properties, creation date, event count |
| Search and list persons with pagination |
| List all dashboards — names, tags, widget counts |
| Get a specific dashboard with its insights and widgets |
| Execute a saved insight (trend, funnel, etc.) and get results |
| List all feature flags — key, active status, rollout percentage |
| Evaluate a flag for a specific user and get variant value |
| List cohorts — name, type (dynamic/static/SQL), person count |
| List A/B tests — name, status, feature flag, dates |
| Get experiment results with variant data and statistical significance |
| List custom event actions/definitions |
| Get project name, ID, settings, and data region |
Related MCP server: Posthog Universal MCP Server
Quick Start
1. Get a PostHog API Key
Go to PostHog → Settings → Personal API Keys and create a key with read access.
Or visit: https://your-instance.posthog.com/settings/user-api-keys
2. Configure your MCP client
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"posthog": {
"command": "npx",
"args": ["-y", "posthog-mcp-server"],
"env": {
"POSTHOG_API_KEY": "phx_YOUR_API_KEY_HERE",
"POSTHOG_HOST": "https://us.i.posthog.com",
"POSTHOG_PROJECT": "YOUR_PROJECT_ID"
}
}
}
}Cursor — add to MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"posthog": {
"command": "npx",
"args": ["-y", "posthog-mcp-server"],
"env": {
"POSTHOG_API_KEY": "phx_YOUR_API_KEY_HERE",
"POSTHOG_HOST": "https://us.i.posthog.com",
"POSTHOG_PROJECT": "YOUR_PROJECT_ID"
}
}
}
}3. Run manually (for testing)
# Clone and build
git clone https://github.com/friendlygeorge/posthog-mcp-server.git
cd posthog-mcp-server
npm install
npm run build
# Run
POSTHOG_API_KEY=phx_... POSTHOG_PROJECT=12345 node dist/index.jsEnvironment Variables
Variable | Required | Default | Description |
| ✅ | — | Your PostHog personal API key ( |
| ❌ |
| PostHog instance URL (use |
| ❌ |
| Default project ID. If empty, must be specified per-call. |
Self-hosted PostHog
If you run PostHog on your own infrastructure, set POSTHOG_HOST to your instance URL:
POSTHOG_HOST=https://posthog.yourcompany.comExample Queries
Once configured, ask your AI assistant:
"Show me the last 20 pageview events"
"Who are the most active users this week?"
"What's the status of our signup conversion experiment?"
"Is the new-checkout-flow feature flag enabled for user abc123?"
"Show me all active dashboards"
"Execute insight 42 and show me the trend"
"List all feature flags that are currently active"
"How many people are in the 'Power Users' cohort?"
API Reference
This server wraps the PostHog REST API (v1). Full documentation:
PostHog API docs: https://posthog.com/docs/api
MCP protocol: https://modelcontextprotocol.io
PostHog: https://posthog.com
Development
npm install
npm run dev # Build and run
npm run build # Build only
npm start # Run built outputLicense
MIT © Nova
Available Tools
13 toolsevaluate_feature_flagA
Evaluate a feature flag for a specific user. Returns whether the flag is enabled and its variant value.
Inputs: flag_key (required), distinct_id (required).
execute_insightA
Execute a saved PostHog insight by ID and return the results. Use list_dashboards to find insight IDs, or pass a raw insight definition.
Inputs: insight_id (required), refresh.
get_dashboardA
Get a specific PostHog dashboard by ID, including its insights and widgets.
Inputs: dashboard_id (required).
get_experimentA
Get detailed results for a specific PostHog experiment, including variants, metrics, and statistical significance.
Inputs: experiment_id (required).
get_personA
Get a PostHog person (user) by their distinct_id. Returns person properties, creation date, and event count.
Inputs: distinct_id (required).
get_project_infoA
Get basic information about the PostHog project — name, ID, created date, and available features.
Inputs: no named parameters.
list_actionsA
List PostHog event actions (custom event definitions). Shows name, steps, and creation date.
Inputs: limit.
list_cohortsB
List all PostHog cohorts in the project. Shows name, type, person count, and creation date.
Inputs: limit, search.
list_dashboardsA
List all PostHog dashboards in the project. Returns dashboard names, IDs, and widget counts.
Inputs: limit.
list_eventsA
Query events from PostHog. Filter by event name, person, date range, and properties. Returns recent events matching your criteria.
Inputs: after, event, limit, before, +2 more.
list_experimentsA
List all PostHog experiments (A/B tests) in the project. Shows name, status, and key results.
Inputs: limit.
list_feature_flagsA
List all PostHog feature flags in the project. Shows name, key, active status, and rollout percentage.
Inputs: limit, active.
list_personsA
List PostHog persons (users). Search by name or distinct_id, with pagination.
Inputs: limit, offset, search.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 13 tools
Each tool targets a distinct resource-action pair: events, persons, dashboards, insights, feature flags, cohorts, experiments, actions, and project info. The list/get/execute/evaluate verbs clearly differentiate operations on the same resource.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_events, get_person, evaluate_feature_flag), with verbs like list, get, execute, and evaluate used uniformly for their respective operations.
13 tools is well-scoped for a PostHog analytics server, covering major data types (events, persons, dashboards, insights, flags, cohorts, experiments, actions) without excessive granularity. Each tool serves a distinct purpose.
The tool set provides comprehensive read-only querying across PostHog's core domains. Minor gaps exist: no direct list_insights endpoint (insights only via dashboards/execute_insight) and no write/update/delete operations, but these are likely intentional for a query-oriented server.
Maintenance
Related MCP Connectors
Query your Logspot analytics, companies, and revenue from any AI assistant, and run your actions.
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Connect AI agents to ProductNow's context engine to search, create, review, and act.
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Related MCP Servers
AlicenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server that enables Claude Desktop users to interact directly with PostHog, allowing them to view projects and create annotations through natural language commands.10MIT- AlicenseNot gradedqualityDmaintenanceEnables interaction with Posthog through a standardized MCP interface, providing access to Posthog's tools and services for analytics and product management.MIT
- AlicenseBqualityDmaintenanceEnables interaction with PostHog analytics platform, allowing users to list projects, create annotations, and search insights through natural language in Claude Desktop.5MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables interaction with PostHog's product analytics platform through natural language, allowing users to manage feature flags, view errors, and access other platform features.112 npm1MIT