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.
选择你使用的 AI 应用,然后复制设置。
通过 4/4 项检查 · 你的提问会经过开发者的服务器(app.chatbotx.io) · ✓ 命令已检查 2026年11月13日
第一步:你用哪个 AI?
选择你用的应用,步骤会显示在下方。
可连接 Claude · 约 2 分钟
不需要密钥,不用安装程序 · 在 claude.ai 或桌面应用设置一次,即可在聊天中使用 · 免费账户可添加 1 个 · Team/Enterprise 方案由所有者(Owner)添加
CustomizeConnectors
把这里的内容复制到 Claude 中同名的输入框,然后点击 Continue
ChatbotXhttps://app.chatbotx.io/mcp/messages在 Claude 检测到的登录设置页点击 Continue · Authentication 按作者说明选择(Sign in now、Sign in when needed 或 No sign in),然后点击 Add
+ConnectorsChatbotX
用 ChatbotX 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Claude 说正在使用 ChatbotX,或回答中出现 ChatbotX 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同
能否连接 ChatGPT 取决于方案
完整 MCP:网页版 ChatGPT Business、Enterprise 或 Edu · Pro:以读取/获取权限连接,修改数据的工具可能用不了 · Plus:官方文档尚未确认,如果在插件页看到添加自定义 MCP 的选项可以试试 · 仅限网页
Plugins+Add custom MCP server
输入名称,在 Connection 下粘贴地址,勾选风险提示,然后点击 Create as a plugin
ChatbotXhttps://app.chatbotx.io/mcp/messages开启新聊天,输入前先从插件列表中选择 ChatbotX
用 ChatbotX 告诉我你能帮我做什么,然后做一件给我看✓ 如果 ChatGPT 说正在使用 ChatbotX,或回答中出现 ChatbotX 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 OpenAI 帮助页面核实 · 你的界面可能因版本略有不同
可连接 Claude Code · 约 2 分钟
不需要密钥,不用安装程序
Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell
claude mcp add --transport http --scope user chatbotx https://app.chatbotx.io/mcp/messages应能看到 ChatbotX 在列表中并显示已连接
用 ChatbotX 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Claude Code 说正在使用 ChatbotX,或回答中出现 ChatbotX 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同
可连接 Cursor · 约 2 分钟
不需要密钥,不用安装程序
用 ChatbotX 告诉我你能帮我做什么,然后做一件给我看✓ 如果 Cursor 说正在使用 ChatbotX,或回答中出现 ChatbotX 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同
可连接 VS Code · 约 2 分钟
不需要密钥,不用安装程序
用 ChatbotX 告诉我你能帮我做什么,然后做一件给我看✓ 如果 VS Code 说正在使用 ChatbotX,或回答中出现 ChatbotX 的工具名称,就表示连接成功
菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同
其他支持 MCP 的应用(如 Windsurf、Zed、Gemini CLI)添加方式各不相同,请在应用列表中查看
通过网页连接的应用使用的地址
https://app.chatbotx.io/mcp/messagesJSON 设置在下方“开发者专用”中
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"
}
}
}这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。
通过互联网连接,适用于
ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
服务器要求先登录,才会列出它的工具。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月13日
注册名称已通过域名 chatbotx.io 验证(注册中心会核实域名所有权)
代码最后更新于今天
不适用:由 chatbotx.io 的所有者自己运行的云端服务器,你不会运行仓库里的代码
在 309 毫秒内响应(HTTP 401)
声明支持 OAuth 登录,你的 AI 应用可以带你去登录
尚未检查;我们会在检查端点时读取工具列表
提问、分享技巧或报告无法使用。按“有帮助”数量排序。
还没有评价
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 4 项适用的基础检查中通过了 4 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于今天,最新版本(1.8.1)于7天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,因此也能用于接受远程 MCP 的应用,例如网页版 ChatGPT(Business 及以上为完整 MCP;Pro 为只读)。
同一分类中有:PostHog MCP Server, Openshorts, Google Ads + Meta Ads + SEO/GEO MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
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
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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.