
PostHog
HTTP-SSEOfficialMCP server for PostHog integration, feature flag management, and error tracking
MCP server for PostHog integration, feature flag management, and error tracking
Documentation: https://posthog.com/docs/model-context-protocol
You can install the MCP server automatically into Cursor, Claude, Claude Code, VS Code and Zed by running the following command:
npx @posthog/wizard@latest mcp add
Obtain a personal API key using the MCP Server preset here.
Add the MCP configuration to your desktop client (e.g. Cursor, Windsurf, Claude Desktop) and add your personal API key
{ "mcpServers": { "posthog": { "command": "npx", "args": [ "-y", "mcp-remote@latest", "https://mcp.posthog.com/mcp", // You can replace this with https://mcp.posthog.com/sse if your client does not support Streamable HTTP "--header", "Authorization:${POSTHOG_AUTH_HEADER}" ], "env": { "POSTHOG_AUTH_HEADER": "Bearer {INSERT_YOUR_PERSONAL_API_KEY_HERE}" } } } }
If you prefer to use Docker instead of running npx directly:
pnpm docker:build # or docker build -t posthog-mcp .
{ "mcpServers": { "posthog": { "type": "stdio", "command": "docker", "args": [ "run", "-i", "--rm", "--env", "POSTHOG_AUTH_HEADER=${POSTHOG_AUTH_HEADER}", "--env", "POSTHOG_REMOTE_MCP_URL=${POSTHOG_REMOTE_MCP_URL:-https://mcp.posthog.com/mcp}", "posthog-mcp" ], "env": { "POSTHOG_AUTH_HEADER": "Bearer {INSERT_YOUR_PERSONAL_API_KEY_HERE}", "POSTHOG_REMOTE_MCP_URL": "https://mcp.posthog.com/mcp" } } } }
pnpm docker:inspector # or npx @modelcontextprotocol/inspector docker run -i --rm --env POSTHOG_AUTH_HEADER=${POSTHOG_AUTH_HEADER} posthog-mcp
Environment Variables:
POSTHOG_AUTH_HEADER
: Your PostHog API token (required)POSTHOG_REMOTE_MCP_URL
: The MCP server URL (optional, defaults to https://mcp.posthog.com/mcp
)This approach allows you to use the PostHog MCP server without needing Node.js or npm installed locally.
You can limit which tools are available by adding query parameters to the MCP URL:
https://mcp.posthog.com/mcp?features=flags,workspace
Available features:
workspace
- Organization and project managementerror-tracking
- Error monitoring and debuggingdashboards
- Dashboard creation and managementinsights
- Analytics insights and SQL queriesexperiments
- A/B testing experimentsflags
- Feature flag managementllm-analytics
- LLM usage and cost trackingdocs
- PostHog documentation searchTo view which tools are available per feature, see our documentation or alternatively check out schema/tool-definitions.json
,
The MCP server is hosted on a Cloudflare worker which can be located outside of the EU / US, for this reason the MCP server does not store any sensitive data outside of your cloud region.
If you're using a self-hosted instance of PostHog, you can specify a custom base URL by adding the POSTHOG_BASE_URL
environment variable when running the MCP server locally or on your own infrastructure, e.g. POSTHOG_BASE_URL=https://posthog.example.com
To run the MCP server locally, run the following command:
pnpm run dev
And replace https://mcp.posthog.com/mcp
with http://localhost:8787/mcp
in the MCP configuration.
This repository is organized to support multiple language implementations:
typescript/
- TypeScript implementation of the MCP server & toolsschema/
- Shared schema files generated from TypeScriptpnpm run dev
- Start development serverpnpm run schema:build:json
- Generate JSON schema for other language implementationspnpm run lint && pnpm run format
- Format and lint codeSee the tools documentation for a guide on adding new tools to the MCP server.
.dev.vars
in the rootdocs-search
tool (see Inkeep API key - mcp
)INKEEP_API_KEY="..."
During development you can directly inspect the MCP tool call results using the MCP Inspector.
You can run it using the following command:
npx @modelcontextprotocol/inspector npx -y mcp-remote@latest http://localhost:8787/mcp --header "\"Authorization: Bearer {INSERT_YOUR_PERSONAL_API_KEY_HERE}\""
Alternatively, you can use the following configuration in the MCP Inspector:
Use transport type STDIO
.
Command:
npx
Arguments:
-y mcp-remote@latest http://localhost:8787/mcp --header "Authorization: Bearer {INSERT_YOUR_PERSONAL_API_KEY_HERE}"