关于 exploring-mcp-tool-usage
用于探索 MCP 工具使用情况的 PostHog 技能,可帮助用户选择分析方向,并转到专用分析工具或 SQL。涵盖工具表现、故障、调用者、会话和 Agent 意图。
主要功能
- 01提供 MCP 使用分析问题建议
- 02将查询转至专用分析工具
- 03检查调用、错误、延迟和调用者
- 04探索会话与 Agent 意图
- 05用 SQL 分析未覆盖的维度
适用场景
- 01找出故障率或延迟较高的工具
- 02查看单个工具的趋势和调用者
- 03追踪 Agent 会话中的工具调用
- 04比较不同客户端框架的 MCP 使用情况
MCP 相关
此技能引导 Agent 使用 PostHog 的 MCP 分析工具,并在必要时通过 SQL 查询 MCP 工具调用事件。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ posthog/ ai-plugin --skill exploring-mcp-tool-usage安装后在 Claude Code 中输入/exploring-mcp-tool-usage确认已加载。
详细介绍
探索 MCP 工具的使用情况
任何使用 @posthog/mcp SDK 进行埋点的 MCP 服务,每当 Agent 调用工具时,都会发出一个 $mcp_tool_call
事件。对于知道自己想了解 MCP 工具使用情况,但还没确定具体问题的用户,这项技能是入口。先提供下方菜单,再根据用户的选择,转到相应的工具或专门技能。
优先使用受治理的指标
如果用户询问 MCP 失败率或百分比,请先调用 posthog:metric-list,再调用任何类型化工具或使用 SQL 方案,并查找 mcp_tool_call_fail_pct。使用 posthog:data-catalog-metric-run 运行一个已批准且未发生漂移的匹配查询,获取规范的摘要指标。如果用户还询问是哪个工具或执行环境导致了失败,请先回答摘要指标,再使用下方的逐工具工作流提供非规范的细分结果。如果没有匹配的受治理指标,请说明这一点,并将计算得出的比率标记为非规范。
此处的每个逐工具工具都接受 toolName(实际生效的工具名称,由服务端解析,因此请传入 Agent 实际调用的名称;但 posthog:query-mcp-tool-failures 除外,它匹配 $exception 事件,因此接受原始注册的 $mcp_tool_name)
和 dateRange,并运行与工具详情界面相同的查询运行器。因此,结果与界面一致,你也无需手写 HogQL。
推荐问题
用户不确定该问什么时,先从以下问题入手:
| 询问用户…… | 由……回答 |
|---|---|
| “哪些工具失败最多,或者最慢?” | exploring-mcp-tool-quality(对所有工具排名),然后用 posthog:query-mcp-tool-stats 深入查看 |
| “工具 X 的整体表现如何?” | posthog:query-mcp-tool-stats — 调用次数、错误、p50/p95、用户、会话、意图 |
| “工具 X 的趋势如何?” | posthog:query-mcp-tool-daily-stats — 按天统计的序列 |
| “工具 X 为什么会失败?” | posthog:query-mcp-tool-failures — 按执行环境列出主要错误消息(原始工具名称) |
| “谁最常使用工具 X?” | posthog:query-mcp-tool-top-users — 主要调用者(包括个人邮箱/姓名) |
| “工具 X 调用前后调用了什么?” | posthog:query-mcp-tool-neighbors(neighborDirection: before/after) |
| “Agent 试图用工具 X 做什么?” | posthog:query-mcp-tool-sample-intents — 最近的 Agent 意图 |
| “工具 X 注册时使用了什么描述?” | posthog:query-mcp-tool-descriptions — 记录到的不同描述 |
| “哪些执行环境在使用我的 MCP?可靠性如何?” | posthog:query-mcp-harness-breakdown — 按客户端统计调用次数/错误/会话 |
| “Agent 使用所有工具时都试图做什么?” | exploring-mcp-intent-clusters — 语义目标聚类 |
| “有哪些人正在连接?他们的活跃程度如何?” | posthog:mcp-analytics-sessions-list — 每个会话一行,包含客户端和个人信息 |
| “这个会话具体做了什么?” | exploring-mcp-sessions — 单次 Agent 运行中的工具调用序列 |
查找工具名称
每个工具都需要 toolName。如果用户指定了工具名称,就传入该名称。如果用户提出宽泛的“哪个工具……”问题,则从 exploring-mcp-tool-quality 开始,对工具进行排名,选出最突出的工具,然后使用上面的单工具工具进一步分析。要传入的名称是有效工具名称(对于单次执行的包装器调用,即内部工具)——与工具质量排名返回的字符串相同。唯一的例外是 posthog:query-mcp-tool-failures:它会根据原始注册的 $mcp_tool_name 匹配 $exception 事件,而不是有效的内部工具名称。
如何使用单工具工具
使用工具名称和时间范围调用它,例如,查询工具的关键数据:
posthog:query-mcp-tool-stats { "toolName": "<tool>", "dateRange": { "date_from": "-7d" } }
然后从菜单中自然地提出后续查询。例如,posthog:query-mcp-tool-stats 显示错误率较高时,可使用 posthog:query-mcp-tool-failures;显示覆盖面广时,可使用 posthog:query-mcp-tool-top-users 或 posthog:query-mcp-tool-neighbors。
何时改用 SQL
有类型化工具可处理的问题——不要手写 SQL:
| 问题 | 工具 |
|---|---|
| 单个工具的关键数据 | posthog:query-mcp-tool-stats |
| 单个工具的逐日趋势 | posthog:query-mcp-tool-daily-stats |
| 单个工具的常见错误 | posthog:query-mcp-tool-failures |
| 单个工具的主要调用者 | posthog:query-mcp-tool-top-users |
| 单个工具调用前后的工具 | posthog:query-mcp-tool-neighbors |
| 单个工具近期的 Agent 意图 | posthog:query-mcp-tool-sample-intents |
| 单个工具的注册描述 | posthog:query-mcp-tool-descriptions |
| 按客户端运行环境划分的使用情况 | posthog:query-mcp-harness-breakdown |
| 列出会话 | posthog:mcp-analytics-sessions-list |
| 单个会话的工具调用 | posthog:mcp-analytics-sessions-tool-calls |
未覆盖的问题——使用 posthog:execute-sql:
- 跨工具排名(工具质量矩阵——“哪个工具错误最多?”)
- 筛选出错会话(会话列表不支持错误筛选,也不提供错误计数)
- 会话中的有效工具名称(
posthog:mcp-analytics-sessions-tool-calls返回原始$mcp_tool_name,而不是包装器调用的内部工具) - 任何自定义细分
如果你的工具列表中没有上表中的工具,也可以将 posthog:execute-sql 作为后备方案。直接查询 $mcp_tool_call;架构和查询示例见 models-mcp.md。
相关技能
exploring-mcp-tool-quality— 按错误率/延迟/覆盖面为工具排名,然后进一步分析exploring-mcp-sessions— 单次 Agent 运行及其工具调用序列exploring-mcp-intent-clusters— 按语义相似度分组的 Agent 目标