@posthog/mcp 0.11.7 → 0.13.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.
- package/README.md +51 -2
- package/dist/extensions/analytics-parameters.d.ts +22 -2
- package/dist/extensions/analytics-parameters.d.ts.map +1 -1
- package/dist/extensions/analytics-parameters.js +53 -10
- package/dist/extensions/analytics-parameters.mjs +37 -1
- package/dist/extensions/capture.d.ts.map +1 -1
- package/dist/extensions/capture.js +14 -8
- package/dist/extensions/capture.mjs +2 -0
- package/dist/extensions/client-identity.js +18 -14
- package/dist/extensions/compatibility.js +16 -12
- package/dist/extensions/constants.d.ts +3 -0
- package/dist/extensions/constants.d.ts.map +1 -1
- package/dist/extensions/constants.js +28 -18
- package/dist/extensions/constants.mjs +5 -2
- package/dist/extensions/context-parameters.d.ts +2 -2
- package/dist/extensions/context-parameters.d.ts.map +1 -1
- package/dist/extensions/context-parameters.js +14 -38
- package/dist/extensions/context-parameters.mjs +2 -30
- package/dist/extensions/conversation-id.js +18 -14
- package/dist/extensions/detect.js +23 -19
- package/dist/extensions/event-types.js +15 -11
- package/dist/extensions/exceptions.js +12 -8
- package/dist/extensions/headers.js +16 -12
- package/dist/extensions/ids.js +12 -8
- package/dist/extensions/instrument-highlevel.d.ts.map +1 -1
- package/dist/extensions/instrument-highlevel.js +16 -9
- package/dist/extensions/instrument-highlevel.mjs +5 -2
- package/dist/extensions/instrument-lowlevel.d.ts.map +1 -1
- package/dist/extensions/instrument-lowlevel.js +13 -8
- package/dist/extensions/instrument-lowlevel.mjs +2 -1
- package/dist/extensions/instrumentation.d.ts +16 -0
- package/dist/extensions/instrumentation.d.ts.map +1 -1
- package/dist/extensions/instrumentation.js +31 -14
- package/dist/extensions/instrumentation.mjs +11 -1
- package/dist/extensions/intent.js +14 -10
- package/dist/extensions/internal.js +17 -13
- package/dist/extensions/lib-identity.js +12 -8
- package/dist/extensions/logger.js +17 -13
- package/dist/extensions/mcp-payloads.js +16 -12
- package/dist/extensions/mcp-sdk-compat.js +23 -19
- package/dist/extensions/model-parameters.d.ts +48 -0
- package/dist/extensions/model-parameters.d.ts.map +1 -0
- package/dist/extensions/model-parameters.js +84 -0
- package/dist/extensions/model-parameters.mjs +31 -0
- package/dist/extensions/output-instructions.js +15 -11
- package/dist/extensions/posthog-events.js +14 -8
- package/dist/extensions/posthog-events.mjs +2 -0
- package/dist/extensions/posthog-mcp.d.ts +23 -12
- package/dist/extensions/posthog-mcp.d.ts.map +1 -1
- package/dist/extensions/posthog-mcp.js +49 -11
- package/dist/extensions/posthog-mcp.mjs +37 -3
- package/dist/extensions/request-headers.js +15 -11
- package/dist/extensions/sanitization.d.ts +2 -2
- package/dist/extensions/sanitization.d.ts.map +1 -1
- package/dist/extensions/sanitization.js +13 -8
- package/dist/extensions/sanitization.mjs +1 -0
- package/dist/extensions/session-token.js +17 -13
- package/dist/extensions/session-token.mjs +2 -2
- package/dist/extensions/session.js +16 -12
- package/dist/extensions/sink.js +14 -10
- package/dist/extensions/tools.js +15 -11
- package/dist/extensions/tracing-helpers.js +15 -11
- package/dist/extensions/transport-identity.js +15 -11
- package/dist/extensions/truncation.d.ts.map +1 -1
- package/dist/extensions/truncation.js +22 -16
- package/dist/extensions/truncation.mjs +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -18
- package/dist/index.mjs +7 -7
- package/dist/types.d.ts +55 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -2
- package/dist/types.mjs +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +15 -11
- package/dist/version.mjs +1 -1
- package/package.json +28 -11
- package/src/extensions/analytics-parameters.ts +88 -2
- package/src/extensions/capture.ts +4 -0
- package/src/extensions/constants.ts +4 -0
- package/src/extensions/context-parameters.ts +10 -59
- package/src/extensions/instrument-highlevel.ts +4 -0
- package/src/extensions/instrument-lowlevel.ts +2 -0
- package/src/extensions/instrumentation.ts +51 -0
- package/src/extensions/model-parameters.ts +98 -0
- package/src/extensions/posthog-events.ts +8 -0
- package/src/extensions/posthog-mcp.ts +84 -12
- package/src/extensions/sanitization.ts +6 -2
- package/src/extensions/truncation.ts +3 -0
- package/src/index.ts +3 -0
- package/src/types.ts +55 -4
- 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
|
|
@@ -483,6 +511,13 @@ export interface ToolCallCaptureData extends McpCaptureCommon {
|
|
|
483
511
|
* the host derived it. Defaults to `context_parameter` when an intent is set.
|
|
484
512
|
*/
|
|
485
513
|
intentSource?: MCPAnalyticsIntentSource
|
|
514
|
+
/**
|
|
515
|
+
* The calling agent's self-reported model id -> `$mcp_llm_model`. On the
|
|
516
|
+
* custom-dispatcher path, read it from {@link PostHogMCP.prepareToolCall}.
|
|
517
|
+
*/
|
|
518
|
+
llmModel?: string
|
|
519
|
+
/** How the model id was obtained -> `$mcp_llm_model_source`. */
|
|
520
|
+
llmModelSource?: MCPAnalyticsModelSource
|
|
486
521
|
/** Captured call arguments → `$mcp_parameters` (sanitized + truncated). */
|
|
487
522
|
parameters?: unknown
|
|
488
523
|
/** Captured tool result → `$mcp_response` (sanitized + truncated). */
|
|
@@ -558,18 +593,30 @@ export interface PrepareToolListOptions {
|
|
|
558
593
|
reportMissing?: boolean
|
|
559
594
|
}
|
|
560
595
|
|
|
596
|
+
/** Options for {@link PostHogMCP.prepareToolCall}. */
|
|
597
|
+
export interface PrepareToolCallOptions {
|
|
598
|
+
/**
|
|
599
|
+
* The tool descriptor before PostHog preparation. Pass this on stateless or
|
|
600
|
+
* multi-replica servers so SDK argument ownership is resolved per request.
|
|
601
|
+
*/
|
|
602
|
+
originalTool?: { inputSchema?: unknown }
|
|
603
|
+
}
|
|
604
|
+
|
|
561
605
|
/**
|
|
562
606
|
* Result of {@link PostHogMCP.prepareToolCall}: the intent pulled off the
|
|
563
|
-
* incoming call, the arguments with
|
|
564
|
-
*
|
|
565
|
-
* the `get_more_tools` virtual tool.
|
|
607
|
+
* incoming call, the arguments with SDK-owned analytics fields removed, and
|
|
608
|
+
* whether the call targeted the `get_more_tools` virtual tool.
|
|
566
609
|
*/
|
|
567
610
|
export interface PreparedToolCall {
|
|
568
611
|
/** The agent's stated intent (the `context` argument), if present. */
|
|
569
612
|
intent?: string
|
|
570
613
|
/** Where the intent came from. Always `context_parameter` here when set. */
|
|
571
614
|
intentSource?: MCPAnalyticsIntentSource
|
|
572
|
-
/** The
|
|
615
|
+
/** The agent's self-reported model id, when `captureModel` is enabled and owned by the SDK. */
|
|
616
|
+
llmModel?: string
|
|
617
|
+
/** How the model id was obtained. Always `self_reported` when present. */
|
|
618
|
+
llmModelSource?: MCPAnalyticsModelSource
|
|
619
|
+
/** The call arguments with SDK-owned `context` and `llm_model` keys removed. */
|
|
573
620
|
args?: Record<string, unknown>
|
|
574
621
|
/** True when `name` is the `get_more_tools` virtual tool. */
|
|
575
622
|
isMissingCapability: boolean
|
|
@@ -582,6 +629,10 @@ export interface MissingCapabilityCaptureData extends McpCaptureCommon {
|
|
|
582
629
|
* on the `get_more_tools` call) → `$mcp_intent`.
|
|
583
630
|
*/
|
|
584
631
|
context?: string
|
|
632
|
+
/** The calling agent's self-reported model id -> `$mcp_llm_model`. */
|
|
633
|
+
llmModel?: string
|
|
634
|
+
/** How the model id was obtained -> `$mcp_llm_model_source`. */
|
|
635
|
+
llmModelSource?: MCPAnalyticsModelSource
|
|
585
636
|
/** Captured call arguments → `$mcp_parameters` (sanitized + truncated). */
|
|
586
637
|
parameters?: unknown
|
|
587
638
|
}
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '0.
|
|
1
|
+
export const version = '0.13.0'
|