posthog-mcp-server
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 |
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/friendlygeorge/posthog-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server