@posthog/mcp 0.9.1 → 0.10.1
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/dist/extensions/capture.d.ts.map +1 -1
- package/dist/extensions/capture.js +3 -2
- package/dist/extensions/capture.mjs +3 -2
- package/dist/extensions/client-identity.d.ts +39 -0
- package/dist/extensions/client-identity.d.ts.map +1 -0
- package/dist/extensions/client-identity.js +68 -0
- package/dist/extensions/client-identity.mjs +25 -0
- package/dist/extensions/constants.d.ts +1 -0
- package/dist/extensions/constants.d.ts.map +1 -1
- package/dist/extensions/constants.js +1 -0
- package/dist/extensions/constants.mjs +1 -0
- package/dist/extensions/instrument-highlevel.d.ts.map +1 -1
- package/dist/extensions/instrumentation.d.ts.map +1 -1
- package/dist/extensions/instrumentation.js +37 -2
- package/dist/extensions/instrumentation.mjs +37 -2
- package/dist/extensions/internal.d.ts.map +1 -1
- package/dist/extensions/internal.js +2 -0
- package/dist/extensions/internal.mjs +2 -0
- package/dist/extensions/posthog-events.js +2 -0
- package/dist/extensions/posthog-events.mjs +2 -0
- package/dist/extensions/posthog-mcp.js +1 -0
- package/dist/extensions/posthog-mcp.mjs +1 -0
- package/dist/extensions/session-token.d.ts +7 -0
- package/dist/extensions/session-token.d.ts.map +1 -1
- package/dist/extensions/session-token.js +2 -0
- package/dist/extensions/session-token.mjs +2 -0
- package/dist/extensions/session.d.ts.map +1 -1
- package/dist/extensions/session.js +2 -0
- package/dist/extensions/session.mjs +2 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.mjs +1 -1
- package/package.json +4 -4
- package/src/extensions/capture.ts +9 -2
- package/src/extensions/client-identity.ts +81 -0
- package/src/extensions/constants.ts +1 -0
- package/src/extensions/instrument-highlevel.ts +9 -3
- package/src/extensions/instrumentation.ts +83 -7
- package/src/extensions/internal.ts +2 -0
- package/src/extensions/mcp-sdk-compat.ts +1 -1
- package/src/extensions/posthog-events.ts +8 -0
- package/src/extensions/posthog-mcp.ts +1 -0
- package/src/extensions/session-token.ts +15 -1
- package/src/extensions/session.ts +4 -0
- package/src/types.ts +17 -0
- package/src/version.ts +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -142,6 +142,12 @@ export interface Event {
|
|
|
142
142
|
listedToolNames?: string[];
|
|
143
143
|
parameters?: unknown;
|
|
144
144
|
properties?: JsonRecord | null;
|
|
145
|
+
/**
|
|
146
|
+
* Negotiated MCP protocol (spec) version → `$mcp_protocol_version`. Learned at
|
|
147
|
+
* `initialize` and carried onto every event for the session (see SessionInfo) —
|
|
148
|
+
* used to track spec adoption and to slice event metrics by spec version.
|
|
149
|
+
*/
|
|
150
|
+
protocolVersion?: string;
|
|
145
151
|
resourceName?: string;
|
|
146
152
|
response?: unknown;
|
|
147
153
|
sdkLanguage?: string;
|
|
@@ -224,6 +230,11 @@ export interface SessionInfo {
|
|
|
224
230
|
identifyActorGivenId?: string;
|
|
225
231
|
identifyActorGroups?: Record<string, string>;
|
|
226
232
|
ipAddress?: string;
|
|
233
|
+
/**
|
|
234
|
+
* Negotiated MCP protocol (spec) version, learned at `initialize` and carried
|
|
235
|
+
* forward for the session (across pods via the session token) → `$mcp_protocol_version`.
|
|
236
|
+
*/
|
|
237
|
+
protocolVersion?: string;
|
|
227
238
|
sdkLanguage?: string;
|
|
228
239
|
sdkVersion?: string;
|
|
229
240
|
serverName?: string;
|
|
@@ -264,6 +275,12 @@ export interface McpCaptureCommon {
|
|
|
264
275
|
distinctId?: string;
|
|
265
276
|
/** Session id → `$session_id`. Omitted from the event entirely when not provided. */
|
|
266
277
|
sessionId?: string;
|
|
278
|
+
/**
|
|
279
|
+
* Negotiated MCP protocol (spec) version → `$mcp_protocol_version`. Pass it on
|
|
280
|
+
* every capture for the session (like `sessionId`) so later events carry it too,
|
|
281
|
+
* not just the initialize event — the `PostHogMCP` client holds no per-session state.
|
|
282
|
+
*/
|
|
283
|
+
protocolVersion?: string;
|
|
267
284
|
/** Person properties → `$set` (e.g. `{ name, email, plan }`). */
|
|
268
285
|
setProperties?: JsonRecord;
|
|
269
286
|
/** Group memberships → `$groups`. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEhD,+FAA+F;AAC/F,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,eAAe,CAAA;AAC3D,qEAAqE;AACrE,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAA;AAEjD,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,4FAA4F;AAC5F,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,GAAG,0BAA0B,CAAA;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,EACL,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,6BAA6B,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,GAClG,YAAY,GACZ,IAAI,CAAA;IACR;;;OAGG;IACH,cAAc,CAAC,EAAE,CACf,OAAO,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE,6BAA6B,KAClC,YAAY,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IAC5C;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAChB,OAAO,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE,6BAA6B,KAClC,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;CACpD;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAC5C,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG,UAAU,CAAA;AAEvE,MAAM,MAAM,YAAY,GACpB,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,6BAA6B,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,GACnG,CAAC,CAAC,KAAK,EAAE,6BAA6B,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAA;AAGxF,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;CACzC,GAAG,CAAC;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAE/F;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,YAAY,CAAC,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;AAE/G,MAAM,WAAW,KAAK;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAC9B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,qBAAqB,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,UAAU,CAAA;IAC9B,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,wBAAwB,CAAA;CAC5C;AAED,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAErC,iFAAiF;AACjF,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;IACvD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yFAAyF;IACzF,WAAW,CAAC,EAAE,yBAAyB,CAAA;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;KAAE,CAAA;IACpD,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IACjH,MAAM,EAAE,aAAa,CAAA;IACrB,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3C,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,CAAA;IAClE,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,CAAA;CACxF;AAED,mFAAmF;AACnF,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,6BAA6B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IACnH,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,qEAAqE;IACrE,SAAS,CAAC,EAAE,uBAAuB,CAAA;IACnC,gBAAgB,IAAI,oBAAoB,GAAG,SAAS,CAAA;IACpD,iBAAiB,CACf,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,6BAA6B,KAAK,OAAO,CAAC,OAAO,CAAC,GAC5F,IAAI,CAAA;CACR;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,UAAU,CAAA;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,GAAG,SAAS,CAAA;IAC9B,kBAAkB,EAAE,aAAa,CAAA;IACjC,YAAY,EAAE,IAAI,CAAA;IAClB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,WAAW,CAAA;IACxB,6FAA6F;IAC7F,aAAa,EAAE,WAAW,GAAG,KAAK,GAAG,OAAO,CAAA;IAC5C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,yFAAyF;IACzF,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,aAAa,CAAC,EAAE,UAAU,CAAA;IAC1B,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,sEAAsE;IACtE,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,iEAAiE;IACjE,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAED,8EAA8E;AAC9E,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAA;IAChB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAA;IACvC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,iFAAiF;AACjF,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kFAAkF;IAClF,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,sDAAsD;AACtD,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,0BAA0B,CAAA;IAC9C;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,YAAY,CAAC,EAAE,wBAAwB,CAAA;IACvC,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,6DAA6D;IAC7D,mBAAmB,EAAE,OAAO,CAAA;CAC7B;AAED,gGAAgG;AAChG,MAAM,WAAW,4BAA6B,SAAQ,gBAAgB;IACpE;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.
|
|
1
|
+
export declare const version = "0.10.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAA"}
|
package/dist/version.js
CHANGED
|
@@ -26,7 +26,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
27
|
version: ()=>version
|
|
28
28
|
});
|
|
29
|
-
const version = '0.
|
|
29
|
+
const version = '0.10.1';
|
|
30
30
|
exports.version = __webpack_exports__.version;
|
|
31
31
|
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
32
32
|
"version"
|
package/dist/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const version = '0.
|
|
1
|
+
const version = '0.10.1';
|
|
2
2
|
export { version };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@posthog/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"bugs": {
|
|
5
5
|
"url": "https://github.com/PostHog/posthog-js/issues"
|
|
6
6
|
},
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"module": "dist/index.mjs",
|
|
29
29
|
"types": "dist/index.d.ts",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@posthog/core": "^1.
|
|
31
|
+
"@posthog/core": "^1.45.1"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@babel/preset-env": "^7.27.1",
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"@types/node": "^20.0.0",
|
|
40
40
|
"jest": "29.7.0",
|
|
41
41
|
"zod": "^3.25.0",
|
|
42
|
-
"posthog-
|
|
43
|
-
"
|
|
42
|
+
"@posthog-tooling/tsconfig-base": "1.1.1",
|
|
43
|
+
"posthog-node": "^5.46.1"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"@modelcontextprotocol/sdk": ">=1.26.0",
|
|
@@ -48,12 +48,19 @@ export function captureEvent(server: MCPServerLike, eventInput: McpEvent): Promi
|
|
|
48
48
|
sdkVersion: sessionInfo.sdkVersion,
|
|
49
49
|
serverName: sessionInfo.serverName,
|
|
50
50
|
serverVersion: sessionInfo.serverVersion,
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
// Prefer identity the event captured for *this* request (from `_meta`, see
|
|
52
|
+
// stampMetaClientInfo) over the server-wide sessionInfo, so a concurrent
|
|
53
|
+
// request from another client can't misattribute this one.
|
|
54
|
+
clientName: eventInput.clientName ?? sessionInfo.clientName,
|
|
55
|
+
clientVersion: eventInput.clientVersion ?? sessionInfo.clientVersion,
|
|
53
56
|
identifyActorGivenId: sessionInfo.identifyActorGivenId,
|
|
54
57
|
identifyActorData: sessionInfo.identifyActorData,
|
|
55
58
|
groups: sessionInfo.identifyActorGroups,
|
|
56
59
|
resourceName: eventInput.resourceName,
|
|
60
|
+
// The `initialize` event sets the negotiated version directly; every other
|
|
61
|
+
// event inherits it from sessionInfo (persisted at initialize, recovered
|
|
62
|
+
// cross-pod from the session token).
|
|
63
|
+
protocolVersion: eventInput.protocolVersion ?? sessionInfo.protocolVersion,
|
|
57
64
|
toolCategory: eventInput.toolCategory,
|
|
58
65
|
toolDescription: eventInput.toolDescription,
|
|
59
66
|
listedToolNames: eventInput.listedToolNames,
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { McpEvent, MCPRequestLike } from '../types'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Client identity under the MCP 2026-07-28 (stateless) revision.
|
|
5
|
+
*
|
|
6
|
+
* That revision removes the `initialize` handshake and the `Mcp-Session-Id`
|
|
7
|
+
* header (SEP-2575 / SEP-2567). Client name/version and the protocol version no
|
|
8
|
+
* longer arrive once at `initialize` — they travel in every request's
|
|
9
|
+
* `params._meta` under these reverse-DNS keys. We mirror the literal key strings
|
|
10
|
+
* here rather than depend on the (still beta) v2 SDK, which is not a dependency
|
|
11
|
+
* of this package.
|
|
12
|
+
*/
|
|
13
|
+
export const META_CLIENT_INFO_KEY = 'io.modelcontextprotocol/clientInfo'
|
|
14
|
+
export const META_PROTOCOL_VERSION_KEY = 'io.modelcontextprotocol/protocolVersion'
|
|
15
|
+
|
|
16
|
+
export interface MetaClientInfo {
|
|
17
|
+
clientName?: string
|
|
18
|
+
clientVersion?: string
|
|
19
|
+
protocolVersion?: string
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Reads the client name/version and protocol version a modern client puts in
|
|
24
|
+
* `params._meta`. Returns `undefined` when the request carries none (e.g. a
|
|
25
|
+
* legacy client, which sends this on `initialize` instead). Never throws.
|
|
26
|
+
*/
|
|
27
|
+
export function readMetaClientInfo(request: MCPRequestLike): MetaClientInfo | undefined {
|
|
28
|
+
const meta = request.params?._meta
|
|
29
|
+
if (!meta || typeof meta !== 'object') {
|
|
30
|
+
return undefined
|
|
31
|
+
}
|
|
32
|
+
const record = meta as Record<string, unknown>
|
|
33
|
+
const result: MetaClientInfo = {}
|
|
34
|
+
|
|
35
|
+
const clientInfo = record[META_CLIENT_INFO_KEY]
|
|
36
|
+
if (clientInfo && typeof clientInfo === 'object') {
|
|
37
|
+
const { name, version } = clientInfo as Record<string, unknown>
|
|
38
|
+
if (typeof name === 'string' && name.length > 0) {
|
|
39
|
+
result.clientName = name
|
|
40
|
+
}
|
|
41
|
+
if (typeof version === 'string' && version.length > 0) {
|
|
42
|
+
result.clientVersion = version
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const protocolVersion = record[META_PROTOCOL_VERSION_KEY]
|
|
47
|
+
if (typeof protocolVersion === 'string' && protocolVersion.length > 0) {
|
|
48
|
+
result.protocolVersion = protocolVersion
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return result.clientName || result.clientVersion || result.protocolVersion ? result : undefined
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Stamps any client identity found in `params._meta` directly onto the event
|
|
56
|
+
* being built for *this* request, so it carries `$mcp_client_name`,
|
|
57
|
+
* `$mcp_client_version`, and `$mcp_protocol_version` even when there was no
|
|
58
|
+
* `initialize` to learn them from (the modern stateless case).
|
|
59
|
+
*
|
|
60
|
+
* Writing to the event — a per-request object — rather than the server-wide
|
|
61
|
+
* `sessionInfo` keeps identity correct when one instrumented server multiplexes
|
|
62
|
+
* concurrent requests from different clients (which the stateless spec allows):
|
|
63
|
+
* a sibling request can't clobber this event's attribution between now and when
|
|
64
|
+
* it's captured. Only fields the request actually carries are set, so a request
|
|
65
|
+
* without `_meta` leaves the event's existing values untouched.
|
|
66
|
+
*/
|
|
67
|
+
export function stampMetaClientInfo(event: McpEvent, request: MCPRequestLike): void {
|
|
68
|
+
const info = readMetaClientInfo(request)
|
|
69
|
+
if (!info) {
|
|
70
|
+
return
|
|
71
|
+
}
|
|
72
|
+
if (info.clientName) {
|
|
73
|
+
event.clientName = info.clientName
|
|
74
|
+
}
|
|
75
|
+
if (info.clientVersion) {
|
|
76
|
+
event.clientVersion = info.clientVersion
|
|
77
|
+
}
|
|
78
|
+
if (info.protocolVersion) {
|
|
79
|
+
event.protocolVersion = info.protocolVersion
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -48,6 +48,7 @@ export const PostHogMCPAnalyticsProperty = {
|
|
|
48
48
|
IntentSource: '$mcp_intent_source',
|
|
49
49
|
ListedToolNames: '$mcp_listed_tool_names',
|
|
50
50
|
Parameters: '$mcp_parameters',
|
|
51
|
+
ProtocolVersion: '$mcp_protocol_version',
|
|
51
52
|
ResourceName: '$mcp_resource_name',
|
|
52
53
|
Response: '$mcp_response',
|
|
53
54
|
ServerName: '$mcp_server_name',
|
|
@@ -4,7 +4,13 @@
|
|
|
4
4
|
// Licensed under the MIT License: https://github.com/agentcathq/agentcat-typescript-sdk/blob/main/LICENSE
|
|
5
5
|
|
|
6
6
|
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js'
|
|
7
|
-
import type {
|
|
7
|
+
import type {
|
|
8
|
+
CompatibleRequestHandlerExtra,
|
|
9
|
+
HighLevelMCPServerLike,
|
|
10
|
+
MCPServerLike,
|
|
11
|
+
RegisteredTool,
|
|
12
|
+
ToolCallback,
|
|
13
|
+
} from '../types'
|
|
8
14
|
import { stripConversationId } from './conversation-id'
|
|
9
15
|
import { MCPAnalyticsEventType } from './event-types'
|
|
10
16
|
import { getServerTrackingData } from './internal'
|
|
@@ -34,7 +40,7 @@ type ProcessedRegisteredTool = RegisteredTool & {
|
|
|
34
40
|
[MCP_ANALYTICS_PROCESSED]?: boolean
|
|
35
41
|
}
|
|
36
42
|
|
|
37
|
-
function isCallbackUpdate(value: unknown): value is { callback:
|
|
43
|
+
function isCallbackUpdate(value: unknown): value is { callback: ToolCallback } {
|
|
38
44
|
return !!value && typeof value === 'object' && 'callback' in value && typeof value.callback === 'function'
|
|
39
45
|
}
|
|
40
46
|
|
|
@@ -81,7 +87,7 @@ function setupListenerToRegisteredTools(server: HighLevelMCPServerLike): void {
|
|
|
81
87
|
const updateObj = updateArgs[0]
|
|
82
88
|
if (isCallbackUpdate(updateObj)) {
|
|
83
89
|
const wrappedTool = addTracingToToolCallbackInternal(
|
|
84
|
-
{ callback: updateObj.callback }
|
|
90
|
+
{ callback: updateObj.callback },
|
|
85
91
|
property,
|
|
86
92
|
server
|
|
87
93
|
)
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
injectConversationIdPromptBack,
|
|
22
22
|
resolveConversationId,
|
|
23
23
|
} from './conversation-id'
|
|
24
|
+
import { stampMetaClientInfo } from './client-identity'
|
|
24
25
|
import { captureEvent } from './capture'
|
|
25
26
|
import { MCPAnalyticsEventType } from './event-types'
|
|
26
27
|
import { captureException } from './exceptions'
|
|
@@ -152,6 +153,10 @@ async function prepareToolCallEvent(
|
|
|
152
153
|
toolCategory: toolName ? data.toolCategories.get(toolName) : undefined,
|
|
153
154
|
toolDescription: toolName ? data.toolDescriptions.get(toolName) : undefined,
|
|
154
155
|
}
|
|
156
|
+
// Modern (stateless) clients carry client name/version + protocol version in
|
|
157
|
+
// `_meta` on every request rather than at `initialize`; stamp them onto this
|
|
158
|
+
// event now so concurrent requests can't cross-attribute it.
|
|
159
|
+
stampMetaClientInfo(event, request)
|
|
155
160
|
|
|
156
161
|
await applyResolvedMetadata(event, data, request, extra)
|
|
157
162
|
setEventIntent(event, await resolveToolCallIntent(data, request, extra))
|
|
@@ -297,6 +302,7 @@ export async function handleListToolsRequest(
|
|
|
297
302
|
eventType: MCPAnalyticsEventType.mcpToolsList,
|
|
298
303
|
timestamp: startTime,
|
|
299
304
|
}
|
|
305
|
+
stampMetaClientInfo(event, request)
|
|
300
306
|
|
|
301
307
|
if (data) {
|
|
302
308
|
await applyResolvedMetadata(event, data, request, extra)
|
|
@@ -436,35 +442,76 @@ function mintStatelessSessionOnInitialize(
|
|
|
436
442
|
data: MCPAnalyticsData,
|
|
437
443
|
request: MCPRequestLike,
|
|
438
444
|
extra: CompatibleRequestHandlerExtra | undefined
|
|
439
|
-
):
|
|
445
|
+
): string | undefined {
|
|
440
446
|
try {
|
|
441
447
|
const headers = extra?.requestInfo?.headers
|
|
442
448
|
if (!headers || typeof headers !== 'object') {
|
|
443
|
-
return // not an HTTP transport (stdio/in-memory) — nothing to mint into
|
|
449
|
+
return undefined // not an HTTP transport (stdio/in-memory) — nothing to mint into
|
|
444
450
|
}
|
|
445
451
|
if (readMcpSessionHeader(headers)) {
|
|
446
|
-
return // client already replays a session id (ours or the transport's)
|
|
452
|
+
return undefined // client already replays a session id (ours or the transport's)
|
|
447
453
|
}
|
|
448
454
|
const transport = server.transport
|
|
449
455
|
if (!transport || extra?.sessionId || transport.sessionId) {
|
|
450
|
-
return // stateful transports manage their own session id — leave it alone
|
|
456
|
+
return undefined // stateful transports manage their own session id — leave it alone
|
|
451
457
|
}
|
|
452
458
|
|
|
453
459
|
const sessionId = newSessionId()
|
|
454
460
|
const clientInfo = readInitializeClientInfo(request)
|
|
455
|
-
|
|
461
|
+
// Minted before the handler negotiates, so only the client's *requested*
|
|
462
|
+
// version is available here; `handleInitializeRequest` re-mints the token
|
|
463
|
+
// with the negotiated version once the handler has run.
|
|
464
|
+
const requestedProtocolVersion = readProtocolVersion(undefined, request)
|
|
465
|
+
const token = encodeSessionId({
|
|
466
|
+
sessionId,
|
|
467
|
+
clientName: clientInfo?.name,
|
|
468
|
+
clientVersion: clientInfo?.version,
|
|
469
|
+
protocolVersion: requestedProtocolVersion,
|
|
470
|
+
})
|
|
456
471
|
if (!writeSessionIdToTransport(transport, token)) {
|
|
457
|
-
return // transport can't carry a response session id — keep generated behavior
|
|
472
|
+
return undefined // transport can't carry a response session id — keep generated behavior
|
|
458
473
|
}
|
|
459
474
|
|
|
460
475
|
data.sessionId = sessionId
|
|
461
476
|
data.sessionSource = 'token'
|
|
462
477
|
data.sessionInfo.clientName = clientInfo?.name
|
|
463
478
|
data.sessionInfo.clientVersion = clientInfo?.version
|
|
479
|
+
data.sessionInfo.protocolVersion = requestedProtocolVersion
|
|
464
480
|
data.lastActivity = new Date()
|
|
465
481
|
setServerTrackingData(server, data)
|
|
482
|
+
return sessionId
|
|
466
483
|
} catch (error) {
|
|
467
484
|
log(`Warning: PostHog MCP analytics failed to mint a stateless session id - ${error}`)
|
|
485
|
+
return undefined
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
/**
|
|
490
|
+
* Rewrite the minted token to carry the *negotiated* protocol version now that
|
|
491
|
+
* the handler has run. Without this, a server that downgrades the client's
|
|
492
|
+
* requested version would replay the requested one on later requests (and to
|
|
493
|
+
* other pods), reporting a version the session is not actually using.
|
|
494
|
+
*/
|
|
495
|
+
function upgradeMintedTokenToNegotiated(
|
|
496
|
+
server: MCPServerLike,
|
|
497
|
+
data: MCPAnalyticsData,
|
|
498
|
+
mintedSessionId: string,
|
|
499
|
+
negotiatedProtocolVersion: string | undefined
|
|
500
|
+
): void {
|
|
501
|
+
try {
|
|
502
|
+
const transport = server.transport
|
|
503
|
+
if (!transport) {
|
|
504
|
+
return
|
|
505
|
+
}
|
|
506
|
+
const token = encodeSessionId({
|
|
507
|
+
sessionId: mintedSessionId,
|
|
508
|
+
clientName: data.sessionInfo.clientName,
|
|
509
|
+
clientVersion: data.sessionInfo.clientVersion,
|
|
510
|
+
protocolVersion: negotiatedProtocolVersion,
|
|
511
|
+
})
|
|
512
|
+
writeSessionIdToTransport(transport, token)
|
|
513
|
+
} catch (error) {
|
|
514
|
+
log(`Warning: PostHog MCP analytics failed to upgrade the stateless session token - ${error}`)
|
|
468
515
|
}
|
|
469
516
|
}
|
|
470
517
|
|
|
@@ -503,7 +550,7 @@ export async function handleInitializeRequest(
|
|
|
503
550
|
}
|
|
504
551
|
|
|
505
552
|
// Mint first so the `$mcp_initialize` event below already carries the minted id.
|
|
506
|
-
mintStatelessSessionOnInitialize(server, data, request, extra)
|
|
553
|
+
const mintedSessionId = mintStatelessSessionOnInitialize(server, data, request, extra)
|
|
507
554
|
const sessionId = getSessionId(server, extra)
|
|
508
555
|
await handleIdentify(server, data, sessionId, request, extra)
|
|
509
556
|
|
|
@@ -514,11 +561,40 @@ export async function handleInitializeRequest(
|
|
|
514
561
|
parameters: buildCapturedMcpParameters(request),
|
|
515
562
|
timestamp: new Date(),
|
|
516
563
|
}
|
|
564
|
+
// Harmless for a legacy `initialize` (client info rides the body there, and the
|
|
565
|
+
// negotiated protocol version below overrides any `_meta` one); picks up client
|
|
566
|
+
// info if a client also sends it in `_meta`.
|
|
567
|
+
stampMetaClientInfo(event, request)
|
|
517
568
|
|
|
518
569
|
await applyResolvedMetadata(event, data, request, extra)
|
|
519
570
|
|
|
520
571
|
const result = await originalInitializeHandler(request, extra)
|
|
521
572
|
event.response = result
|
|
573
|
+
// The negotiated version (off the response) supersedes the requested one the
|
|
574
|
+
// mint stored — persist it so every later event on this pod carries it, and
|
|
575
|
+
// re-mint the token so pods replaying it report the negotiated version too.
|
|
576
|
+
const negotiatedProtocolVersion = readProtocolVersion(result, request)
|
|
577
|
+
event.protocolVersion = negotiatedProtocolVersion
|
|
578
|
+
data.sessionInfo.protocolVersion = negotiatedProtocolVersion
|
|
579
|
+
setServerTrackingData(server, data)
|
|
580
|
+
if (mintedSessionId) {
|
|
581
|
+
upgradeMintedTokenToNegotiated(server, data, mintedSessionId, negotiatedProtocolVersion)
|
|
582
|
+
}
|
|
522
583
|
captureEvent(server, event)
|
|
523
584
|
return result
|
|
524
585
|
}
|
|
586
|
+
|
|
587
|
+
/**
|
|
588
|
+
* The MCP spec (protocol) version this session speaks. Prefer the negotiated
|
|
589
|
+
* version off the initialize response — the version the server committed to and
|
|
590
|
+
* the session actually runs on — falling back to the client's requested version
|
|
591
|
+
* if the response omits it. Used to track spec-revision adoption.
|
|
592
|
+
*/
|
|
593
|
+
function readProtocolVersion(result: unknown, request: MCPRequestLike): string | undefined {
|
|
594
|
+
const negotiated = (result as Record<string, unknown> | null | undefined)?.protocolVersion
|
|
595
|
+
if (typeof negotiated === 'string' && negotiated.length > 0) {
|
|
596
|
+
return negotiated
|
|
597
|
+
}
|
|
598
|
+
const requested = request.params?.protocolVersion
|
|
599
|
+
return typeof requested === 'string' && requested.length > 0 ? requested : undefined
|
|
600
|
+
}
|
|
@@ -14,6 +14,7 @@ import type {
|
|
|
14
14
|
import { MCPAnalyticsEventType } from './event-types'
|
|
15
15
|
import { log } from './logger'
|
|
16
16
|
import { captureEvent } from './capture'
|
|
17
|
+
import { stampMetaClientInfo } from './client-identity'
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Bounded LRU cache for session identities, capped at `maxSize` entries so a
|
|
@@ -141,6 +142,7 @@ export async function handleIdentify(
|
|
|
141
142
|
parameters: { request, extra },
|
|
142
143
|
timestamp: new Date(),
|
|
143
144
|
}
|
|
145
|
+
stampMetaClientInfo(identifyEvent, request)
|
|
144
146
|
|
|
145
147
|
try {
|
|
146
148
|
const identityResult =
|
|
@@ -151,6 +151,11 @@ function addCommonEventProperties(event: Event, properties: Record<string, unkno
|
|
|
151
151
|
if (event.clientVersion) {
|
|
152
152
|
properties[PostHogMCPAnalyticsProperty.ClientVersion] = event.clientVersion
|
|
153
153
|
}
|
|
154
|
+
// Present on every event once negotiated at `initialize` (carried via
|
|
155
|
+
// sessionInfo / the session token). Absent only before the handshake.
|
|
156
|
+
if (event.protocolVersion) {
|
|
157
|
+
properties[PostHogMCPAnalyticsProperty.ProtocolVersion] = event.protocolVersion
|
|
158
|
+
}
|
|
154
159
|
if (event.userIntent) {
|
|
155
160
|
properties[PostHogMCPAnalyticsProperty.Intent] = event.userIntent
|
|
156
161
|
}
|
|
@@ -237,6 +242,9 @@ function buildExceptionEvent(event: Event): PostHogCaptureEvent {
|
|
|
237
242
|
if (event.clientVersion) {
|
|
238
243
|
properties[PostHogMCPAnalyticsProperty.ClientVersion] = event.clientVersion
|
|
239
244
|
}
|
|
245
|
+
if (event.protocolVersion) {
|
|
246
|
+
properties[PostHogMCPAnalyticsProperty.ProtocolVersion] = event.protocolVersion
|
|
247
|
+
}
|
|
240
248
|
|
|
241
249
|
addCustomEventProperties(event, properties)
|
|
242
250
|
|
|
@@ -243,6 +243,7 @@ function baseEvent(eventType: MCPAnalyticsEventType, common: McpCaptureCommon):
|
|
|
243
243
|
const event: McpEvent = {
|
|
244
244
|
eventType,
|
|
245
245
|
sessionId: common.sessionId,
|
|
246
|
+
protocolVersion: common.protocolVersion,
|
|
246
247
|
timestamp: common.timestamp ?? new Date(),
|
|
247
248
|
properties: common.properties,
|
|
248
249
|
groups: common.groups,
|
|
@@ -20,10 +20,18 @@ export interface SessionTokenPayload {
|
|
|
20
20
|
clientName?: string
|
|
21
21
|
/** MCP client version → `$mcp_client_version`. */
|
|
22
22
|
clientVersion?: string
|
|
23
|
+
/**
|
|
24
|
+
* MCP protocol (spec) version → `$mcp_protocol_version`. The client's
|
|
25
|
+
* *requested* version — the only one known when the token is minted (before
|
|
26
|
+
* the initialize handler negotiates). Lets pods that never saw `initialize`
|
|
27
|
+
* still stamp the spec version on their events.
|
|
28
|
+
*/
|
|
29
|
+
protocolVersion?: string
|
|
23
30
|
}
|
|
24
31
|
|
|
25
32
|
// On the wire the token is base64url(JSON) with shortened keys to keep the
|
|
26
|
-
// header small: sid = sessionId, cn = clientName, cv = clientVersion
|
|
33
|
+
// header small: sid = sessionId, cn = clientName, cv = clientVersion,
|
|
34
|
+
// pv = protocolVersion.
|
|
27
35
|
const MAX_TOKEN_LENGTH = 4096
|
|
28
36
|
const MAX_SESSION_ID_LENGTH = 128
|
|
29
37
|
const MAX_CLIENT_FIELD_LENGTH = 200
|
|
@@ -46,6 +54,9 @@ export function encodeSessionId(payload: SessionTokenPayload): string {
|
|
|
46
54
|
if (typeof payload.clientVersion === 'string' && payload.clientVersion.length > 0) {
|
|
47
55
|
wire.cv = payload.clientVersion.slice(0, MAX_CLIENT_FIELD_LENGTH)
|
|
48
56
|
}
|
|
57
|
+
if (typeof payload.protocolVersion === 'string' && payload.protocolVersion.length > 0) {
|
|
58
|
+
wire.pv = payload.protocolVersion.slice(0, MAX_CLIENT_FIELD_LENGTH)
|
|
59
|
+
}
|
|
49
60
|
return utf8ToBase64Url(JSON.stringify(wire))
|
|
50
61
|
}
|
|
51
62
|
|
|
@@ -83,6 +94,9 @@ export function decodeSessionId(value: unknown): SessionTokenPayload | null {
|
|
|
83
94
|
if (typeof wire.cv === 'string' && wire.cv.length > 0) {
|
|
84
95
|
payload.clientVersion = wire.cv.slice(0, MAX_CLIENT_FIELD_LENGTH)
|
|
85
96
|
}
|
|
97
|
+
if (typeof wire.pv === 'string' && wire.pv.length > 0) {
|
|
98
|
+
payload.protocolVersion = wire.pv.slice(0, MAX_CLIENT_FIELD_LENGTH)
|
|
99
|
+
}
|
|
86
100
|
return payload
|
|
87
101
|
}
|
|
88
102
|
|
|
@@ -51,6 +51,7 @@ export function getSessionId(server: MCPServerLike, extra?: CompatibleRequestHan
|
|
|
51
51
|
data.sessionSource = 'token'
|
|
52
52
|
data.sessionInfo.clientName = token.clientName
|
|
53
53
|
data.sessionInfo.clientVersion = token.clientVersion
|
|
54
|
+
data.sessionInfo.protocolVersion = token.protocolVersion
|
|
54
55
|
sessionId = token.sessionId
|
|
55
56
|
} else if (extra?.sessionId) {
|
|
56
57
|
// Session id issued by a stateful transport: hash it so the same MCP
|
|
@@ -110,6 +111,9 @@ export function getSessionInfo(
|
|
|
110
111
|
serverVersion: server._serverInfo?.version,
|
|
111
112
|
clientName: clientInfo?.name,
|
|
112
113
|
clientVersion: clientInfo?.version,
|
|
114
|
+
// No SDK getter for this (unlike getClientVersion) — the MCP SDK never
|
|
115
|
+
// retains the negotiated version, so it lives only where we stored it.
|
|
116
|
+
protocolVersion: data?.sessionInfo.protocolVersion,
|
|
113
117
|
identifyActorGivenId: actorInfo?.distinctId,
|
|
114
118
|
identifyActorData: actorInfo?.properties || {},
|
|
115
119
|
identifyActorGroups: actorInfo?.groups,
|
package/src/types.ts
CHANGED
|
@@ -165,6 +165,12 @@ export interface Event {
|
|
|
165
165
|
listedToolNames?: string[]
|
|
166
166
|
parameters?: unknown
|
|
167
167
|
properties?: JsonRecord | null
|
|
168
|
+
/**
|
|
169
|
+
* Negotiated MCP protocol (spec) version → `$mcp_protocol_version`. Learned at
|
|
170
|
+
* `initialize` and carried onto every event for the session (see SessionInfo) —
|
|
171
|
+
* used to track spec adoption and to slice event metrics by spec version.
|
|
172
|
+
*/
|
|
173
|
+
protocolVersion?: string
|
|
168
174
|
resourceName?: string
|
|
169
175
|
response?: unknown
|
|
170
176
|
sdkLanguage?: string
|
|
@@ -254,6 +260,11 @@ export interface SessionInfo {
|
|
|
254
260
|
identifyActorGivenId?: string
|
|
255
261
|
identifyActorGroups?: Record<string, string>
|
|
256
262
|
ipAddress?: string
|
|
263
|
+
/**
|
|
264
|
+
* Negotiated MCP protocol (spec) version, learned at `initialize` and carried
|
|
265
|
+
* forward for the session (across pods via the session token) → `$mcp_protocol_version`.
|
|
266
|
+
*/
|
|
267
|
+
protocolVersion?: string
|
|
257
268
|
sdkLanguage?: string
|
|
258
269
|
sdkVersion?: string
|
|
259
270
|
serverName?: string
|
|
@@ -297,6 +308,12 @@ export interface McpCaptureCommon {
|
|
|
297
308
|
distinctId?: string
|
|
298
309
|
/** Session id → `$session_id`. Omitted from the event entirely when not provided. */
|
|
299
310
|
sessionId?: string
|
|
311
|
+
/**
|
|
312
|
+
* Negotiated MCP protocol (spec) version → `$mcp_protocol_version`. Pass it on
|
|
313
|
+
* every capture for the session (like `sessionId`) so later events carry it too,
|
|
314
|
+
* not just the initialize event — the `PostHogMCP` client holds no per-session state.
|
|
315
|
+
*/
|
|
316
|
+
protocolVersion?: string
|
|
300
317
|
/** Person properties → `$set` (e.g. `{ name, email, plan }`). */
|
|
301
318
|
setProperties?: JsonRecord
|
|
302
319
|
/** Group memberships → `$groups`. */
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '0.
|
|
1
|
+
export const version = '0.10.1'
|