1{2 "$schema": "https://json-schema.org/draft/2020-12/schema",3 "title": "MCP tool-calls scout record",4 "description": "One measurement the MCP tool-calls scout records per run. Two kinds: a per-category roll-up of the run's numbers, and a per-tool session-share row for the called-too-much lens.",5 "type": "object",6 "oneOf": [7 {8 "title": "category_rollup",9 "description": "One record per category with traffic in the window, healthy ones included, plus the project-wide baseline under category `all`. Subject is `category:<category>`."
33 "description": "Definition version. Charts filter on it, so bump it when a field's meaning changes."
34 },
35 "mcp_regime": {
36 "enum": ["hono", "external_sdk"],
37 "description": "Which telemetry regime the numbers came from (query 0)."
38 },
39 "mcp_window_days": {
40 "type": "integer",
41 "minimum": 1,
42 "maximum": 90,
43 "description": "Length of the measured window in days."
44 },
45 "mcp_category": {
46 "type": "string",
47 "maxLength": 100,
48 "description": "Owning product category. `Uncategorized` for the no-category bucket, `all` for the project-wide baseline record."
49 },
50 "mcp_calls": {
51 "type": "integer",
52 "minimum": 0,
53 "description": "Calls to the category's tools in the window."
54 },
55 "mcp_errors": { "type": "integer", "minimum": 0, "description": "Errored calls in the window." },
56 "mcp_sessions": {
57 "type": "integer",
58 "minimum": 0,
59 "description": "Distinct sessions that called the category's tools."
60 },
61 "mcp_users": {
62 "type": "integer",
63 "minimum": 0,
64 "description": "Distinct users that called the category's tools."
65 },
66 "mcp_error_rate_pct": {
67 "type": "number",
68 "minimum": 0,
69 "maximum": 100,
70 "description": "Errors as a percentage of calls."
71 },
72 "mcp_struggle_session_pct": {
73 "type": ["number", "null"],
74 "minimum": 0,
75 "maximum": 100,
76 "description": "Percentage of the category's sessions with hammering or fail-then-retry (query 11). Null when none of the category's calls carry a session id."
77 },
78 "mcp_p95_duration_ms": {
79 "type": ["number", "null"],
80 "minimum": 0,
81 "description": "p95 call duration in milliseconds (query 11). Null when none of the category's calls carry a duration."
82 },
83 "mcp_problem_tools": {
84 "type": "integer",
85 "minimum": 0,
86 "description": "Distinct tools in the category that cleared any lens's per-tool bar this run, session share included."
87 },
88 "mcp_share_of_project_calls_pct": {
89 "type": "number",
90 "minimum": 0,
91 "maximum": 100,
92 "description": "The category's share of all $mcp_tool_call volume in the window."
96 "description": "What the scout did with this category this run."
97 }
98 }
99 },
100 {
101 "title": "tool_session_share",
102 "description": "One record per tool per source for the top tools by session share — the called-too-much lens (query 10). Subject is `tool:<tool>:<source>`.",
121 "description": "Definition version. Charts filter on it, so bump it when a field's meaning changes."
122 },
123 "mcp_tool": {
124 "type": "string",
125 "maxLength": 100,
126 "description": "Inner tool name, with the exec dispatcher unwrapped as the cookbook does."
127 },
128 "mcp_source": {
129 "type": "string",
130 "maxLength": 40,
131 "description": "Calling surface, for example self_driving, mcp, posthog_code, slack, posthog_ai, wizard."
132 },
133 "mcp_category": {
134 "type": "string",
135 "maxLength": 100,
136 "description": "The tool's owning product category, or `Uncategorized`."
137 },
138 "mcp_sessions_with_call": {
139 "type": "integer",
140 "minimum": 0,
141 "description": "Sessions with at least one call to this tool."
142 },
143 "mcp_sessions_total": {
144 "type": "integer",
145 "minimum": 0,
146 "description": "All MCP sessions for that source in the window."
147 },
148 "mcp_session_share_pct": {
149 "type": "number",
150 "minimum": 0,
151 "maximum": 100,
152 "description": "Sessions with a call as a percentage of all sessions for the source."
153 },
154 "mcp_calls_per_session": {
155 "type": "number",
156 "minimum": 0,
157 "description": "Mean calls per session that used the tool."
158 },
159 "mcp_share_pct_prior_window": {
160 "type": ["number", "null"],
161 "minimum": 0,
162 "maximum": 100,
163 "description": "The same share over the preceding window, for a step-change read. Null when the source had fewer than 20 sessions in the prior window."