Share of calls by harness
Contents
The Share of calls by harness card on the MCP analytics dashboard compares tool call volume across harnesses. A harness is the client that made the call, such as Claude Code, Cursor, or ChatGPT.
Horizontal bars rank harnesses by call count. Each bar shows its percentage of all tool calls in the selected date range and filters, and its call count. Hover over a bar to see the full harness name, calls, share, sessions, and error rate.
The card counts $mcp_tool_call events.
Each tool call counts once, toward one harness.
The card does not count sessions or users.
- The six harnesses with the most calls get their own bars.
- Other harnesses combines every other harness and calls from clients that PostHog does not recognize. Its gray bar stays in the percentage denominator, so the bars add up to 100%.
- The line above the bars shows the total call count and the share of calls in Other harnesses.
- Select Show all harnesses to see every harness in a table.
Colors stay consistent when rankings change. Claude harnesses use terracotta shades, OpenAI harnesses use green shades, and VS Code uses blue. Monochrome brands such as Cursor and Grok use a neutral color that adapts to light and dark themes. Remaining named harnesses use brand colors or stable palette colors.
How PostHog identifies the harness
PostHog assigns each call a harness from the client identity captured with it: the vendor header, the User-Agent, and the client name. How the harness label is resolved lists the order PostHog checks them in, and what to check if most calls land in Other harnesses.
Harness labels in SQL
properties.$virt_mcp_harness returns the resolved harness label as a string on MCP events, and NULL on other events.
You can filter and group by it in HogQL:
The activity feed and recent calls table explicitly request logos for their Client and Model columns with withIcon(label, mark).
SQL results also add a harness logo automatically when you select properties.$virt_mcp_harness directly, including with an AS alias.
The value stays a string for grouping and filtering. Nested queries do not yet carry the display hint.











