posthog码模式mcp
紧凑的 主控程序 服务器 后霍格 它用一个工具替换了默认的~70k令牌PostHog MCP服务器。
受Cloudflare的启发 代码模式 模式:该服务器没有公开几十个单独的工具(每个API端点一个),而是公开一个 posthog 该工具在带有类型化PostHog API客户端的沙盒虚拟机中执行JavaScript代码。
为什么?
官方的PostHog MCP服务器提供了约70k个工具定义令牌。在你提问之前,这是一个很大的上下文窗口。此服务器通过让LLM针对类型化客户端编写代码,使用单个工具定义(约2k个令牌)实现了相同的覆盖率。
设置
1.安装依赖项
npm install2.配置环境
复制示例并填写您的值:
cp .env.example .envPOSTHOG_API_KEY=phx_your_personal_api_key
POSTHOG_PROJECT_ID=12345- API密钥:在创建个人API密钥https://us.posthog.com/settings/user-api-keys
- 项目编号:在PostHog项目设置URL中查找您的项目ID
3.添加到克劳德代码
将此添加到您的Claude Code MCP配置中(~/.claude/settings.json 或项目级别):
{
"mcpServers": {
"posthog-code-mode": {
"command": "node",
"args": ["/path/to/posthog-code-mode/index.js"],
"env": {
"POSTHOG_API_KEY": "phx_your_key",
"POSTHOG_PROJECT_ID": "12345"
}
}
}
}或者如果使用 .env 文件,指向目录并加载您喜欢的env-vars。
用法
服务器公开了一个 posthog 工具。LLM编写在沙盒VM中运行的JavaScript posthog 客户端对象可用作全局对象。
示例
按类型统计事件(过去7天):
const result = await posthog.query({
kind: "HogQLQuery",
query: "SELECT event, count() FROM events WHERE timestamp > now() - interval 7 day GROUP BY event ORDER BY count() DESC LIMIT 20"
});
console.log(result.results);列出功能标志:
const flags = await posthog.featureFlags.list({ limit: 50 });
console.log(flags.results.map(f => ({ key: f.key, active: f.active })));对任何端点使用逃逸舱口:
const result = await posthog.api("GET", "/session_recordings", { limit: 5 });
console.log(result.results);API覆盖范围
这 posthog 客户端为以下对象提供类型化方法:
- HogQL查询 —
posthog.query() - 洞察 --积垢
- 仪表盘 --积垢
- 事件 --列表
- 人员 --列表,获取
- 功能标志 --积垢
- 实验 --CRUD+结果
- 队列 --积垢
- 注释 --列表、获取、创建
- 行动 --积垢
- 调查 --积垢
- 错误跟踪 --列表、获取、更新
- 安全舱口 —
posthog.api(method, path, body)对于上面未涵盖的任何内容
许可证
国际学生中心
