PostHog MCP Server
Official PostHog MCP Server for product analytics, feature flags, experiments, and more.
Omnichannel customer messaging, CRM contacts, flows, sequences, broadcasts, and AI automation.
Pick the AI app you use, then copy the settings.
Passed 4/4 checks · What you ask goes through the maker’s server (app.chatbotx.io) · ✓ Commands checked Nov 13, 2026
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude · about 2 min
No key, nothing to install · Set it up once on claude.ai or the desktop app, then use it in chat · free accounts can add 1 · on Team/Enterprise an Owner adds it
CustomizeConnectors
Copy each value into the field with the same name in Claude, then click Continue
ChatbotXhttps://app.chatbotx.io/mcp/messagesClick Continue past the sign-in settings Claude detected · under Authentication choose what the maker says (Sign in now, Sign in when needed or No sign in), then click Add
+ConnectorsChatbotX
Use ChatbotX and tell me what you can do for me, then show me one thing✓ If Claude says it is using ChatbotX or shows a ChatbotX tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with ChatGPT, depending on your plan
Full MCP: ChatGPT Business, Enterprise or Edu on the web · Pro: connects with read/fetch permissions, so tools that change data may not work · Plus: not confirmed in OpenAI’s docs; if you see an add-custom-MCP option on the Plugins page you can try these steps · web only
Plugins+Add custom MCP server
Enter a name, paste the address under Connection, tick the risk warning and click Create as a plugin
ChatbotXhttps://app.chatbotx.io/mcp/messagesStart a new chat and pick ChatbotX from your plugins before typing
Use ChatbotX and tell me what you can do for me, then show me one thing✓ If ChatGPT says it is using ChatbotX or shows a ChatbotX tool in the answer, you are connected
Menu names checked against OpenAI’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Claude Code · about 2 min
No key, nothing to install
Mac: press Command+Space and type Terminal · Windows: open PowerShell
claude mcp add --transport http --scope user chatbotx https://app.chatbotx.io/mcp/messagesYou should see ChatbotX listed as connected
Use ChatbotX and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using ChatbotX or shows a ChatbotX tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor · about 2 min
No key, nothing to install
Use ChatbotX and tell me what you can do for me, then show me one thing✓ If Cursor says it is using ChatbotX or shows a ChatbotX tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code · about 2 min
No key, nothing to install
Use ChatbotX and tell me what you can do for me, then show me one thing✓ If VS Code says it is using ChatbotX or shows a ChatbotX tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
Address for apps that connect over the web
https://app.chatbotx.io/mcp/messagesJSON settings are under “For developers” below
Claude Code
claude mcp add --transport http --scope user chatbotx https://app.chatbotx.io/mcp/messagesCursor (~/.cursor/mcp.json)
{
"mcpServers": {
"chatbotx": {
"url": "https://app.chatbotx.io/mcp/messages"
}
}
}VS Code (mcp.json)
{
"servers": {
"chatbotx": {
"type": "http",
"url": "https://app.chatbotx.io/mcp/messages"
}
}
}These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Connect over the internet in
ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
The server asks you to sign in before it lists its tools.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 13, 2026
The registry name was verified against the domain chatbotx.io (the registry checks domain ownership)
Code last changed today
Not applicable: a cloud server run by the owner of chatbotx.io; you don't run code from the repo
Responded in 309 ms (HTTP 401)
Declares OAuth sign-in, so your AI app can take you to log in
Not checked yet; we read the tool list when we check the endpoint
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
No reviews yet
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 4 of 4 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed today, and the latest version (1.8.1) reached the registry 7 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT on the web (full MCP on Business and above; Pro read-only).
In the same category: PostHog MCP Server, Openshorts, Google Ads + Meta Ads + SEO/GEO MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Official PostHog MCP Server for product analytics, feature flags, experiments, and more.
Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.
Google Ads, Meta Ads, Google Analytics (GA4) & Search Console MCP server by Ryze AI
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Model Context Protocol server for ChatbotX. Gives AI agents (Claude, Cursor, ChatGPT, etc.) access to your ChatbotX workspace through tools that are automatically generated from the ChatbotX OpenAPI spec — no manual tool definitions needed.
Published skill/agent distribution docs live in the separate chatbotx-agent package; this repo owns the MCP server implementation and README.
On startup the server fetches {CHATBOTX_API_URL}/public-spec.json and registers one MCP tool per API operation the spec marks x-mcp.visibility: "default". CHATBOTX_API_URL is the origin including the /api path prefix (e.g. https://app.chatbotx.io/api). Adding a new default-visible API endpoint in ChatbotX automatically makes it available as a tool — the spec is re-fetched in the background whenever it's older than CHATBOTX_SPEC_TTL_MS (default 5 minutes), so a new/changed operation shows up on the next tools/list call without a server restart.
Remote MCP clients should authenticate through OAuth 2.1. The production endpoints are https://app.chatbotx.io/mcp/messages for Streamable HTTP and https://app.chatbotx.io/mcp/sse for legacy SSE — the same URL for every account, so it works as a Claude or ChatGPT marketplace connector. The user picks the target workspace on the consent screen, and every token the client holds acts on that workspace; to switch, disconnect and connect again. Only workspace owners and superAdmin members can authorize. An explicit ?workspace_id= (or x-workspace-id header) may select a workspace only for legacy connections that predate the picker. A different workspace than the one consented for a new connection is rejected; disconnect and connect again to switch. The builder settings block Settings → Integrations → ChatbotX MCP provides the exact connection URL and lets each user revoke their OAuth grants.
Legacy workspace tokens remain supported for stdio and existing connections.
ChatbotX's public API has ~350 operations. Listing all of them as MCP tools overwhelms an agent's context and its ability to pick the right one, so tools/list returns only a curated default set (see below) plus three meta-tools:
| Tool | Description |
|---|---|
search_tools | Search the full API for a tool not in the default set. Returns { matches, hint? }, where each match has its name, description, and input schema. |
call_tool | Execute any tool by name, including ones search_tools found but tools/list doesn't show. |
get_guide | Read an operational safety guide when a workflow involves approvals, flows, inbox handover, contacts, or pipelines. |
Use search_tools when the task needs something outside the default set (e.g. deleting a resource, managing AI agents, coupons, products) — then invoke it with call_tool.
search_tools's catalog (tool names, summaries, descriptions) is entirely English. The calling client must translate the user's intent into an English "action + resource" query before searching; the ranker does not translate. When an accented Latin or non-Latin query reaches the server, search_tools returns a hint asking the client to translate and retry in English.
contacts.get, contactsGet) is accepted and re-derived to the executable snake_case name — you don't have to pass the exact string search_tools returned.name returns the closest matching tool names instead of a bare error, so a model can self-correct without another search_tools round trip.call_tool invocation missing a field the selected tool's inputSchema marks required is rejected immediately with the missing field names, instead of waiting for the real API's 422. A common wrapper mistake (nesting every field under body/params/input instead of passing them at the top level) is called out explicitly.+-prefixed or local 0-prefixed phone number, or numeric id passed as identifier to a contact tool is automatically prefixed (email:/phone:/id:) before the request is sent, matching what the API actually requires.Every operation carries an x-mcp.hitlPolicy from the public OpenAPI spec; reads use none. Mutating operations return CONFIRMATION_REQUIRED with the policy, proposed arguments, and current state when available; show that response to the user, then repeat the same call with _confirm: true only after explicit approval. _confirm is a compatibility guardrail, not an authorization boundary.
Writes that are read-only computations declare hitlPolicy: "none" in the backend. Destructive writes also carry the MCP destructiveHint annotation. When a current-state read fails for any reason, currentState is omitted and currentStateUnavailable explains why; the failed read never blocks confirmation.
Every tools/list definition also includes a human-readable title and explicit readOnlyHint, destructiveHint, idempotentHint, and openWorldHint annotations. Dynamic tool titles come from the OpenAPI operation summary. The loader marks confirm_outbound operations as open-world by default; an x-mcp.openWorldHint override takes precedence.
tools/list is further narrowed to what the calling token can actually use, resolved once per token via GET /v1/token (introspectToken, cached per token value for CHATBOTX_SPEC_TTL_MS):
search_tools/call_tool, which always hit the real API and get a real 403 if unauthorized).read_only token only sees tools whose readOnlyHint annotation is true — every GET by default, plus any POST explicitly marked x-mcp.readOnlyHint: true for an endpoint that reads without writing (no default tool currently uses this).capabilities_get and token_get are always visible regardless of scope — an agent needs them to discover what it *can* do and what its token allows before anything else works.tools/list falls back to the full default set. The actual API call still enforces the token's real permissions either way.| Tool | Description |
|---|---|
capabilities_get | Discover workspace entities and query channel before authoring a channel-bound FlowSpec to receive its supported blocks and limits. |
token_get | Get the calling token's workspace id, permission (read_only/full), and scopes — check before attempting a write. |
schemas_flow_spec | Get the JSON Schema for the spec object flows_publish/flows_update_draft/flows_validate accept — the authoritative reference for every flow step type. |
Tool names are derived from the OpenAPI operationId converted to snake_case (e.g. tags.list → tags_list). The current default set has 52 tools:
| Tool | Description |
|---|---|
capabilities_get | Discover workspace entities and a requested channel's FlowSpec policy |
schemas_flow_spec | Get JSON Schema for flow-spec DSL |
token_get | Get calling token workspace id, permission, and scopes |
| Tool | Description |
|---|---|
ai_agents_list | List AI agents |
ai_agents_create | Create AI agent |
ai_agents_update | Update AI agent |
ai_files_list | List AI files |
ai_functions_list | List AI functions |
| Tool | Description |
|---|---|
analytics_new_contact_counts_per_day | Get new contact counts per day |
analytics_blocked_contacts_per_day | Get blocked contacts per day |
analytics_flow_stats | Get flow analytics |
analytics_broadcast_stats | Get broadcast stats |
analytics_sequence_step_stats | Get sequence step stats |
| Tool | Description |
|---|---|
broadcasts_list | List broadcasts |
broadcasts_get | Get broadcast |
broadcasts_stop | Stop broadcast |
| Tool | Description |
|---|---|
connections_create | Connect channel or integration |
connection_providers_list | List connection providers |
connect_sessions_get | Get connect session |
For connections_create with provider: "api", the response includes a one-time secret.token. Store it before discarding the response; it is never retrievable again.
| Tool | Description |
|---|---|
contacts_create | Create contact |
contacts_get | Get contact by identifier (id:123, email:user@example.com, phone:+84...) |
contacts_list | List contacts |
contacts_list_tags | Get all tags added to contact |
contacts_add_tags_by_name | Add tags to contact by name |
contacts_list_custom_fields | Get all custom fields from contact |
contacts_set_custom_field | Set contact custom field value |
contacts_list_messages | List messages for contact |
contacts_send_message | Send message to contact |
contacts_send_flow | Send flow to contact |
contacts_list_sequences | List contact sequence subscriptions |
contacts_subscribe_sequences | Subscribe contact to sequences |
| Tool | Description |
|---|---|
conversations_list | List conversations |
conversations_get | Get conversation |
conversations_assign | Assign or unassign conversation to user or inbox team |
| Tool | Description |
|---|---|
error_logs_list | List error logs |
| Tool | Description |
|---|---|
flows_list | List flows |
flows_get | Get flow |
flows_create | Create flow |
flows_update_draft | Update flow draft |
flows_publish | Publish flow |
flows_validate | Compile and validate flow spec without publishing |
| Tool | Description |
|---|---|
keywords_list | List keywords (automated responses) |
| Tool | Description |
|---|---|
messages_list | List messages on conversation |
| Tool | Description |
|---|---|
mini_apps_list | List Mini Apps |
mini_apps_create | Create Mini App |
| Tool | Description |
|---|---|
pipelines_list | List pipelines |
pipelines_list_items | List pipeline items |
pipelines_create_item | Create pipeline item |
pipelines_move_item | Move item to stage |
| Tool | Description |
|---|---|
sequences_list | List sequences |
sequences_get | Get sequence |
sequences_update | Update sequence name or active state |
Everything else — deletes, less-common resources (coupons, products, webhooks, saved replies, tags/triggers/inboxes/custom-fields management, workspace members, etc.), connection lifecycle management beyond the initial connect (disconnect, reconnect, refresh, verify, rename) — is reachable via search_tools → call_tool, not tools/list.
Operations whose security names no workspace-token scheme are not tools at all — isWorkspaceTokenOperation (src/openapi-loader.ts) drops them, so neither tools/list nor search_tools returns them. That covers deprecated operations, channel-token operations (/v1/channels/api/*), and the mobile-app-only member surface (/v1/me*, /v1/realtime/connect-token, marked by MOBILE_APP_TOKEN_ONLY_PATHS in apps/builder/src/lib/orpc/public-spec.ts): an MCP OAuth or workspace token has no member identity and would always get 401.
conversations_list accepts view: "compact" to drop ad attribution and thread-control metadata from each conversation's contact inboxes (default full); flows_list accepts enableInInbox: true to return only flows that can be started from the inbox.