MCP server for PostHog — product analytics for AI assistants. Query events, persons, insights, da...
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.
| Tool | Description |
|---|---|
list_events | Query events with filters (event name, person, date range, properties) |
get_person | Get a person (user) by distinct_id — properties, creation date, event count |
list_persons | Search and list persons with pagination |
list_dashboards | List all dashboards — names, tags, widget counts |
get_dashboard | Get a specific dashboard with its insights and widgets |
execute_insight | Execute a saved insight (trend, funnel, etc.) and get results |
list_feature_flags | List all feature flags — key, active status, rollout percentage |
evaluate_feature_flag | Evaluate a flag for a specific user and get variant value |
list_cohorts | List cohorts — name, type (dynamic/static/SQL), person count |
list_experiments | List A/B tests — name, status, feature flag, dates |
get_experiment | Get experiment results with variant data and statistical significance |
list_actions | List custom event actions/definitions |
get_project_info | Get project name, ID, settings, and data region |
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
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"
}
}
}
}
# 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.js
| Variable | Required | Default | Description |
|---|---|---|---|
POSTHOG_API_KEY | ✅ | — | Your PostHog personal API key (phx_...) |
POSTHOG_HOST | ❌ | https://us.i.posthog.com | PostHog instance URL (use https://eu.i.posthog.com for EU) |
POSTHOG_PROJECT | ❌ | "" | Default project ID. If empty, must be specified per-call. |
If you run PostHog on your own infrastructure, set POSTHOG_HOST to your instance URL:
POSTHOG_HOST=https://posthog.yourcompany.com
Once configured, ask your AI assistant:
This server wraps the PostHog REST API (v1). Full documentation:
npm install
npm run dev # Build and run
npm run build # Build only
npm start # Run built output
MIT © Nova
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y posthog-mcp-serverMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-friendlygeorge-posthog-mcp-server": {
"command": "npx",
"args": [
"-y",
"posthog-mcp-server"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceposthog-mcp-servernpmio.github.friendlygeorge/posthog-mcp-server works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.