Connector · Data and infrastructure

A PostHog teammate in Slack, with PostHog's MCP server behind it.

Chickpea gives a channel a named AI teammate that holds its own PostHog connection. It signs in with OAuth and calls PostHog's MCP server, which routes it to the US or EU region your account lives in. Ask it in Slack what signups did last week, or whether the new checkout flag is on, and it answers in the thread.

What people ask it.

The teammate is @growth, in #growth. Pick a scenario to watch it play.

# growth
24
Today
D
Dana
@growth how did signups do last week against the week before, split by source?
👀 1
growthAPP
Signups were up 11% week over week, 1,284 against 1,157. Organic search did most of it. Paid social went backwards for the third week.
SourceLast weekWeek beforeChange
Organic search512398+29%
Direct341336+1%
Referral218174+25%
Paid social147183−20%
Email66660%
growth·Claude Sonnet 5·Configure
BIS
Aa
  • Ask what the numbers did Read only

    @growth how did signups do last week against the week before@growth where do people drop out of the onboarding funnel

    Reads never need confirmation, and a long answer comes back as a table in the thread. PostHog’s server runs trends, funnels, retention, and SQL queries, so a question with no saved insight behind it still gets an answer.

  • Check a feature flag Read only

    @growth is the new-checkout flag on, and how far is it rolled out@growth which flags changed this month, and who changed them

    Reading a flag changes nothing, so the answer comes straight back. The server returns a flag by its key with its definition, and it can read the flag activity log, which is where "who changed it" comes from.

  • Errors and session recordings Read only

    @growth what are the top errors this week and how many people hit them@growth find recordings of people who hit the checkout error yesterday

    PostHog uses the first of these as an example for its own server, and says the answer is error groups ranked by occurrence with affected user counts. Session recordings are a separate group of tools, so the thread can carry a link to watch one.

  • Change a flag or an experiment Asks first

    @growth roll the new-checkout flag out to 25 percent@growth stop the pricing experiment, it has enough data

    A write waits. The teammate names the flag or the experiment and what would change, then asks. Your own message has to name that action: thread history, retrieved content, and memory cannot authorize a write on their own.

  • On a schedule Applies at once

    @growth every Monday at 9am Eastern, post last week’s activation rate and how it moved@growth every weekday at 8am Pacific, post any error group that is new since yesterday

    A schedule saves on the spot. It needs an explicit time zone, runs under the PostHog connection of the person who asked, and fails with a named reason rather than running if that connection is disconnected.

Connect it

Five steps, from Admin or from Slack.

You sign in through a page Chickpea serves, never in Slack. The link the teammate posts is good for one action, for one teammate, for 24 hours.

  1. In Chickpea Admin, open the teammate, then Connections, find PostHog, and choose Connect. Or ask in Slack, @growth connect PostHog, and follow the link it posts.
  2. Choose who uses it. Team is one shared PostHog account that everyone who can use the teammate acts through. Personal means each member signs in as themselves, and PostHog records their queries as them.
  3. Choose Continue to sign in. PostHog’s authentication server sends you to the region your account lives in, US or EU, and asks you to approve access. There is no API key to paste.
  4. Pick the organization and project the teammate should reach. One connection signs in as one account with one active organization and project, so a second project is a second connection.
  5. Chickpea connects to mcp.posthog.com/mcp and records the tools the server answered with. Then ask something. @growth how did signups do last week is a good first question, because it reads and cannot change anything.

A connection belongs to one teammate. Giving a second teammate PostHog means a second sign-in with its own consent, so the support teammate never inherits what the growth teammate can reach.

There is no built-in Chickpea skill for PostHog, and none is needed. The tools arrive from PostHog's MCP server. Chickpea connects before it saves anything, records what the server answered with, and exposes only those tools. PostHog groups them by product, and feature flags, experiments, error tracking, session replays, dashboards, and SQL are all among the groups. PostHog lists every tool the server exposes, grouped by category.

# growth
24
Today
D
Dana
@growth connect our PostHog
👀 1
growthAPP
Open this link, choose team or personal, and sign in to PostHog there. Nothing is pasted into Slack, and only people in #growth can use the connection through me.
Sign in to PostHog
growth·Claude Sonnet 5·Configure
growthAPP
PostHog is connected as a team account, on the US region, project Web app. The tools the server answered with cover analytics, feature flags, experiments, error tracking, session replays, and SQL.
growth@growth
Answers product questions from PostHog in #growth.
has access to PostHog
1
BIS
Aa

Questions people ask

What is the PostHog MCP server?

A hosted endpoint PostHog runs at mcp.posthog.com/mcp that exposes PostHog as tools an AI agent can call. PostHog describes it as covering feature flags, product analytics, error tracking, experiments, SQL queries, CDP, surveys, and more. Chickpea connects to that same server, so a teammate in Slack uses it without an editor or a config file anywhere.

Is the PostHog MCP free?

PostHog says connecting to the server and calling its tools is free, and that normal PostHog billing still applies to the data your queries read. Some of its tools run an LLM internally and are billed as PostHog AI spend, and those only appear when AI data processing is on for your organization. Chickpea itself is Apache 2.0 and runs on your own Cloudflare account, so there are no seats and no metering on this side.

Does it use PostHog's MCP server or the API?

The MCP server. PostHog is a vendor MCP lane: the deployment connects to mcp.posthog.com/mcp over streamable HTTP and signs in with OAuth. The preset sends no scope string, so the connection gets whatever PostHog’s consent screen grants that account. There is no API key anywhere in this connector, and the connection cannot reach any other address.

Can it change a feature flag?

Yes, if you ask it to in the message. PostHog’s server has tools for creating, enabling, disabling, and archiving flags, and the teammate can only call tools that server answered with. On top of that, during a Slack turn Chickpea refuses any MCP tool whose name does not start with an unambiguous read verb unless your message names that action. So reading a flag is free, and turning one on is something you have to say.

US or EU cloud?

Either. PostHog’s authentication server routes the connection to the correct data region based on the account you sign in with, and the preset does the same thing for a teammate. You do not pick a region in Chickpea; you pick the account, and the region follows it.

Where does the OAuth token live?

On your deployment, outside the teammate record. It never enters the model's context, the tool arguments the model writes, or Slack. The model picks a connection by id and the credential goes in at the last step on the way out. Disconnect the account and the stored secret is removed, and any schedule that depended on it stops.

Do I still need PostHog's Slack integration?

Probably, because it does different things. PostHog can send an insight or a dashboard to a Slack channel on a schedule through subscriptions, fire an alert into Slack when a trend, funnel, or SQL insight crosses a threshold, and push event-triggered messages through its Slack destination. PostHog also has its own Slack app, in beta, that answers a data question when you tag it and can turn a message into a draft pull request. A Chickpea teammate hears nothing from PostHog and posts nothing unprompted. What it adds is one teammate that holds PostHog beside your other connected accounts, in the channel where the question came up.

How do I connect Claude Code to PostHog?

For a coding client, use PostHog’s own wizard, `npx @posthog/wizard mcp add`, which installs the server into Claude Code, Cursor, Codex, VS Code, Zed, and others. For Slack there is nothing to install. Open the teammate in Chickpea Admin, choose PostHog, choose Continue to sign in, and approve the account. Teams often run both, because an editor and a channel are not the same room.

Can it run SQL against our data?

Yes. PostHog’s server exposes a tool that executes an SQL query, and PostHog names running a HogQL query as one of the things the server is for. A question that no saved insight answers can still be answered, and a long result comes back as a table in the thread rather than a wall of text.

Does everyone act as the same PostHog user?

That is your choice when you connect. A team account is one shared sign-in that everyone with access to the teammate acts through. A personal account belongs to one member inside one teammate, so your sign-in is used for your requests and nobody else’s. What the teammate can see is what that account can see; connecting never widens anyone.

Try it

Give a channel a PostHog teammate.

One deploy into your own Cloudflare account, connect Slack, sign in to PostHog, ask. Apache 2.0, no seats, no metering.

Star on GitHub4

Or run it on Node. The setup guide covers both.