@posthog/mcp 0.11.6 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +29 -0
  2. package/dist/extensions/analytics-parameters.d.ts +22 -2
  3. package/dist/extensions/analytics-parameters.d.ts.map +1 -1
  4. package/dist/extensions/analytics-parameters.js +39 -0
  5. package/dist/extensions/analytics-parameters.mjs +37 -1
  6. package/dist/extensions/capture.d.ts.map +1 -1
  7. package/dist/extensions/capture.js +2 -0
  8. package/dist/extensions/capture.mjs +2 -0
  9. package/dist/extensions/constants.d.ts +3 -0
  10. package/dist/extensions/constants.d.ts.map +1 -1
  11. package/dist/extensions/constants.js +6 -0
  12. package/dist/extensions/constants.mjs +4 -1
  13. package/dist/extensions/context-parameters.d.ts +2 -2
  14. package/dist/extensions/context-parameters.d.ts.map +1 -1
  15. package/dist/extensions/context-parameters.js +1 -29
  16. package/dist/extensions/context-parameters.mjs +2 -30
  17. package/dist/extensions/conversation-id.d.ts.map +1 -1
  18. package/dist/extensions/conversation-id.js +3 -1
  19. package/dist/extensions/conversation-id.mjs +3 -1
  20. package/dist/extensions/instrument-highlevel.d.ts.map +1 -1
  21. package/dist/extensions/instrument-highlevel.js +4 -1
  22. package/dist/extensions/instrument-highlevel.mjs +5 -2
  23. package/dist/extensions/instrument-lowlevel.d.ts.map +1 -1
  24. package/dist/extensions/instrument-lowlevel.js +1 -0
  25. package/dist/extensions/instrument-lowlevel.mjs +2 -1
  26. package/dist/extensions/instrumentation.d.ts +16 -0
  27. package/dist/extensions/instrumentation.d.ts.map +1 -1
  28. package/dist/extensions/instrumentation.js +15 -2
  29. package/dist/extensions/instrumentation.mjs +11 -1
  30. package/dist/extensions/model-parameters.d.ts +48 -0
  31. package/dist/extensions/model-parameters.d.ts.map +1 -0
  32. package/dist/extensions/model-parameters.js +77 -0
  33. package/dist/extensions/model-parameters.mjs +28 -0
  34. package/dist/extensions/output-instructions.d.ts +0 -1
  35. package/dist/extensions/output-instructions.d.ts.map +1 -1
  36. package/dist/extensions/output-instructions.js +3 -8
  37. package/dist/extensions/output-instructions.mjs +3 -8
  38. package/dist/extensions/posthog-events.js +2 -0
  39. package/dist/extensions/posthog-events.mjs +2 -0
  40. package/dist/extensions/truncation.d.ts.map +1 -1
  41. package/dist/extensions/truncation.js +1 -0
  42. package/dist/extensions/truncation.mjs +1 -0
  43. package/dist/index.d.ts +1 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/types.d.ts +28 -1
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/version.d.ts +1 -1
  48. package/dist/version.js +1 -1
  49. package/dist/version.mjs +1 -1
  50. package/package.json +24 -7
  51. package/src/extensions/analytics-parameters.ts +88 -2
  52. package/src/extensions/capture.ts +4 -0
  53. package/src/extensions/constants.ts +4 -0
  54. package/src/extensions/context-parameters.ts +10 -59
  55. package/src/extensions/conversation-id.ts +4 -1
  56. package/src/extensions/instrument-highlevel.ts +4 -0
  57. package/src/extensions/instrument-lowlevel.ts +2 -0
  58. package/src/extensions/instrumentation.ts +51 -0
  59. package/src/extensions/model-parameters.ts +94 -0
  60. package/src/extensions/output-instructions.ts +3 -9
  61. package/src/extensions/posthog-events.ts +8 -0
  62. package/src/extensions/truncation.ts +3 -0
  63. package/src/index.ts +2 -0
  64. package/src/types.ts +29 -1
  65. package/src/version.ts +1 -1
package/src/types.ts CHANGED
@@ -129,6 +129,20 @@ export interface MCPAnalyticsOptions {
129
129
  enableExceptionAutocapture?: boolean
130
130
  /** Inject a required `context` parameter on every tool to capture user intent. */
131
131
  context?: boolean | MCPAnalyticsContextOptions
132
+ /**
133
+ * Inject a required `llm_model` parameter on every tool so the calling agent
134
+ * self-reports the model it runs as, captured as `$mcp_llm_model` with
135
+ * `$mcp_llm_model_source = "self_reported"`. Off by default.
136
+ *
137
+ * The MCP wire deliberately carries no model identity, so self-report is the
138
+ * only capture path — harnesses inject the model id into the agent's system
139
+ * prompt, and agents restate it accurately. Like `clientInfo` in the MCP
140
+ * spec, the value is unverified: use it for per-model quality analytics, not
141
+ * billing or security. An honest `"unknown"` from the agent is dropped
142
+ * rather than captured. Reasoning effort is intentionally not collected —
143
+ * agents don't reliably know it, so it would only ever be noise.
144
+ */
145
+ captureModel?: boolean | MCPAnalyticsModelOptions
132
146
  /**
133
147
  * Identify the calling user. Returning a non-null value sets `distinct_id` and `$set`
134
148
  * on subsequent events for the session. Object form is treated as a static identity.
@@ -172,8 +186,13 @@ export interface MCPAnalyticsContextOptions {
172
186
  description?: string
173
187
  }
174
188
 
189
+ export interface MCPAnalyticsModelOptions {
190
+ description?: string
191
+ }
192
+
175
193
  export type MaybePromise<T> = T | Promise<T>
176
194
  export type MCPAnalyticsIntentSource = 'context_parameter' | 'inferred'
195
+ export type MCPAnalyticsModelSource = 'self_reported'
177
196
 
178
197
  export type ToolCallback =
179
198
  | ((
@@ -225,6 +244,14 @@ export interface Event {
225
244
  eventId?: string
226
245
  eventType: MCPAnalyticsEventType
227
246
  groups?: Record<string, string>
247
+ /**
248
+ * The calling agent's self-reported model id → `$mcp_llm_model`. Read off
249
+ * the SDK-injected `llm_model` argument (`captureModel` option); unverified
250
+ * by design, like the MCP spec's own `clientInfo`.
251
+ */
252
+ llmModel?: string
253
+ /** How the model id was obtained → `$mcp_llm_model_source`. Always `self_reported` today. */
254
+ llmModelSource?: MCPAnalyticsModelSource
228
255
  /**
229
256
  * Explicit PostHog event name. When set (via `capture(server, { event })`) it
230
257
  * overrides the built-in name derived from `eventType`, so callers can emit any
@@ -380,6 +407,7 @@ export interface SessionInfo {
380
407
  export interface AnalyticsParameterOwnership {
381
408
  context: boolean
382
409
  conversationId: boolean
410
+ llmModel: boolean
383
411
  /**
384
412
  * True when we declared `_mcp_instructions` on this tool's advertised output
385
413
  * schema, so writing that key into `structuredContent` will validate. False
@@ -458,7 +486,7 @@ export interface McpCaptureCommon {
458
486
  groups?: Record<string, string>
459
487
  /** Extra event properties, spread onto the PostHog event verbatim. */
460
488
  properties?: JsonRecord
461
- /** Event timestamp. Defaults to the time of the capture call. */
489
+ /** Event timestamp. Defaults to the capture time. UTC is preferred; non-UTC input is converted to UTC. */
462
490
  timestamp?: Date
463
491
  }
464
492
 
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '0.11.6'
1
+ export const version = '0.12.0'