@posthog/mcp 0.11.1 → 0.11.3
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/client-identity.d.ts +86 -15
- package/dist/extensions/client-identity.d.ts.map +1 -1
- package/dist/extensions/client-identity.js +90 -17
- package/dist/extensions/client-identity.mjs +71 -13
- package/dist/extensions/detect.d.ts +6 -0
- package/dist/extensions/detect.d.ts.map +1 -1
- package/dist/extensions/detect.js +6 -0
- package/dist/extensions/detect.mjs +4 -1
- package/dist/extensions/instrument-highlevel.d.ts.map +1 -1
- package/dist/extensions/instrumentation.d.ts +4 -5
- package/dist/extensions/instrumentation.d.ts.map +1 -1
- package/dist/extensions/instrumentation.js +3 -3
- package/dist/extensions/instrumentation.mjs +4 -4
- package/dist/extensions/internal.js +1 -1
- package/dist/extensions/internal.mjs +2 -2
- package/dist/extensions/tools.d.ts +4 -4
- package/dist/extensions/tools.d.ts.map +1 -1
- package/dist/types.d.ts +58 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.mjs +1 -1
- package/package.json +13 -3
- package/src/extensions/client-identity.ts +183 -31
- package/src/extensions/detect.ts +9 -0
- package/src/extensions/instrument-highlevel.ts +4 -4
- package/src/extensions/instrumentation.ts +19 -13
- package/src/extensions/internal.ts +2 -2
- package/src/extensions/tools.ts +4 -4
- package/src/types.ts +60 -3
- package/src/version.ts +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
1
|
import type { ErrorTracking } from '@posthog/core';
|
|
2
|
+
import type { AnalyticsInjectableJsonSchema } from './extensions/analytics-parameters';
|
|
3
3
|
import type { MCPAnalyticsEventType } from './extensions/event-types';
|
|
4
4
|
import type { IdentityCache } from './extensions/internal';
|
|
5
5
|
import type { PostHogCaptureEvent } from './extensions/posthog-events';
|
|
@@ -10,6 +10,53 @@ export type JsonRecord = Record<string, unknown>;
|
|
|
10
10
|
export type ErrorProperties = ErrorTracking.ErrorProperties;
|
|
11
11
|
/** A single parsed stack frame. Re-exported from `@posthog/core`. */
|
|
12
12
|
export type StackFrame = ErrorTracking.StackFrame;
|
|
13
|
+
/**
|
|
14
|
+
* The MCP wire shapes we touch, declared structurally rather than imported from
|
|
15
|
+
* `@modelcontextprotocol/sdk`.
|
|
16
|
+
*
|
|
17
|
+
* Both SDK majors are **optional** peers — a v2-only consumer has no v1 SDK
|
|
18
|
+
* installed — so a type import of it in shipped `.d.ts` output is a `TS2307`
|
|
19
|
+
* for anyone type-checking without `skipLibCheck`. These are deliberately loose
|
|
20
|
+
* (open-ended, everything optional): they describe what we *read* off an SDK
|
|
21
|
+
* result, and an SDK-typed value assigns to them cleanly. What we hand back to
|
|
22
|
+
* the SDK is typed precisely instead — see {@link CompatibleTextToolResult}.
|
|
23
|
+
*/
|
|
24
|
+
export interface CompatibleToolResultLike {
|
|
25
|
+
content?: unknown[];
|
|
26
|
+
structuredContent?: JsonRecord;
|
|
27
|
+
isError?: boolean;
|
|
28
|
+
_meta?: JsonRecord;
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
}
|
|
31
|
+
/** One entry of a `tools/list` response, as we read it. */
|
|
32
|
+
export interface CompatibleToolDescriptorLike {
|
|
33
|
+
name: string;
|
|
34
|
+
title?: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
/** The advertised JSON Schema, as the analytics parameters are injected into it. */
|
|
37
|
+
inputSchema?: AnalyticsInjectableJsonSchema;
|
|
38
|
+
outputSchema?: unknown;
|
|
39
|
+
_meta?: JsonRecord;
|
|
40
|
+
[key: string]: unknown;
|
|
41
|
+
}
|
|
42
|
+
/** A `tools/list` response, as we read it. */
|
|
43
|
+
export interface CompatibleToolsListLike {
|
|
44
|
+
tools: CompatibleToolDescriptorLike[];
|
|
45
|
+
nextCursor?: string;
|
|
46
|
+
[key: string]: unknown;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A text-only tool result *we* construct and a host may hand straight back to
|
|
50
|
+
* the SDK. Typed precisely, not loosely, so it stays assignable to the SDK's own
|
|
51
|
+
* `CallToolResult` — the direction that would silently break callers.
|
|
52
|
+
*/
|
|
53
|
+
export interface CompatibleTextToolResult {
|
|
54
|
+
content: {
|
|
55
|
+
type: 'text';
|
|
56
|
+
text: string;
|
|
57
|
+
}[];
|
|
58
|
+
isError?: boolean;
|
|
59
|
+
}
|
|
13
60
|
export interface MCPRequestParamsLike {
|
|
14
61
|
arguments?: JsonRecord;
|
|
15
62
|
name?: string;
|
|
@@ -104,7 +151,7 @@ export interface MCPAnalyticsContextOptions {
|
|
|
104
151
|
}
|
|
105
152
|
export type MaybePromise<T> = T | Promise<T>;
|
|
106
153
|
export type MCPAnalyticsIntentSource = 'context_parameter' | 'inferred';
|
|
107
|
-
export type ToolCallback = ((args: unknown, extra: CompatibleRequestHandlerExtra) =>
|
|
154
|
+
export type ToolCallback = ((args: unknown, extra: CompatibleRequestHandlerExtra) => CompatibleToolResultLike | Promise<CompatibleToolResultLike>) | ((extra: CompatibleRequestHandlerExtra) => CompatibleToolResultLike | Promise<CompatibleToolResultLike>);
|
|
108
155
|
export type RegisteredTool = {
|
|
109
156
|
description?: string;
|
|
110
157
|
/** MCP tool `_meta` block (spec-allowed arbitrary metadata, e.g. `category`). */
|
|
@@ -217,6 +264,15 @@ export interface CompatibleRequestHandlerExtra {
|
|
|
217
264
|
requestInfo?: CompatibleRequestInfoLike;
|
|
218
265
|
/** Where MCP SDK v2 puts the same thing. Read both through `getRequestHeaders`. */
|
|
219
266
|
http?: CompatibleHttpRequestLike;
|
|
267
|
+
/**
|
|
268
|
+
* MCP SDK v2's parsed request. It lifts the reserved `io.modelcontextprotocol/*`
|
|
269
|
+
* keys out of `params._meta` into `envelope`, so client identity is here rather
|
|
270
|
+
* than on the request by the time a handler runs.
|
|
271
|
+
*/
|
|
272
|
+
mcpReq?: {
|
|
273
|
+
envelope?: Record<string, unknown>;
|
|
274
|
+
[key: string]: unknown;
|
|
275
|
+
};
|
|
220
276
|
[key: string]: unknown;
|
|
221
277
|
}
|
|
222
278
|
/**
|
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;;;;;;;;;;;;;;OAcG;IACH,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,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,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;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,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;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,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;IAC3C;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;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;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IACnD,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,mFAAmF;IACnF,IAAI,CAAC,EAAE,yBAAyB,CAAA;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;AAEhE,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;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,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,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,OAAO,CAAA;IACvB;;;;OAIG;IACH,kBAAkB,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,GAAG,SAAS,CAAA;IAC9B,kBAAkB,EAAE,aAAa,CAAA;IACjC,+EAA+E;IAC/E,MAAM,EAAE,QAAQ,CAAA;IAChB,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,+BAA+B,EAAE,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;IACzE,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;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,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.11.
|
|
1
|
+
export declare const version = "0.11.3";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
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.11.
|
|
29
|
+
const version = '0.11.3';
|
|
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.11.
|
|
1
|
+
const version = '0.11.3';
|
|
2
2
|
export { version };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@posthog/mcp",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.3",
|
|
4
4
|
"bugs": {
|
|
5
5
|
"url": "https://github.com/PostHog/posthog-js/issues"
|
|
6
6
|
},
|
|
@@ -34,18 +34,28 @@
|
|
|
34
34
|
"@babel/preset-env": "^7.27.1",
|
|
35
35
|
"@babel/preset-typescript": "^7.27.1",
|
|
36
36
|
"@modelcontextprotocol/sdk": "~1.29.0",
|
|
37
|
+
"@modelcontextprotocol/server": "~2.0.0",
|
|
37
38
|
"@rslib/core": "0.10.6",
|
|
38
39
|
"@types/jest": "^29.5.14",
|
|
39
40
|
"@types/node": "^20.0.0",
|
|
40
41
|
"jest": "29.7.0",
|
|
41
42
|
"zod": "^3.25.0",
|
|
42
|
-
"posthog-
|
|
43
|
-
"
|
|
43
|
+
"@posthog-tooling/tsconfig-base": "1.1.1",
|
|
44
|
+
"posthog-node": "^5.48.1"
|
|
44
45
|
},
|
|
45
46
|
"peerDependencies": {
|
|
46
47
|
"@modelcontextprotocol/sdk": ">=1.26.0",
|
|
48
|
+
"@modelcontextprotocol/server": ">=2.0.0",
|
|
47
49
|
"posthog-node": "^5.0.0"
|
|
48
50
|
},
|
|
51
|
+
"peerDependenciesMeta": {
|
|
52
|
+
"@modelcontextprotocol/sdk": {
|
|
53
|
+
"optional": true
|
|
54
|
+
},
|
|
55
|
+
"@modelcontextprotocol/server": {
|
|
56
|
+
"optional": true
|
|
57
|
+
}
|
|
58
|
+
},
|
|
49
59
|
"keywords": [
|
|
50
60
|
"posthog",
|
|
51
61
|
"mcp",
|
|
@@ -1,17 +1,39 @@
|
|
|
1
|
-
import type { McpEvent, MCPRequestLike } from '../types'
|
|
1
|
+
import type { CompatibleRequestHandlerExtra, McpEvent, MCPRequestLike, MCPServerLike } from '../types'
|
|
2
|
+
import { hasClientVersionAccessor, hasNegotiatedProtocolVersionAccessor } from './detect'
|
|
3
|
+
import { readHeaderValue } from './headers'
|
|
4
|
+
import { getRequestHeaders } from './request-headers'
|
|
2
5
|
|
|
3
6
|
/**
|
|
4
|
-
* Client identity
|
|
7
|
+
* Client identity — who is calling, and which spec revision they speak.
|
|
5
8
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* of
|
|
9
|
+
* Where it lives depends on the revision the *request* declares, so this is a
|
|
10
|
+
* fallback chain and never a branch: one server serves both eras, request by
|
|
11
|
+
* request.
|
|
12
|
+
*
|
|
13
|
+
* 1. `ctx.mcpReq.envelope` — MCP SDK v2 lifts the reserved
|
|
14
|
+
* `io.modelcontextprotocol/*` keys out of `_meta` before dispatch, so by
|
|
15
|
+
* the time a handler runs they are here and `params._meta` is empty.
|
|
16
|
+
* 2. `request.params._meta` — where 2026-07-28 puts them on the wire, and
|
|
17
|
+
* where they still are on any server that does not lift them.
|
|
18
|
+
* 3. the `MCP-Protocol-Version` request header, which 2025-11-25 requires a
|
|
19
|
+
* client to send on every request after `initialize` — the only per-request
|
|
20
|
+
* carrier a legacy-era request has, and therefore the only one that
|
|
21
|
+
* survives a per-request server instance.
|
|
22
|
+
* 4. the server's own accessors — `getClientVersion()` from a legacy
|
|
23
|
+
* `initialize` handshake, `getNegotiatedProtocolVersion()` on v2.
|
|
24
|
+
*
|
|
25
|
+
* The 2026-07-28 revision removed the `initialize` handshake and the
|
|
26
|
+
* `Mcp-Session-Id` header (SEP-2575 / SEP-2567), so client name/version and the
|
|
27
|
+
* protocol version no longer arrive once per connection — they travel with
|
|
28
|
+
* every request. The key strings are mirrored here rather than imported,
|
|
29
|
+
* because no `@modelcontextprotocol/*` package is a dependency of this one.
|
|
12
30
|
*/
|
|
13
31
|
export const META_CLIENT_INFO_KEY = 'io.modelcontextprotocol/clientInfo'
|
|
14
32
|
export const META_PROTOCOL_VERSION_KEY = 'io.modelcontextprotocol/protocolVersion'
|
|
33
|
+
/** Required on every post-`initialize` request by 2025-11-25 (and sent by modern clients too). */
|
|
34
|
+
export const PROTOCOL_VERSION_HEADER = 'mcp-protocol-version'
|
|
35
|
+
/** A version string is a date-like token; anything longer is junk we should not record. */
|
|
36
|
+
const MAX_PROTOCOL_VERSION_LENGTH = 64
|
|
15
37
|
|
|
16
38
|
export interface MetaClientInfo {
|
|
17
39
|
clientName?: string
|
|
@@ -19,53 +41,183 @@ export interface MetaClientInfo {
|
|
|
19
41
|
protocolVersion?: string
|
|
20
42
|
}
|
|
21
43
|
|
|
44
|
+
/** Everything a request can be asked about who is calling. */
|
|
45
|
+
export interface ClientIdentitySources {
|
|
46
|
+
request: MCPRequestLike
|
|
47
|
+
extra?: CompatibleRequestHandlerExtra
|
|
48
|
+
/**
|
|
49
|
+
* Typed `unknown` on purpose: every accessor on it is reached through a
|
|
50
|
+
* structural probe, never a declared type, because the two SDK majors expose
|
|
51
|
+
* different ones. Call sites pass a real `MCPServerLike`; the shape checks
|
|
52
|
+
* here are what decide whether it can answer.
|
|
53
|
+
*/
|
|
54
|
+
server?: unknown
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
type UnknownRecord = Record<string, unknown>
|
|
58
|
+
|
|
59
|
+
function nonEmptyString(value: unknown): string | undefined {
|
|
60
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** Pulls `{ name, version }` out of a reserved-key value, whatever carried it. */
|
|
64
|
+
function readClientInfoValue(value: unknown): MetaClientInfo | undefined {
|
|
65
|
+
if (!value || typeof value !== 'object') {
|
|
66
|
+
return undefined
|
|
67
|
+
}
|
|
68
|
+
const { name, version } = value as UnknownRecord
|
|
69
|
+
const result: MetaClientInfo = {}
|
|
70
|
+
const clientName = nonEmptyString(name)
|
|
71
|
+
const clientVersion = nonEmptyString(version)
|
|
72
|
+
if (clientName) {
|
|
73
|
+
result.clientName = clientName
|
|
74
|
+
}
|
|
75
|
+
if (clientVersion) {
|
|
76
|
+
result.clientVersion = clientVersion
|
|
77
|
+
}
|
|
78
|
+
return result.clientName || result.clientVersion ? result : undefined
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function readReservedKeys(bag: unknown): MetaClientInfo | undefined {
|
|
82
|
+
if (!bag || typeof bag !== 'object') {
|
|
83
|
+
return undefined
|
|
84
|
+
}
|
|
85
|
+
const record = bag as UnknownRecord
|
|
86
|
+
const result: MetaClientInfo = { ...readClientInfoValue(record[META_CLIENT_INFO_KEY]) }
|
|
87
|
+
const protocolVersion = nonEmptyString(record[META_PROTOCOL_VERSION_KEY])
|
|
88
|
+
if (protocolVersion) {
|
|
89
|
+
result.protocolVersion = protocolVersion
|
|
90
|
+
}
|
|
91
|
+
return result.clientName || result.clientVersion || result.protocolVersion ? result : undefined
|
|
92
|
+
}
|
|
93
|
+
|
|
22
94
|
/**
|
|
23
95
|
* Reads the client name/version and protocol version a modern client puts in
|
|
24
96
|
* `params._meta`. Returns `undefined` when the request carries none (e.g. a
|
|
25
97
|
* legacy client, which sends this on `initialize` instead). Never throws.
|
|
26
98
|
*/
|
|
27
99
|
export function readMetaClientInfo(request: MCPRequestLike): MetaClientInfo | undefined {
|
|
28
|
-
|
|
29
|
-
|
|
100
|
+
return readReservedKeys(request.params?._meta)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Reads the same keys from MCP SDK v2's request envelope. v2 strips the reserved
|
|
105
|
+
* `io.modelcontextprotocol/*` keys from `_meta` while parsing, so on exactly the
|
|
106
|
+
* traffic this matters for, `readMetaClientInfo` finds nothing and this finds
|
|
107
|
+
* everything.
|
|
108
|
+
*/
|
|
109
|
+
export function readEnvelopeClientInfo(extra: CompatibleRequestHandlerExtra | undefined): MetaClientInfo | undefined {
|
|
110
|
+
return readReservedKeys((extra as { mcpReq?: { envelope?: unknown } } | undefined)?.mcpReq?.envelope)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Reads the protocol version off the request headers.
|
|
115
|
+
*
|
|
116
|
+
* This is what closes the gap on **2025-11-25 traffic served by a per-request
|
|
117
|
+
* server**: that era carries identity at the handshake, and the instance
|
|
118
|
+
* handling a later `tools/call` never saw it. The header rides every request, so
|
|
119
|
+
* it survives where the handshake does not. Carries no client name — that still
|
|
120
|
+
* depends on the replayed session token.
|
|
121
|
+
*/
|
|
122
|
+
export function readHeaderProtocolVersion(
|
|
123
|
+
extra: CompatibleRequestHandlerExtra | undefined
|
|
124
|
+
): MetaClientInfo | undefined {
|
|
125
|
+
// `getRequestHeaders` answers *where* the headers are on either SDK major;
|
|
126
|
+
// `readHeaderValue` answers how to read one value out of the bag it returns —
|
|
127
|
+
// repeated values, mixed case, blank strings. Two questions, one place each.
|
|
128
|
+
const protocolVersion = readHeaderValue(getRequestHeaders(extra), PROTOCOL_VERSION_HEADER)
|
|
129
|
+
if (!protocolVersion || protocolVersion.length > MAX_PROTOCOL_VERSION_LENGTH) {
|
|
30
130
|
return undefined
|
|
31
131
|
}
|
|
32
|
-
|
|
33
|
-
|
|
132
|
+
return { protocolVersion }
|
|
133
|
+
}
|
|
34
134
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
135
|
+
/**
|
|
136
|
+
* Asks the server itself. `getClientVersion()` answers on any server that
|
|
137
|
+
* handled an `initialize` (and v2 hosts such as `createMcpHandler` backfill it
|
|
138
|
+
* from the envelope); `getNegotiatedProtocolVersion()` exists on v2 only, which
|
|
139
|
+
* is why it is a link in the chain rather than a branch. Never throws — a
|
|
140
|
+
* server that dislikes being asked must not fail the tool call.
|
|
141
|
+
*/
|
|
142
|
+
export function readServerClientIdentity(server: unknown): MetaClientInfo | undefined {
|
|
143
|
+
if (!server) {
|
|
144
|
+
return undefined
|
|
145
|
+
}
|
|
146
|
+
const result: MetaClientInfo = {}
|
|
147
|
+
try {
|
|
148
|
+
if (hasClientVersionAccessor(server)) {
|
|
149
|
+
Object.assign(result, readClientInfoValue((server as MCPServerLike).getClientVersion()))
|
|
40
150
|
}
|
|
41
|
-
if (
|
|
42
|
-
|
|
151
|
+
if (hasNegotiatedProtocolVersionAccessor(server)) {
|
|
152
|
+
const negotiated = (
|
|
153
|
+
server as unknown as { getNegotiatedProtocolVersion(): unknown }
|
|
154
|
+
).getNegotiatedProtocolVersion()
|
|
155
|
+
const protocolVersion = nonEmptyString(negotiated)
|
|
156
|
+
if (protocolVersion) {
|
|
157
|
+
result.protocolVersion = protocolVersion
|
|
158
|
+
}
|
|
43
159
|
}
|
|
160
|
+
} catch {
|
|
161
|
+
// fall through to whatever was read before the accessor objected
|
|
44
162
|
}
|
|
163
|
+
return result.clientName || result.clientVersion || result.protocolVersion ? result : undefined
|
|
164
|
+
}
|
|
45
165
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
166
|
+
/**
|
|
167
|
+
* Resolves client identity through the whole chain, field by field: the first
|
|
168
|
+
* source that answers a field wins, and a source that answers nothing simply
|
|
169
|
+
* does not participate. Field-by-field rather than source-by-source because a
|
|
170
|
+
* request may carry its protocol version in the envelope while the client's
|
|
171
|
+
* name is only known to the server from a handshake.
|
|
172
|
+
*
|
|
173
|
+
* The first three links are **per request**, so they cannot describe anyone but
|
|
174
|
+
* the caller. Only the last — the server's own accessors — is connection-scoped,
|
|
175
|
+
* and on a server that multiplexes several clients through one connection it
|
|
176
|
+
* answers for whichever client completed the handshake. That is the best answer
|
|
177
|
+
* available on that connection, and it is the same scope `capture.ts` has always
|
|
178
|
+
* fallen back to (`eventInput.clientName ?? sessionInfo.clientName`), so the
|
|
179
|
+
* chain neither introduces that sharing nor widens it. Ordering it last is what
|
|
180
|
+
* keeps it a fallback: any request that identifies itself wins outright.
|
|
181
|
+
*/
|
|
182
|
+
export function resolveClientIdentity({ request, extra, server }: ClientIdentitySources): MetaClientInfo | undefined {
|
|
183
|
+
const chain = [
|
|
184
|
+
readEnvelopeClientInfo(extra),
|
|
185
|
+
readMetaClientInfo(request),
|
|
186
|
+
readHeaderProtocolVersion(extra),
|
|
187
|
+
readServerClientIdentity(server),
|
|
188
|
+
]
|
|
189
|
+
const result: MetaClientInfo = {}
|
|
190
|
+
for (const source of chain) {
|
|
191
|
+
if (!source) {
|
|
192
|
+
continue
|
|
193
|
+
}
|
|
194
|
+
result.clientName ??= source.clientName
|
|
195
|
+
result.clientVersion ??= source.clientVersion
|
|
196
|
+
result.protocolVersion ??= source.protocolVersion
|
|
49
197
|
}
|
|
50
|
-
|
|
51
198
|
return result.clientName || result.clientVersion || result.protocolVersion ? result : undefined
|
|
52
199
|
}
|
|
53
200
|
|
|
54
201
|
/**
|
|
55
|
-
* Stamps
|
|
56
|
-
*
|
|
57
|
-
* `$
|
|
58
|
-
*
|
|
202
|
+
* Stamps whatever the chain resolved onto the event being built for *this*
|
|
203
|
+
* request, so it carries `$mcp_client_name`, `$mcp_client_version` and
|
|
204
|
+
* `$mcp_protocol_version` even when there was no `initialize` to learn them
|
|
205
|
+
* from (the modern stateless case).
|
|
59
206
|
*
|
|
60
207
|
* Writing to the event — a per-request object — rather than the server-wide
|
|
61
208
|
* `sessionInfo` keeps identity correct when one instrumented server multiplexes
|
|
62
209
|
* concurrent requests from different clients (which the stateless spec allows):
|
|
63
210
|
* a sibling request can't clobber this event's attribution between now and when
|
|
64
|
-
* it's captured. Only fields
|
|
65
|
-
*
|
|
211
|
+
* it's captured. Only fields actually resolved are set, so a request that
|
|
212
|
+
* carries nothing leaves the event's existing values untouched.
|
|
66
213
|
*/
|
|
67
|
-
export function
|
|
68
|
-
|
|
214
|
+
export function stampClientIdentity(
|
|
215
|
+
event: McpEvent,
|
|
216
|
+
request: MCPRequestLike,
|
|
217
|
+
extra?: CompatibleRequestHandlerExtra,
|
|
218
|
+
server?: MCPServerLike
|
|
219
|
+
): void {
|
|
220
|
+
const info = resolveClientIdentity({ request, extra, server })
|
|
69
221
|
if (!info) {
|
|
70
222
|
return
|
|
71
223
|
}
|
package/src/extensions/detect.ts
CHANGED
|
@@ -71,6 +71,15 @@ export function hasClientVersionAccessor(server: unknown): boolean {
|
|
|
71
71
|
return hasMethod(server, 'getClientVersion')
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
/**
|
|
75
|
+
* `getNegotiatedProtocolVersion()` — v2 only, and the last link in the protocol
|
|
76
|
+
* version chain. A v1 server does not have it, which is why the chain probes for
|
|
77
|
+
* it instead of branching on which SDK is installed.
|
|
78
|
+
*/
|
|
79
|
+
export function hasNegotiatedProtocolVersionAccessor(server: unknown): boolean {
|
|
80
|
+
return hasMethod(server, 'getNegotiatedProtocolVersion')
|
|
81
|
+
}
|
|
82
|
+
|
|
74
83
|
/** `_serverInfo`, which names the server on every event. */
|
|
75
84
|
export function hasServerInfo(server: unknown): boolean {
|
|
76
85
|
const info = asRecord(asRecord(server)?._serverInfo)
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
// Copyright (c) 2025 AgentCat, Inc. (formerly MCPcat)
|
|
4
4
|
// Licensed under the MIT License: https://github.com/agentcathq/agentcat-typescript-sdk/blob/main/LICENSE
|
|
5
5
|
|
|
6
|
-
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js'
|
|
7
6
|
import type {
|
|
8
7
|
CompatibleRequestHandlerExtra,
|
|
8
|
+
CompatibleToolResultLike,
|
|
9
9
|
HighLevelMCPServerLike,
|
|
10
10
|
MCPServerLike,
|
|
11
11
|
RegisteredTool,
|
|
@@ -173,7 +173,7 @@ function addTracingToToolCallbackInternal(
|
|
|
173
173
|
return tool
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
const wrappedCallback = async (...params: unknown[]): Promise<
|
|
176
|
+
const wrappedCallback = async (...params: unknown[]): Promise<CompatibleToolResultLike> => {
|
|
177
177
|
let args: unknown
|
|
178
178
|
let extra: CompatibleRequestHandlerExtra
|
|
179
179
|
|
|
@@ -192,13 +192,13 @@ function addTracingToToolCallbackInternal(
|
|
|
192
192
|
})
|
|
193
193
|
try {
|
|
194
194
|
if (cleanedArgs === undefined) {
|
|
195
|
-
const handler = originalCallback as (extra: CompatibleRequestHandlerExtra) => Promise<
|
|
195
|
+
const handler = originalCallback as (extra: CompatibleRequestHandlerExtra) => Promise<CompatibleToolResultLike>
|
|
196
196
|
return await handler(extra)
|
|
197
197
|
}
|
|
198
198
|
const handler = originalCallback as (
|
|
199
199
|
args: unknown,
|
|
200
200
|
extra: CompatibleRequestHandlerExtra
|
|
201
|
-
) => Promise<
|
|
201
|
+
) => Promise<CompatibleToolResultLike>
|
|
202
202
|
return await handler(cleanedArgs, extra)
|
|
203
203
|
} catch (error) {
|
|
204
204
|
if (error instanceof Error) {
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
// Copyright (c) 2025 AgentCat, Inc. (formerly MCPcat)
|
|
4
4
|
// Licensed under the MIT License: https://github.com/agentcathq/agentcat-typescript-sdk/blob/main/LICENSE
|
|
5
5
|
|
|
6
|
-
import type { ListToolsResult } from '@modelcontextprotocol/sdk/types.js'
|
|
7
6
|
import type {
|
|
8
7
|
AnalyticsParameterOwnership,
|
|
9
8
|
CompatibleRequestHandlerExtra,
|
|
9
|
+
CompatibleToolsListLike,
|
|
10
10
|
MCPAnalyticsData,
|
|
11
11
|
MCPRequestLike,
|
|
12
12
|
MCPServerLike,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
injectConversationIdPromptBack,
|
|
24
24
|
resolveConversationId,
|
|
25
25
|
} from './conversation-id'
|
|
26
|
-
import {
|
|
26
|
+
import { stampClientIdentity } from './client-identity'
|
|
27
27
|
import { stampTransportIdentity } from './transport-identity'
|
|
28
28
|
import { addInstructionsToOutputSchemas, mirrorInstructionsIntoStructuredContent } from './output-instructions'
|
|
29
29
|
import { captureEvent } from './capture'
|
|
@@ -229,7 +229,7 @@ async function prepareToolCallEvent(
|
|
|
229
229
|
// Modern (stateless) clients carry client name/version + protocol version in
|
|
230
230
|
// `_meta` on every request rather than at `initialize`; stamp them onto this
|
|
231
231
|
// event now so concurrent requests can't cross-attribute it.
|
|
232
|
-
|
|
232
|
+
stampClientIdentity(event, request, extra, server)
|
|
233
233
|
// Which *surface* of the client made this call lives only in the request
|
|
234
234
|
// headers (HTTP transports); `clientInfo` can't tell a vendor's products apart.
|
|
235
235
|
stampTransportIdentity(event, extra)
|
|
@@ -471,7 +471,7 @@ export async function isToolAdvertised(
|
|
|
471
471
|
}
|
|
472
472
|
|
|
473
473
|
try {
|
|
474
|
-
const response = (await listHandler({ method: 'tools/list', params: {} }, extra)) as
|
|
474
|
+
const response = (await listHandler({ method: 'tools/list', params: {} }, extra)) as CompatibleToolsListLike
|
|
475
475
|
if (!response || !Array.isArray(response.tools)) {
|
|
476
476
|
return undefined
|
|
477
477
|
}
|
|
@@ -496,7 +496,7 @@ export async function handleListToolsRequest(
|
|
|
496
496
|
request: MCPRequestLike,
|
|
497
497
|
extra: CompatibleRequestHandlerExtra | undefined,
|
|
498
498
|
logger: LoggerFn
|
|
499
|
-
): Promise<{ tools:
|
|
499
|
+
): Promise<{ tools: CompatibleToolsListLike['tools'] }> {
|
|
500
500
|
const data = getServerTrackingData(server)
|
|
501
501
|
const startTime = new Date()
|
|
502
502
|
const sessionId = getSessionId(server, extra)
|
|
@@ -509,7 +509,7 @@ export async function handleListToolsRequest(
|
|
|
509
509
|
eventType: MCPAnalyticsEventType.mcpToolsList,
|
|
510
510
|
timestamp: startTime,
|
|
511
511
|
}
|
|
512
|
-
|
|
512
|
+
stampClientIdentity(event, request, extra, server)
|
|
513
513
|
stampTransportIdentity(event, extra)
|
|
514
514
|
|
|
515
515
|
if (data) {
|
|
@@ -554,7 +554,7 @@ export async function handleListToolsRequest(
|
|
|
554
554
|
|
|
555
555
|
function cacheToolAnalyticsParameterOwnership(
|
|
556
556
|
cache: Map<string, AnalyticsParameterOwnership>,
|
|
557
|
-
tools:
|
|
557
|
+
tools: CompatibleToolsListLike['tools']
|
|
558
558
|
): void {
|
|
559
559
|
// Merge pages and concurrent enumerations; repeated tool names overwrite stale schemas.
|
|
560
560
|
for (const tool of tools) {
|
|
@@ -564,7 +564,7 @@ function cacheToolAnalyticsParameterOwnership(
|
|
|
564
564
|
}
|
|
565
565
|
}
|
|
566
566
|
|
|
567
|
-
function collectListedToolNames(tools:
|
|
567
|
+
function collectListedToolNames(tools: CompatibleToolsListLike['tools'] | undefined): string[] | undefined {
|
|
568
568
|
if (!tools || tools.length === 0) {
|
|
569
569
|
return
|
|
570
570
|
}
|
|
@@ -580,10 +580,10 @@ async function getTracedToolsList(
|
|
|
580
580
|
event: McpEvent,
|
|
581
581
|
logger: LoggerFn,
|
|
582
582
|
requestAttribution: SessionInfo
|
|
583
|
-
): Promise<
|
|
583
|
+
): Promise<CompatibleToolsListLike['tools']> {
|
|
584
584
|
try {
|
|
585
585
|
const data = getServerTrackingData(server)
|
|
586
|
-
const originalResponse = (await originalListToolsHandler(request, extra)) as
|
|
586
|
+
const originalResponse = (await originalListToolsHandler(request, extra)) as CompatibleToolsListLike
|
|
587
587
|
// Injection must not mutate arrays reused or frozen by the server.
|
|
588
588
|
let tools = [...(originalResponse.tools || [])]
|
|
589
589
|
|
|
@@ -635,7 +635,10 @@ async function getTracedToolsList(
|
|
|
635
635
|
}
|
|
636
636
|
}
|
|
637
637
|
|
|
638
|
-
export function cacheToolDescriptions(
|
|
638
|
+
export function cacheToolDescriptions(
|
|
639
|
+
cache: Map<string, string>,
|
|
640
|
+
tools: CompatibleToolsListLike['tools'] | undefined
|
|
641
|
+
): void {
|
|
639
642
|
if (!tools) {
|
|
640
643
|
return
|
|
641
644
|
}
|
|
@@ -656,7 +659,10 @@ export function readToolMetaCategory(meta: unknown): string | undefined {
|
|
|
656
659
|
return typeof category === 'string' && category.length > 0 ? category : undefined
|
|
657
660
|
}
|
|
658
661
|
|
|
659
|
-
export function cacheToolCategories(
|
|
662
|
+
export function cacheToolCategories(
|
|
663
|
+
cache: Map<string, string>,
|
|
664
|
+
tools: CompatibleToolsListLike['tools'] | undefined
|
|
665
|
+
): void {
|
|
660
666
|
if (!tools) {
|
|
661
667
|
return
|
|
662
668
|
}
|
|
@@ -821,7 +827,7 @@ export async function handleInitializeRequest(
|
|
|
821
827
|
// Harmless for a legacy `initialize` (client info rides the body there, and the
|
|
822
828
|
// negotiated protocol version below overrides any `_meta` one); picks up client
|
|
823
829
|
// info if a client also sends it in `_meta`.
|
|
824
|
-
|
|
830
|
+
stampClientIdentity(event, request, extra, server)
|
|
825
831
|
stampTransportIdentity(event, extra)
|
|
826
832
|
|
|
827
833
|
await applyResolvedMetadata(event, data, request, extra)
|
|
@@ -14,7 +14,7 @@ import type {
|
|
|
14
14
|
} from '../types'
|
|
15
15
|
import { MCPAnalyticsEventType } from './event-types'
|
|
16
16
|
import { captureEvent } from './capture'
|
|
17
|
-
import {
|
|
17
|
+
import { stampClientIdentity } from './client-identity'
|
|
18
18
|
import { stampTransportIdentity } from './transport-identity'
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -153,7 +153,7 @@ export async function handleIdentify(
|
|
|
153
153
|
parameters: { request, extra },
|
|
154
154
|
timestamp: new Date(),
|
|
155
155
|
}
|
|
156
|
-
|
|
156
|
+
stampClientIdentity(identifyEvent, request, extra, server)
|
|
157
157
|
stampTransportIdentity(identifyEvent, extra)
|
|
158
158
|
|
|
159
159
|
try {
|