PostHog MCP server: 1,080 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.
Checked 6 October 2026 · from PostHog's own MCP documentation and the GitHub record for its repositories
One of 91 guides to monitoring and developer tools. Each covers what an AI coding agent can get out of the tool through MCP, the protocol 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 among these vendor guides. Its tools reference renders 1,080 distinct tool names across 73 categories, as of 6 October 2026.
On that reading the reference's own category counts summed to 1,080, matching the distinct names it listed exactly. On 28 August 2026 the same reference listed 899 across 69 categories.
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 95 tools, customer analytics and signals 73 each, replay vision 55, experiments 50 and workflows 35.
365 of the 1,080 names are shaped for writing. They contain create, update, delete, destroy, launch, stop, archive, merge or split, and 70 of those are deletions.
PostHog has one live MCP server and one archived repository:
| Server | Tools | State |
|---|---|---|
Hosted MCP · mcp.posthog.com/mcp | 1,080 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 95 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 among these vendor guides, and the width is the problem rather than the point. It answers questions about users, errors, flags and model spend. Deciding which of the 73 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.
1,080 distinct tool names documented across 73 categories; the reference's own counts sum to 1,080
- 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-listexperiment-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 73-category list. The server groups tools by category instead. Counts come from PostHog's tools reference, read 6 October 2026; the hosted endpoint answers tools/list only after authenticating.
What the tool definitions cost in context
A client that loads every tool definition at the start of a session spends this much context before the first question. Claude Code defers definitions by default through tool search, and loads a tool's definition when the agent needs it. The method below gives the version and date measured.
A context window is the amount of text a model can hold at once. On 28 August 2026, the 899 documented tools cost 38,690 to 51,946 tokens on Claude for a client that loads every definition upfront. That is a quarter of a 200,000-token window. The reference now lists 1,080, so the full list costs more today. The largest surface captured from a live tools/list across these guides 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 on 28 August 2026 | 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. The reference listed 1,080 tools on 6 October 2026.
The hosted server answers tools/list only after authenticating, so no input schemas were counted. These figures cover each tool's name and description only. They are a floor.
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 95 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 6 October 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.
1,080 distinct tool names are documented across 73 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 eighteen alert and rule tools with similar names.
Error tracking alone documents alert, assignment, bypass, grouping, severity 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.” Seventy of the names delete.
365 of the 1,080 documented names create, update or delete, and 70 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 1,080 documented names it is required. - 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 1,080 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 73 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. When a call returns nothing, state that no results were returned for the project and tool above. Do not state that the data does not exist. 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. PostHog documents more tools than any other vendor here, 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"}}}`.vscode/mcp.json` takes the key `servers`. VS Code also reads mcpServers from a portable .mcp.json at the project root or ~/.copilot/mcp-config.json. Its docs recommend the portable files for new servers.
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
365 of the 1,080 documented names write
They contain a writing verb, and 70 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
- 1,080 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 | 1,080 distinct names documented, in 73 categories, as of 6 October 2026 |
| Category count sum | 1,080, matching the distinct names |
| Writing tools | 365 names that create, update or delete, including 70 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 | 1,080 |
| Categories | 73 |
| Sum of the reference's category counts | 1,080 |
| Largest category | AI observability, 95 tools |
| Next largest | Customer analytics and signals, 73 tools each |
| Write-shaped names | 365 |
| Deletion-shaped names | 70 |
| Archived repository stars | 151 |
“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 6 October 2026, by counting the tool names it lists and the per-category totals it prints. The hosted endpoint answers tools/list only after authenticating, so the figures come from documentation rather than from the server itself. 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
- 1,080 documented tools cannot be loaded at once, so a working configuration needs a scope.
- Operational risk
- 365 tools that create, update or delete, including 70 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.
See agent observabilityFrequently asked questions
How many tools does the PostHog MCP server have?
Its tools reference lists 1,080 distinct names across 73 categories, and its own category counts sum to the same. Read on 6 October 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.