PostHog MCP server: 899 tools, and how to scope them
The largest documented tool list in this guide, the query parameter that makes it usable, and what the free hosted endpoint costs.
Last verified 1 September 2026 · from PostHog's own MCP documentation and the GitHub record for its repositories
This page is one of 90 in a directory of monitoring and developer tools. Each page checks what an AI coding agent can get out of the tool through its MCP server, the connector that lets the agent query the tool directly.
Summary
The PostHog MCP server is hosted and free, at mcp.posthog.com/mcp, and it documents by far the largest tool list in this guide. Its tools reference renders 899 distinct tool names across 69 categories.
On that reading the page's own category counts summed to 899, matching the distinct names it listed exactly.
No agent loads that list. PostHog's answer is a tools query parameter that scopes a session to a named subset. The documentation states that tool names are stable, so you can rely on them in that parameter.
What is the PostHog MCP server?
It is PostHog's server for the Model Context Protocol. PostHog covers product analytics, feature flags, experiments, error tracking, session replay, surveys and a data warehouse, and the tool list follows all of it.
The categories give the shape better than the total. AI observability carries 81 tools, customer analytics 65, signals 60, experiments 39, workflows 30 and replay vision 29.
319 of the 899 names are shaped for writing. They contain create, update, delete, destroy, launch, stop, archive, merge or split, and 66 of those are deletions.
PostHog has one live MCP server and one archived repository:
| Server | Tools | State |
|---|---|---|
Hosted MCP · mcp.posthog.com/mcp | 899 documented | The real connector. Free, browser sign-in, region chosen from the account |
PostHog/mcp on GitHub | Not counted here | Archived 19 January 2026 after the code moved into the PostHog monorepo. 151 stars |
The archived repository is still what a search for the package name finds. The living code is in the monorepo under services/mcp, and the endpoint above is what clients connect to.
It is strongest in production observability and reaches agent observability and AI cost through its own analytics products.
| Part of the work | What PostHog has here | Can an agent reach it |
|---|---|---|
| Code, tests & review | None | Nothing for code or review. Errors reference releases, not diffs |
| CI & release | Feature flags, experiments | Partial. Flags and experiments gate a release; nothing runs or reads a pipeline |
| Production observability | Error tracking, logs, session replay, product analytics | Yes. Core strength. Errors, logs, replays and analytics queries are all reachable as tools |
| Agent observability & evals | LLM analytics, traces, datasets, evaluations | Yes, through the AI observability category, which the documentation counts at 81 tools |
| AI cost management | Model cost per project | Partial. get-llm-total-costs-for-project returns daily cost by model; there is no cloud or vendor billing surface |
For an agent, PostHog is the widest single connector in this guide, and the width is the problem rather than the point. It answers questions about users, errors, flags and model spend. Deciding which of the 69 categories a session needs is the work that makes it usable.
What can an AI agent do with PostHog?
| Task | Tools | Works | Watch out for |
|---|---|---|---|
| Triage the week's errors | query-error-tracking-issues-list query-error-tracking-issue query-error-tracking-issue-events | Yes | Issues and their events are separate tools |
| Ship a flag from a prompt | create-feature-flag feature-flag-get-all feature-flag-get-definition | Yes | delete-feature-flag sits in the same category |
| Run an analytics question | query-funnel query-lifecycle insight-query | Yes | Query tools are per analysis type rather than one general endpoint |
| Check what models cost | get-llm-total-costs-for-project | Yes | Daily cost per model for a project, over a number of days you pass |
| Look something up in the documentation | docs-search | Yes | It searches PostHog's documentation, not your project |
| Manage an experiment | experiment-create experiment-archive experiment-calculate-running-time | Yes | experiment-create-from-prompt is one of the tools that uses a model internally |
| Work with session replays | session-recording-get session-recording-playlists-list session-recording-delete | Yes | Deletion tools sit beside the reading ones in the same category |
Every row above is reachable only if its category is in the session's scope. The tools query parameter is what puts it there, and PostHog states that tool names are stable so a scope can be written once.
899 distinct tool names documented across 69 categories; the page's own counts sum to 899
- Errors3
query-error-tracking-issues-listquery-error-tracking-issuequery-error-tracking-issue-events- Analytics queries4
query-funnelquery-lifecyclequery-funnel-actorsinsight-query- Insights and dashboards4
insight-getinsights-listdashboard-getdashboards-get-all- Flags3
feature-flag-get-allfeature-flag-get-definitionfeature-flags-status-retrieve- Experiments3
experiment-get-allexperiment-activityexperiment-calculate-running-time- Model analytics3
get-llm-total-costs-for-projectllma-clustering-job-listllma-dataset-list- Replay2
session-recording-getsession-recording-playlists-list- Documentation1
docs-search- Changing things5Write
create-feature-flagdelete-feature-flagexperiment-archivesession-recording-deletesurvey-launch
Groups are a reader's map of a 69-category list, not the server's own grouping. Counts come from PostHog's tools reference, read 28 August 2026; the hosted endpoint answers tools/list only after authenticating.
What connecting costs before the first question
A context window is the amount of text a model can hold at once. 899 tools is the largest documented surface in this guide, about three and a half times the next largest, and connecting to all of them costs 38,690 to 51,946 tokens on Claude. That is a quarter of a 200,000-token window spent before the agent has asked anything. The count comes from PostHog's published reference; the largest surface captured from a live tools/list here is Rootly, at 252.
The descriptions are what keep it from being worse. PostHog writes one terse line per tool, often three words, so 899 definitions cost about what a hundred verbose ones would. Scoping the session with the tools parameter is still the whole job.
| Tool set | Tools | Tokens (GPT-5.6, GPT-5.5) | Tokens (GPT-4, GPT-3.5) | Tokens (Claude Haiku 4.5 to Opus 5) | Share of a 200,000-token window |
|---|---|---|---|---|---|
| Every tool documented | 899 | 14,409 to 23,279 | 14,281 to 23,151 | 38,690 to 51,946 | 7.1% to 26.0% |
Encodings: GPT-5.6, GPT-5.5 o200k_base; GPT-4, GPT-3.5 cl100k_base; Claude Haiku 4.5 to Opus 5 count_tokens. Counted from the 899 tool entries in the vendor's own documentation, read on 28 August 2026. That is the only public inventory. The reference renders through JavaScript, so the count could not be re-taken on 1 September 2026 and stands with its own date.
The server could not be run for a live tools/list. So no input schemas are available. These figures cover each tool's name and description only. They are a floor, not the figure.
The Claude columns are measured through the API's count_tokens endpoint, with an empty schema per tool. So they cover the same content as the GPT columns. The range there is two tokenizer generations. Haiku 4.5 and Opus 4.6 sit at the low end. Opus 5 and Sonnet 5 sit at the high end. The gap between them is about a third.
Can PostHog watch your own AI agents?
PostHog counts 81 tools in its AI observability category alone, so this table asks which agent signals those actually cover. Read from PostHog's own tools reference on 28 August 2026.
| Signal | Covered | Notes |
|---|---|---|
| Trace and session tracking | Yes | apm-trace-get and the apm-spans-tree family reach traces and their spans |
| Eval scores on recorded traffic | Partial | llma-trace-review-create records a review. The clustering job tools group traffic rather than scoring it |
| Prompt version tracking | Partial | No tool names a prompt version, but seven llma-prompt-* tools cover creation, listing, updating and labelling |
| Offline experiments | Yes | The llma-dataset-create and llma-dataset-item-create family covers datasets and their items |
| Token and cost tracking | Yes | get-llm-total-costs-for-project returns daily cost for each model over a period |
PostHog MCP server limits: where answers come back incomplete
Every limit below follows from a documented surface more than three times the size of any other here.
The agent says: “PostHog does not support that.” It may be outside the session's scope.
899 distinct tool names are documented across 69 categories, and no client holds all of them. A scoped session sees only what its tools parameter named.
To the agent, a tool outside the scope and a capability that does not exist look identical.
Guard: Write the scope explicitly and have the agent state which tools the session carries before reporting a capability as missing.
The agent says: “There are no error-tracking rules.” There are twenty tools with similar names.
Error tracking alone documents alert, assignment, bypass, grouping and suppression rule tools, each with their own list and create variants. Names differ by one word.
Guard: Require the agent to name the exact tool it called alongside any answer.
The agent says: “I have cleaned that up.” Sixty-six of the names delete.
319 of the 899 documented names create, update or delete, and 66 of those delete or destroy a resource. They appear in the same categories as the tools that read it.
Guard: Scope the session to reading tools by name when the task is investigation rather than change.
How to configure PostHog MCP for agents
- 1
Scope the session
The
toolsquery parameter narrows a connection to a named subset, and with 899 documented names that is not optional. - 2
Decide about AI data processing
Some tools use models internally and are only available when AI data processing is enabled in the organization settings.
- 3
Expect model usage to be billed
Connecting and calling tools is free, and PostHog states that the tools using models internally may be billed as PostHog AI spend.
- 4
Let the region follow the account
PostHog's authentication server routes to the US or EU region based on the account signing in, so the endpoint is the same either way.
Paste this into your agent’s instructions
With 899 documented names, an agent that cannot find a capability may simply be outside the session's scope. The block makes that distinction visible.
When you answer using PostHog MCP tools, state: - The project the answer covers. - The tool you called. Many names differ by one word across 69 categories and return different resources. - Whether a capability was missing because the session's tools scope excludes it, rather than because it does not exist. Never state that data does not exist. State that no results were returned for the project and tool above. Write your answer in ASD-STE100 Simplified Technical English. Use short sentences with one idea in each.
Do you need the MCP server at all?
Not for one known query. PostHog has a documented API, and calling it directly costs nothing in context.
The connector earns its place on breadth an API does not organize. An agent can move from an error to the flag that caused it to the replay that shows it, inside one session.
For a narrower question, a narrower connector is usually the better answer. Nothing else here documents 899 tools, and that width is a cost as much as a capability.
Connect a scoped session for cross-product investigation. Call the API for a single known query.
PostHog MCP server setup
The server is hosted and free to connect to. The fastest route is PostHog's own wizard, which writes the configuration for seven clients.
Sign-in happens in a browser, and PostHog's authentication server sends the session to the US or EU region based on the account.
PostHog wizard
One command configures PostHog Desktop, Cursor, Claude Code, Claude Desktop, Codex, VS Code and Zed. Authorization happens in a browser.
npx @posthog/wizard mcp add
Claude Code
Adding the endpoint directly works too. The browser handles sign-in, so no credential is stored here.
claude mcp add --transport http posthog \ https://mcp.posthog.com/mcp
Cursor
In ~/.cursor/mcp.json. Authorization runs in the browser on first connection.
{"mcpServers":{"posthog":{
"url":"https://mcp.posthog.com/mcp"}}}Every other client
Each block below is the configuration for one client, with the file path and the key that client expects.
Claude Desktop
macOS ~/Library/Application Support/Claude/claude_desktop_config.json. Windows %APPDATA%\Claude\claude_desktop_config.json. There is no CLI. Edit through Settings, Developer, Edit Config.
Quit and restart fully for changes to load. Paths in args must be absolute. Logs at ~/Library/Logs/Claude/mcp.log.
No credentials appear in the file. Sign-in happens in a browser, and the region follows the account used.
{"mcpServers":{"posthog":{"url":"https://mcp.posthog.com/mcp"}}}Gemini CLI
~/.gemini/settings.json globally, or .gemini/settings.json per project. Key mcpServers. CLI: gemini mcp add.
No credentials appear in the file. Sign-in happens in a browser, and the region follows the account used.
{"mcpServers":{"posthog":{"url":"https://mcp.posthog.com/mcp"}}}VS Code Copilot
.vscode/mcp.json per workspace, or your user profile. CLI: code --add-mcp.
No credentials appear in the file. Sign-in happens in a browser, and the region follows the account used.
{"servers":{"posthog":{"url":"https://mcp.posthog.com/mcp"}}}The key is `servers`, not `mcpServers`. VS Code is the only client that uses that name, and copying a config from anywhere else fails silently.
Windsurf
~/.codeium/windsurf/mcp_config.json, which is the path Windsurf documents. Key mcpServers, the same JSON shape as Cursor, carrying the same OAuth sign-in.
Zed
~/.config/zed/settings.json, carrying the same OAuth sign-in as the blocks above.
The key is `context_servers`. Zed does not call them MCP servers in config, so searching its settings for mcp finds nothing.
Google Antigravity
~/.gemini/config/mcp_config.json globally, or .agents/mcp_config.json per project. Key mcpServers. There is no CLI. Use the /mcp overlay in the editor. Supports stdio, streamable HTTP, SSE and websocket.
No credentials appear in the file. Sign-in happens in a browser, and the region follows the account used.
{"mcpServers":{"posthog":{"url":"https://mcp.posthog.com/mcp"}}}Amp (Sourcegraph)
~/.config/amp/settings.json or .amp/settings.json, carrying the same OAuth sign-in. The amp mcp CLI covers approve, doctor and oauth.
The key is `amp.mcpServers`, namespaced. A bare mcpServers block is ignored.
Cline
~/.cline/mcp.json per the docs. The source also reads ~/.cline/data/settings/cline_mcp_settings.json. Key mcpServers, standard JSON shape, carrying the same OAuth sign-in. Supports stdio, streamable HTTP and SSE.
Goose (Block)
~/.config/goose/config.yaml, carrying the same OAuth sign-in.
YAML, and servers are called `extensions`. Goose does not use the MCP vocabulary in config at all. Add one interactively with goose configure, or per session with goose session --with-extension.
Kiro (AWS)
.kiro/settings/mcp.json per workspace, or ~/.kiro/settings/mcp.json globally. Key mcpServers, standard JSON shape, carrying the same OAuth sign-in.
Warp
~/.warp/.mcp.json or .warp/.mcp.json. Key mcpServers, standard shape, carrying the same OAuth sign-in. Also addable through the /agent-add-mcp skill.
JetBrains Junie
.junie/mcp/mcp.json per project, or ~/.junie/mcp/mcp.json. Key mcpServers, carrying the same OAuth sign-in. Use /mcp in the CLI to manage.
Roo Code
.roo/mcp.json per project. The global file is mcp_settings.json, opened from the Roo Code MCP settings view with Edit Global MCP. Key mcpServers, carrying the same OAuth sign-in.
Continue
.continue/mcpServers/*.yaml, one file per server, carrying the same OAuth sign-in.
YAML, and `mcpServers` is a list, not an object. Every JSON client keys servers by name. Continue takes an array, so a converted config will not parse.
Trae
.trae/mcp.json per project, or paste into the UI under Raw Config (JSON). Key mcpServers, standard shape, carrying the same OAuth sign-in.
Devin
Devin has no config file to edit. Servers are added through a web form in the settings UI, and Devin's documentation states you do not need to write or paste JSON. The block below is the shape those fields describe, shown for reference. Either route uses the same OAuth sign-in.
Scoped to a subset
The tools query parameter narrows the session. Browser sign-in is unchanged; only the tool list is smaller.
{"mcpServers":{"posthog":{
"url":"https://mcp.posthog.com/mcp?tools=docs-search,feature-flag-get-all"}}}Read-only access, permissions and security
319 of the 899 documented names write
They contain a writing verb, and 66 of those are deletions.
Deletion sits beside reading
session-recording-deleteanddelete-feature-flagare in the same categories as the tools that read the same resources.Some tools call models
PostHog states that certain tools use models internally, are billed as AI spend, and are available only when AI data processing is enabled for the organization.
Scope is the main control
The
toolsquery parameter is the documented way to decide what a session can reach, since there is no toolset switch on the server side.
Troubleshooting
- The client struggles with the tool list
- 899 tool names are documented. Use the
toolsquery parameter to scope the session to the categories the task needs. - An AI-powered tool is unavailable
- Those tools require AI data processing to be enabled in the organization settings. Until it is, they do not appear.
- The bill went up after connecting
- Connecting and calling tools is free, but tools that use models internally may be billed as PostHog AI spend.
- A guide points at an archived repository
PostHog/mcpwas archived on 19 January 2026 when the code moved into the PostHog monorepo. Connect to the hosted endpoint instead.
PostHog MCP server: Reference
| Item | Value |
|---|---|
| Endpoint | mcp.posthog.com/mcp |
| Price | Free to connect and call; model-backed tools bill as PostHog AI spend |
| Auth | Browser sign-in; region chosen from the account |
| Tools | 899 distinct names documented, in 69 categories |
| Category count sum | 899, matching the distinct names |
| Writing tools | 319 names that create, update or delete, including 66 deletions |
| Scoping | The tools query parameter, on stable tool names |
| Setup | npx @posthog/wizard mcp add for seven clients |
| Archived repository | PostHog/mcp, archived 19 January 2026, 151 stars |
What engineers report
PostHog's server is official, hosted, free, and configurable in seven clients by one wizard command. The counts below come from its tools reference.
| What was checked | What it shows |
|---|---|
| Distinct documented tool names | 899 |
| Categories | 69 |
| Sum of the page's category counts | 899 |
| Largest category | AI observability, 81 tools |
| Next largest | Customer analytics, 65 tools |
| Write-shaped names | 319 |
| Deletion-shaped names | 66 |
| Archived repository stars | 150 |
“I have my instance running in EU, so there is currently no way for me to use it. Maybe we could use headers to set the region?”
“Could you please share a detailed list of the capabilities and supported commands for this MCP? I'd like to help document them, but I want to make sure I'm capturing all the key features and use cases.”
Tool inventory read from PostHog's own MCP tools reference on 28 August 2026, by counting the tool names the page renders and the per-category totals it prints. The hosted endpoint answers tools/list only after authenticating, which is why this page is sourced from documentation rather than from the wire. Repository facts from the GitHub API.
Should you connect an agent to PostHog?
Yes. Best for a scoped session per task, using the tools query parameter on names PostHog documents as stable.
- Strongest fit
- PostHog teams whose questions cross products, and who are willing to write a tool scope for each kind of session.
- Main advantage
- The widest documented surface in this guide, free to connect, with a wizard that configures seven clients.
- Main weakness
- 899 documented tools cannot be loaded at once, so an unscoped connection is not a working configuration.
- Operational risk
- 319 tools that create, update or delete, including 66 deletions, sitting in the same categories as the tools that read.
From Oodle
One platform for agent traces and infrastructure
Agent traces usually sit in a different product from the rest of your telemetry, so when a slow database makes an agent slow the symptom is in one tool and the cause is in another. Oodle keeps both in one query surface, from $10 per million spans.
See agent observabilityFrequently asked questions
How many tools does the PostHog MCP server have?
Its tools reference renders 899 distinct names across 69 categories, and the page's own category counts sum to the same. Read on 28 August 2026.
Can an agent load all of them?
No. PostHog documents a tools query parameter for scoping a session to a subset, and states that tool names are stable so a scope can be reused.
Is it free?
Connecting and calling tools is free. Tools that use models internally may be billed as PostHog AI spend, and need AI data processing enabled.
Which region does it use?
The endpoint is the same. PostHog's authentication server routes to the US or EU region based on the account that signs in.
What happened to the GitHub repository?
PostHog/mcp was archived on 19 January 2026 when the code moved into the PostHog monorepo under services/mcp.