ToolsConnector
PostHog
Read events and query funnels, retention and feature usage for an account, from Claude or ChatGPT, through Tulina's own MCP server, not PostHog's own.
Official site: posthog.com
What it can do
4 read/1 write
- 01Read
Read events and activity for a given account
- 02Read
Query funnels, retention and feature usage
- 03Read
Re-run the insights your team already saved, over any date window
- 04Read
Read people, cohorts, feature flags and session-recording metadata
- 05Write
Add a dated annotation to the project's charts
Usage data answers a question a CRM cannot: whether an account is still getting value, rather than whether anyone has spoken to them lately. The two disagree often enough that reading both is the point.
What is the PostHog MCP server?
PostHog's MCP server is a free endpoint PostHog hosts at
https://mcp.posthog.com/mcp, which lets an AI agent query analytics,
investigate errors and manage feature flags in plain language. Tulina
offers a second route: PostHog read through Tulina's own MCP server,
read-only apart from chart annotations, on the same link as the CRM and
billing data that give a usage number its meaning.
Is the PostHog MCP free?
PostHog's own server is free to connect and call, and PostHog notes that tools which use a model internally may be billed as PostHog AI spend. Through Tulina, the PostHog connector runs on your own personal PostHog key. There is no shared Tulina key for it: this is your product data, read with your access.
How do you connect PostHog to Claude and ChatGPT?
Through Tulina's own MCP server, not PostHog's own hosted one.
- In PostHog, open Settings, then Personal API keys, and create a key
that starts with
phx_. Thephc_project key from the JavaScript snippet cannot read this data, and Tulina refuses it on entry. - Give it
query:readandproject:readat least, plus the read scopes for insights, persons, flags or recordings you want reached. - Paste it into Tulina's PostHog connector with your region, US or EU, or your self-hosted URL. A key from one region is unknown to the other.
- Add
https://mcp.tulina.ai/mcpto Claude or ChatGPT and sign in. The MCP page has the link.
Tulina vs PostHog's official MCP server
| PostHog's MCP server | Tulina | |
|---|---|---|
| Endpoint | mcp.posthog.com/mcp, hosted by PostHog | mcp.tulina.ai/mcp, one link for every connected tool |
| Region | Routed to US or EU from the account you sign in with | Set on the connector, with the key |
| Feature flags | Create, update and soft-delete them | Read only. A flag toggle ships to real users |
| Other writes | Reads and writes across PostHog's products | One: a dated annotation on the charts |
| In the same conversation | PostHog | PostHog plus Stripe, HubSpot and the other connected tools |
An engineer shipping a flag from their editor wants PostHog's server. A revenue or success team asking which accounts are slipping wants the numbers next to the contract and the last call, with no way to change the product by accident.
What you can ask it
"How did the activation funnel do last week?" The agent finds the saved insight and re-runs it with a seven-day window. PostHog computes it from the definition the team built, so the number matches the dashboard. Rebuilding a funnel in hand-written SQL gives a plausible figure that quietly disagrees, and the connector avoids it.
"Which accounts used exports less this month than last?" The agent reads the project's group types first. If the project tracks accounts as groups, it runs one HogQL query that counts the event per account for both months. If it has no group analytics, it says the question has no account-level answer here, rather than answering per person.
"Show me sessions where people got stuck on checkout." The agent lists last week's session recordings, keeps those whose pages visited include checkout, and hands back their duration, person and id. It reads metadata only; a person watches the recording in PostHog.
Catch churn signals and answer them, Expand accounts from usage and Turn signups into pipeline read PostHog this way.
What the PostHog connector can't do
- Create, edit or toggle a feature flag, write an insight or a cohort, delete a person or a recording, or send events. None of these exists in the connector; do them in PostHog. The one write is an annotation.
- Play a session recording. It returns the metadata.
- Re-run an insight saved in PostHog's older filters format. It says so rather than returning a different number.
- Return more than 101 rows from a query with no
LIMIT. Aggregations belong in the query itself. - Report a total from a page of people or events. Those lists carry no count; a count is a query.
- Answer account-level questions on a project that does not use group analytics.
Why through Tulina
The connection was never the hard part.
Most systems now publish their own way for a model to reach them, and that is good: it is what Tulina connects to. The hard part is deciding who may use it, what it is allowed to return, and what the model knows before it asks.
The keys stay in one place
YouTeamOrganisation
Connect PostHog once. The credential is encrypted in a vault, never held in clear, and never pasted into a chat or a workflow file. A person uses their own key where they have one, their team's where they do not, the organisation's after that, so nobody is blocked and nobody holds more access than they need. Revoke it once and everything running on it stops.
What leaves is filtered before it leaves
fields droppedmasked or hashedpseudonymised
Roles decide who can reach PostHog at all. Beyond that, a policy on the connector itself decides what comes back. The data is minimised at the source rather than after it has already reached a model.
Every call is on the record
whatwhowhen
Runs are logged for the organisation. That is what makes an automated action reviewable after the fact, and it is what a security review asks for first.
The run starts knowing your company
namingkey accountsdecisions
A direct connection gives a model access. It does not tell it how your company names things, which accounts matter, or what was decided last quarter. Tulina carries that across every tool, so the same request against PostHog returns something usable instead of something generic.
Processes that run on PostHog
Catch churn signals and answer them
Usage falling away shows up in analytics before anyone notices on a call, and the drop is read against the account's history into one reactivation email.
4 steps →Expand accounts from usage
Each morning, accounts near a plan limit or on a feature their plan lacks get an offer priced on your packaging rules, an expansion deal and a drafted proposal.
7 steps →Follow champions who change jobs
Each week, champions at won accounts are checked for a new employer, the new company is scored on your ICP, and a warm deal opens with a note for the right rep.
7 steps →Prepare for a customer call
Before the call, the last conversations, the account's state, how the product is actually used, and where requested features stand, in one brief.
5 steps →Turn signups into pipeline
PQL scoring for every trial signup: enriched, scored on your ICP, the first session read, a play chosen by your rules and a deal opened for the right rep.
7 steps →