@posthog/mcp 0.11.0 → 0.11.2
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 +39 -0
- package/dist/extensions/client-identity.d.ts +70 -15
- package/dist/extensions/client-identity.d.ts.map +1 -1
- package/dist/extensions/client-identity.js +72 -17
- package/dist/extensions/client-identity.mjs +59 -13
- package/dist/extensions/compatibility.d.ts.map +1 -1
- package/dist/extensions/compatibility.js +14 -18
- package/dist/extensions/compatibility.mjs +10 -14
- package/dist/extensions/detect.d.ts +51 -0
- package/dist/extensions/detect.d.ts.map +1 -0
- package/dist/extensions/detect.js +96 -0
- package/dist/extensions/detect.mjs +38 -0
- 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 +6 -5
- package/dist/extensions/instrumentation.mjs +7 -6
- package/dist/extensions/internal.js +1 -1
- package/dist/extensions/internal.mjs +2 -2
- package/dist/extensions/request-headers.d.ts +36 -0
- package/dist/extensions/request-headers.d.ts.map +1 -0
- package/dist/extensions/request-headers.js +62 -0
- package/dist/extensions/request-headers.mjs +28 -0
- package/dist/extensions/session.d.ts.map +1 -1
- package/dist/extensions/session.js +2 -1
- package/dist/extensions/session.mjs +2 -1
- package/dist/extensions/tools.d.ts +4 -4
- package/dist/extensions/tools.d.ts.map +1 -1
- package/dist/extensions/transport-identity.d.ts +8 -3
- package/dist/extensions/transport-identity.d.ts.map +1 -1
- package/dist/extensions/transport-identity.js +2 -1
- package/dist/extensions/transport-identity.mjs +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -7
- package/dist/index.mjs +2 -1
- package/dist/types.d.ts +77 -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 +12 -2
- package/src/extensions/client-identity.ts +146 -31
- package/src/extensions/compatibility.ts +25 -24
- package/src/extensions/detect.ts +87 -0
- package/src/extensions/instrument-highlevel.ts +4 -4
- package/src/extensions/instrumentation.ts +22 -15
- package/src/extensions/internal.ts +2 -2
- package/src/extensions/request-headers.ts +76 -0
- package/src/extensions/session.ts +2 -1
- package/src/extensions/tools.ts +4 -4
- package/src/extensions/transport-identity.ts +10 -4
- package/src/index.ts +4 -0
- package/src/types.ts +78 -3
- package/src/version.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -24,20 +24,21 @@ var __webpack_require__ = {};
|
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
setLogger: ()=>logger_js_namespaceObject.setLogger,
|
|
28
27
|
PostHog: ()=>external_posthog_node_namespaceObject.PostHog,
|
|
29
|
-
PostHogMCP: ()=>posthog_mcp_js_namespaceObject.PostHogMCP,
|
|
30
28
|
POSTHOG_MCP_ANALYTICS_SOURCE: ()=>constants_js_namespaceObject.POSTHOG_MCP_ANALYTICS_SOURCE,
|
|
31
29
|
deriveSessionIdFromMCPSession: ()=>session_js_namespaceObject.deriveSessionIdFromMCPSession,
|
|
32
|
-
instrument: ()=>instrument,
|
|
33
30
|
decodeSessionId: ()=>session_token_js_namespaceObject.decodeSessionId,
|
|
34
|
-
newSessionId: ()=>session_js_namespaceObject.newSessionId,
|
|
35
31
|
MCP_SESSION_HEADER: ()=>session_token_js_namespaceObject.MCP_SESSION_HEADER,
|
|
36
|
-
instrumentMutator: ()=>instrumentMutator,
|
|
37
32
|
PostHogMCPAnalyticsEvent: ()=>constants_js_namespaceObject.PostHogMCPAnalyticsEvent,
|
|
33
|
+
getRequestHeaders: ()=>request_headers_js_namespaceObject.getRequestHeaders,
|
|
34
|
+
PostHogMCPAnalyticsProperty: ()=>constants_js_namespaceObject.PostHogMCPAnalyticsProperty,
|
|
35
|
+
PostHogMCP: ()=>posthog_mcp_js_namespaceObject.PostHogMCP,
|
|
36
|
+
newSessionId: ()=>session_js_namespaceObject.newSessionId,
|
|
37
|
+
instrument: ()=>instrument,
|
|
38
|
+
instrumentMutator: ()=>instrumentMutator,
|
|
39
|
+
setLogger: ()=>logger_js_namespaceObject.setLogger,
|
|
38
40
|
encodeSessionId: ()=>session_token_js_namespaceObject.encodeSessionId,
|
|
39
|
-
getMoreToolsResult: ()=>tools_js_namespaceObject.getMoreToolsResult
|
|
40
|
-
PostHogMCPAnalyticsProperty: ()=>constants_js_namespaceObject.PostHogMCPAnalyticsProperty
|
|
41
|
+
getMoreToolsResult: ()=>tools_js_namespaceObject.getMoreToolsResult
|
|
41
42
|
});
|
|
42
43
|
const compatibility_js_namespaceObject = require("./extensions/compatibility.js");
|
|
43
44
|
const sink_js_namespaceObject = require("./extensions/sink.js");
|
|
@@ -51,6 +52,7 @@ const instrument_lowlevel_js_namespaceObject = require("./extensions/instrument-
|
|
|
51
52
|
const instrument_highlevel_js_namespaceObject = require("./extensions/instrument-highlevel.js");
|
|
52
53
|
const session_token_js_namespaceObject = require("./extensions/session-token.js");
|
|
53
54
|
const constants_js_namespaceObject = require("./extensions/constants.js");
|
|
55
|
+
const request_headers_js_namespaceObject = require("./extensions/request-headers.js");
|
|
54
56
|
const posthog_mcp_js_namespaceObject = require("./extensions/posthog-mcp.js");
|
|
55
57
|
const tools_js_namespaceObject = require("./extensions/tools.js");
|
|
56
58
|
const external_posthog_node_namespaceObject = require("posthog-node");
|
|
@@ -150,6 +152,7 @@ exports.decodeSessionId = __webpack_exports__.decodeSessionId;
|
|
|
150
152
|
exports.deriveSessionIdFromMCPSession = __webpack_exports__.deriveSessionIdFromMCPSession;
|
|
151
153
|
exports.encodeSessionId = __webpack_exports__.encodeSessionId;
|
|
152
154
|
exports.getMoreToolsResult = __webpack_exports__.getMoreToolsResult;
|
|
155
|
+
exports.getRequestHeaders = __webpack_exports__.getRequestHeaders;
|
|
153
156
|
exports.instrument = __webpack_exports__.instrument;
|
|
154
157
|
exports.instrumentMutator = __webpack_exports__.instrumentMutator;
|
|
155
158
|
exports.newSessionId = __webpack_exports__.newSessionId;
|
|
@@ -165,6 +168,7 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
|
165
168
|
"deriveSessionIdFromMCPSession",
|
|
166
169
|
"encodeSessionId",
|
|
167
170
|
"getMoreToolsResult",
|
|
171
|
+
"getRequestHeaders",
|
|
168
172
|
"instrument",
|
|
169
173
|
"instrumentMutator",
|
|
170
174
|
"newSessionId",
|
package/dist/index.mjs
CHANGED
|
@@ -10,6 +10,7 @@ import { instrumentLowLevelServer } from "./extensions/instrument-lowlevel.mjs";
|
|
|
10
10
|
import { instrumentHighLevelServer } from "./extensions/instrument-highlevel.mjs";
|
|
11
11
|
import { MCP_SESSION_HEADER, decodeSessionId, encodeSessionId } from "./extensions/session-token.mjs";
|
|
12
12
|
import { POSTHOG_MCP_ANALYTICS_SOURCE, PostHogMCPAnalyticsEvent, PostHogMCPAnalyticsProperty } from "./extensions/constants.mjs";
|
|
13
|
+
import { getRequestHeaders } from "./extensions/request-headers.mjs";
|
|
13
14
|
import { PostHogMCP } from "./extensions/posthog-mcp.mjs";
|
|
14
15
|
import { getMoreToolsResult } from "./extensions/tools.mjs";
|
|
15
16
|
import { PostHog } from "posthog-node";
|
|
@@ -99,4 +100,4 @@ async function captureCustomEvent(lowLevelServer, eventData) {
|
|
|
99
100
|
await captureEvent(lowLevelServer, event, trackingData.logger);
|
|
100
101
|
trackingData.logger(`Captured event "${eventData.event}" for session ${trackingData.sessionId}`);
|
|
101
102
|
}
|
|
102
|
-
export { MCP_SESSION_HEADER, POSTHOG_MCP_ANALYTICS_SOURCE, PostHog, PostHogMCP, PostHogMCPAnalyticsEvent, PostHogMCPAnalyticsProperty, decodeSessionId, deriveSessionIdFromMCPSession, encodeSessionId, getMoreToolsResult, instrument, instrumentMutator, newSessionId, setLogger };
|
|
103
|
+
export { MCP_SESSION_HEADER, POSTHOG_MCP_ANALYTICS_SOURCE, PostHog, PostHogMCP, PostHogMCPAnalyticsEvent, PostHogMCPAnalyticsProperty, decodeSessionId, deriveSessionIdFromMCPSession, encodeSessionId, getMoreToolsResult, getRequestHeaders, instrument, instrumentMutator, newSessionId, setLogger };
|
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`). */
|
|
@@ -199,13 +246,41 @@ export interface CompatibleRequestInfoLike {
|
|
|
199
246
|
headers?: Record<string, string | string[] | undefined>;
|
|
200
247
|
[key: string]: unknown;
|
|
201
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* The HTTP request an MCP SDK v2 server attaches to the handler context, as a
|
|
251
|
+
* WHATWG `Request` — so `headers` answers to `.get()`, not to indexing.
|
|
252
|
+
*/
|
|
253
|
+
export interface CompatibleHttpRequestLike {
|
|
254
|
+
req?: {
|
|
255
|
+
headers?: unknown;
|
|
256
|
+
[key: string]: unknown;
|
|
257
|
+
};
|
|
258
|
+
[key: string]: unknown;
|
|
259
|
+
}
|
|
202
260
|
export interface CompatibleRequestHandlerExtra {
|
|
203
261
|
headers?: Record<string, string | string[]>;
|
|
204
262
|
sessionId?: string;
|
|
205
263
|
/** Present on HTTP transports only — headers ride every request, unlike `clientInfo`. */
|
|
206
264
|
requestInfo?: CompatibleRequestInfoLike;
|
|
265
|
+
/** Where MCP SDK v2 puts the same thing. Read both through `getRequestHeaders`. */
|
|
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
|
+
};
|
|
207
276
|
[key: string]: unknown;
|
|
208
277
|
}
|
|
278
|
+
/**
|
|
279
|
+
* HTTP headers normalised to lowercase keys, as `getRequestHeaders` returns
|
|
280
|
+
* them — a plain bag, so a host's existing `headers['authorization']` keeps
|
|
281
|
+
* working when only the source of the headers changes.
|
|
282
|
+
*/
|
|
283
|
+
export type RequestHeaderBag = Record<string, string | string[]>;
|
|
209
284
|
export interface ServerClientInfoLike {
|
|
210
285
|
name?: string;
|
|
211
286
|
version?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
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.2";
|
|
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.2';
|
|
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.2';
|
|
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.2",
|
|
4
4
|
"bugs": {
|
|
5
5
|
"url": "https://github.com/PostHog/posthog-js/issues"
|
|
6
6
|
},
|
|
@@ -28,12 +28,13 @@
|
|
|
28
28
|
"module": "dist/index.mjs",
|
|
29
29
|
"types": "dist/index.d.ts",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@posthog/core": "^1.
|
|
31
|
+
"@posthog/core": "^1.47.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
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",
|
|
@@ -44,8 +45,17 @@
|
|
|
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,14 +1,26 @@
|
|
|
1
|
-
import type { McpEvent, MCPRequestLike } from '../types'
|
|
1
|
+
import type { CompatibleRequestHandlerExtra, McpEvent, MCPRequestLike, MCPServerLike } from '../types'
|
|
2
|
+
import { hasClientVersionAccessor, hasNegotiatedProtocolVersionAccessor } from './detect'
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
|
-
* Client identity
|
|
5
|
+
* Client identity — who is calling, and which spec revision they speak.
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* of
|
|
7
|
+
* Where it lives depends on the revision the *request* declares, so this is a
|
|
8
|
+
* fallback chain and never a branch: one server serves both eras, request by
|
|
9
|
+
* request.
|
|
10
|
+
*
|
|
11
|
+
* 1. `ctx.mcpReq.envelope` — MCP SDK v2 lifts the reserved
|
|
12
|
+
* `io.modelcontextprotocol/*` keys out of `_meta` before dispatch, so by
|
|
13
|
+
* the time a handler runs they are here and `params._meta` is empty.
|
|
14
|
+
* 2. `request.params._meta` — where 2026-07-28 puts them on the wire, and
|
|
15
|
+
* where they still are on any server that does not lift them.
|
|
16
|
+
* 3. the server's own accessors — `getClientVersion()` from a legacy
|
|
17
|
+
* `initialize` handshake, `getNegotiatedProtocolVersion()` on v2.
|
|
18
|
+
*
|
|
19
|
+
* The 2026-07-28 revision removed the `initialize` handshake and the
|
|
20
|
+
* `Mcp-Session-Id` header (SEP-2575 / SEP-2567), so client name/version and the
|
|
21
|
+
* protocol version no longer arrive once per connection — they travel with
|
|
22
|
+
* every request. The key strings are mirrored here rather than imported,
|
|
23
|
+
* because no `@modelcontextprotocol/*` package is a dependency of this one.
|
|
12
24
|
*/
|
|
13
25
|
export const META_CLIENT_INFO_KEY = 'io.modelcontextprotocol/clientInfo'
|
|
14
26
|
export const META_PROTOCOL_VERSION_KEY = 'io.modelcontextprotocol/protocolVersion'
|
|
@@ -19,53 +31,156 @@ export interface MetaClientInfo {
|
|
|
19
31
|
protocolVersion?: string
|
|
20
32
|
}
|
|
21
33
|
|
|
34
|
+
/** Everything a request can be asked about who is calling. */
|
|
35
|
+
export interface ClientIdentitySources {
|
|
36
|
+
request: MCPRequestLike
|
|
37
|
+
extra?: CompatibleRequestHandlerExtra
|
|
38
|
+
/**
|
|
39
|
+
* Typed `unknown` on purpose: every accessor on it is reached through a
|
|
40
|
+
* structural probe, never a declared type, because the two SDK majors expose
|
|
41
|
+
* different ones. Call sites pass a real `MCPServerLike`; the shape checks
|
|
42
|
+
* here are what decide whether it can answer.
|
|
43
|
+
*/
|
|
44
|
+
server?: unknown
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
type UnknownRecord = Record<string, unknown>
|
|
48
|
+
|
|
49
|
+
function nonEmptyString(value: unknown): string | undefined {
|
|
50
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Pulls `{ name, version }` out of a reserved-key value, whatever carried it. */
|
|
54
|
+
function readClientInfoValue(value: unknown): MetaClientInfo | undefined {
|
|
55
|
+
if (!value || typeof value !== 'object') {
|
|
56
|
+
return undefined
|
|
57
|
+
}
|
|
58
|
+
const { name, version } = value as UnknownRecord
|
|
59
|
+
const result: MetaClientInfo = {}
|
|
60
|
+
const clientName = nonEmptyString(name)
|
|
61
|
+
const clientVersion = nonEmptyString(version)
|
|
62
|
+
if (clientName) {
|
|
63
|
+
result.clientName = clientName
|
|
64
|
+
}
|
|
65
|
+
if (clientVersion) {
|
|
66
|
+
result.clientVersion = clientVersion
|
|
67
|
+
}
|
|
68
|
+
return result.clientName || result.clientVersion ? result : undefined
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function readReservedKeys(bag: unknown): MetaClientInfo | undefined {
|
|
72
|
+
if (!bag || typeof bag !== 'object') {
|
|
73
|
+
return undefined
|
|
74
|
+
}
|
|
75
|
+
const record = bag as UnknownRecord
|
|
76
|
+
const result: MetaClientInfo = { ...readClientInfoValue(record[META_CLIENT_INFO_KEY]) }
|
|
77
|
+
const protocolVersion = nonEmptyString(record[META_PROTOCOL_VERSION_KEY])
|
|
78
|
+
if (protocolVersion) {
|
|
79
|
+
result.protocolVersion = protocolVersion
|
|
80
|
+
}
|
|
81
|
+
return result.clientName || result.clientVersion || result.protocolVersion ? result : undefined
|
|
82
|
+
}
|
|
83
|
+
|
|
22
84
|
/**
|
|
23
85
|
* Reads the client name/version and protocol version a modern client puts in
|
|
24
86
|
* `params._meta`. Returns `undefined` when the request carries none (e.g. a
|
|
25
87
|
* legacy client, which sends this on `initialize` instead). Never throws.
|
|
26
88
|
*/
|
|
27
89
|
export function readMetaClientInfo(request: MCPRequestLike): MetaClientInfo | undefined {
|
|
28
|
-
|
|
29
|
-
|
|
90
|
+
return readReservedKeys(request.params?._meta)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Reads the same keys from MCP SDK v2's request envelope. v2 strips the reserved
|
|
95
|
+
* `io.modelcontextprotocol/*` keys from `_meta` while parsing, so on exactly the
|
|
96
|
+
* traffic this matters for, `readMetaClientInfo` finds nothing and this finds
|
|
97
|
+
* everything.
|
|
98
|
+
*/
|
|
99
|
+
export function readEnvelopeClientInfo(extra: CompatibleRequestHandlerExtra | undefined): MetaClientInfo | undefined {
|
|
100
|
+
return readReservedKeys((extra as { mcpReq?: { envelope?: unknown } } | undefined)?.mcpReq?.envelope)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Asks the server itself. `getClientVersion()` answers on any server that
|
|
105
|
+
* handled an `initialize` (and v2 hosts such as `createMcpHandler` backfill it
|
|
106
|
+
* from the envelope); `getNegotiatedProtocolVersion()` exists on v2 only, which
|
|
107
|
+
* is why it is a link in the chain rather than a branch. Never throws — a
|
|
108
|
+
* server that dislikes being asked must not fail the tool call.
|
|
109
|
+
*/
|
|
110
|
+
export function readServerClientIdentity(server: unknown): MetaClientInfo | undefined {
|
|
111
|
+
if (!server) {
|
|
30
112
|
return undefined
|
|
31
113
|
}
|
|
32
|
-
const record = meta as Record<string, unknown>
|
|
33
114
|
const result: MetaClientInfo = {}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const { name, version } = clientInfo as Record<string, unknown>
|
|
38
|
-
if (typeof name === 'string' && name.length > 0) {
|
|
39
|
-
result.clientName = name
|
|
115
|
+
try {
|
|
116
|
+
if (hasClientVersionAccessor(server)) {
|
|
117
|
+
Object.assign(result, readClientInfoValue((server as MCPServerLike).getClientVersion()))
|
|
40
118
|
}
|
|
41
|
-
if (
|
|
42
|
-
|
|
119
|
+
if (hasNegotiatedProtocolVersionAccessor(server)) {
|
|
120
|
+
const negotiated = (
|
|
121
|
+
server as unknown as { getNegotiatedProtocolVersion(): unknown }
|
|
122
|
+
).getNegotiatedProtocolVersion()
|
|
123
|
+
const protocolVersion = nonEmptyString(negotiated)
|
|
124
|
+
if (protocolVersion) {
|
|
125
|
+
result.protocolVersion = protocolVersion
|
|
126
|
+
}
|
|
43
127
|
}
|
|
128
|
+
} catch {
|
|
129
|
+
// fall through to whatever was read before the accessor objected
|
|
44
130
|
}
|
|
131
|
+
return result.clientName || result.clientVersion || result.protocolVersion ? result : undefined
|
|
132
|
+
}
|
|
45
133
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
134
|
+
/**
|
|
135
|
+
* Resolves client identity through the whole chain, field by field: the first
|
|
136
|
+
* source that answers a field wins, and a source that answers nothing simply
|
|
137
|
+
* does not participate. Field-by-field rather than source-by-source because a
|
|
138
|
+
* request may carry its protocol version in the envelope while the client's
|
|
139
|
+
* name is only known to the server from a handshake.
|
|
140
|
+
*
|
|
141
|
+
* The first three links are **per request**, so they cannot describe anyone but
|
|
142
|
+
* the caller. Only the last — the server's own accessors — is connection-scoped,
|
|
143
|
+
* and on a server that multiplexes several clients through one connection it
|
|
144
|
+
* answers for whichever client completed the handshake. That is the best answer
|
|
145
|
+
* available on that connection, and it is the same scope `capture.ts` has always
|
|
146
|
+
* fallen back to (`eventInput.clientName ?? sessionInfo.clientName`), so the
|
|
147
|
+
* chain neither introduces that sharing nor widens it. Ordering it last is what
|
|
148
|
+
* keeps it a fallback: any request that identifies itself wins outright.
|
|
149
|
+
*/
|
|
150
|
+
export function resolveClientIdentity({ request, extra, server }: ClientIdentitySources): MetaClientInfo | undefined {
|
|
151
|
+
const chain = [readEnvelopeClientInfo(extra), readMetaClientInfo(request), readServerClientIdentity(server)]
|
|
152
|
+
const result: MetaClientInfo = {}
|
|
153
|
+
for (const source of chain) {
|
|
154
|
+
if (!source) {
|
|
155
|
+
continue
|
|
156
|
+
}
|
|
157
|
+
result.clientName ??= source.clientName
|
|
158
|
+
result.clientVersion ??= source.clientVersion
|
|
159
|
+
result.protocolVersion ??= source.protocolVersion
|
|
49
160
|
}
|
|
50
|
-
|
|
51
161
|
return result.clientName || result.clientVersion || result.protocolVersion ? result : undefined
|
|
52
162
|
}
|
|
53
163
|
|
|
54
164
|
/**
|
|
55
|
-
* Stamps
|
|
56
|
-
*
|
|
57
|
-
* `$
|
|
58
|
-
*
|
|
165
|
+
* Stamps whatever the chain resolved onto the event being built for *this*
|
|
166
|
+
* request, so it carries `$mcp_client_name`, `$mcp_client_version` and
|
|
167
|
+
* `$mcp_protocol_version` even when there was no `initialize` to learn them
|
|
168
|
+
* from (the modern stateless case).
|
|
59
169
|
*
|
|
60
170
|
* Writing to the event — a per-request object — rather than the server-wide
|
|
61
171
|
* `sessionInfo` keeps identity correct when one instrumented server multiplexes
|
|
62
172
|
* concurrent requests from different clients (which the stateless spec allows):
|
|
63
173
|
* a sibling request can't clobber this event's attribution between now and when
|
|
64
|
-
* it's captured. Only fields
|
|
65
|
-
*
|
|
174
|
+
* it's captured. Only fields actually resolved are set, so a request that
|
|
175
|
+
* carries nothing leaves the event's existing values untouched.
|
|
66
176
|
*/
|
|
67
|
-
export function
|
|
68
|
-
|
|
177
|
+
export function stampClientIdentity(
|
|
178
|
+
event: McpEvent,
|
|
179
|
+
request: MCPRequestLike,
|
|
180
|
+
extra?: CompatibleRequestHandlerExtra,
|
|
181
|
+
server?: MCPServerLike
|
|
182
|
+
): void {
|
|
183
|
+
const info = resolveClientIdentity({ request, extra, server })
|
|
69
184
|
if (!info) {
|
|
70
185
|
return
|
|
71
186
|
}
|
|
@@ -4,6 +4,16 @@
|
|
|
4
4
|
// Licensed under the MIT License: https://github.com/agentcathq/agentcat-typescript-sdk/blob/main/LICENSE
|
|
5
5
|
|
|
6
6
|
import type { HighLevelMCPServerLike, MCPServerLike } from '../types'
|
|
7
|
+
import {
|
|
8
|
+
canRegisterTools,
|
|
9
|
+
canSetRequestHandler,
|
|
10
|
+
hasClientVersionAccessor,
|
|
11
|
+
hasNestedLowLevelServer,
|
|
12
|
+
hasRequestHandlerMap,
|
|
13
|
+
hasServerInfo,
|
|
14
|
+
hasToolRegistry,
|
|
15
|
+
isBareServerShape,
|
|
16
|
+
} from './detect'
|
|
7
17
|
import type { LoggerFn } from './logger'
|
|
8
18
|
|
|
9
19
|
type ServerRecord = Record<string, unknown>
|
|
@@ -28,13 +38,11 @@ export function logCompatibilityWarning(logger: LoggerFn): void {
|
|
|
28
38
|
}
|
|
29
39
|
|
|
30
40
|
export function isHighLevelServer(server: unknown): server is ServerRecord & { server: ServerRecord } {
|
|
31
|
-
return (
|
|
32
|
-
!!server && typeof server === 'object' && 'server' in server && !!server.server && typeof server.server === 'object'
|
|
33
|
-
)
|
|
41
|
+
return hasNestedLowLevelServer(server)
|
|
34
42
|
}
|
|
35
43
|
|
|
36
44
|
export function isLowLevelServer(server: unknown): server is ServerRecord {
|
|
37
|
-
return
|
|
45
|
+
return isBareServerShape(server)
|
|
38
46
|
}
|
|
39
47
|
|
|
40
48
|
export function isCompatibleServerType(server: unknown, logger: LoggerFn): MCPServerLike | HighLevelMCPServerLike {
|
|
@@ -46,16 +54,20 @@ export function isCompatibleServerType(server: unknown, logger: LoggerFn): MCPSe
|
|
|
46
54
|
}
|
|
47
55
|
|
|
48
56
|
if (isHighLevelServer(server)) {
|
|
49
|
-
if (!server
|
|
57
|
+
if (!hasToolRegistry(server)) {
|
|
50
58
|
logCompatibilityWarning(logger)
|
|
51
59
|
throw new Error(
|
|
52
60
|
'PostHog MCP analytics SDK compatibility error: High-level server must have _registeredTools object. This requires MCP SDK v1.11 or higher.'
|
|
53
61
|
)
|
|
54
62
|
}
|
|
55
|
-
|
|
63
|
+
// Either registration method is enough. v1 has both; v2 dropped the
|
|
64
|
+
// deprecated tool() and kept registerTool(). Demanding tool() rejected every
|
|
65
|
+
// v2 high-level server, and instrument() swallows the rejection — so the
|
|
66
|
+
// integration looked healthy and captured nothing.
|
|
67
|
+
if (!canRegisterTools(server)) {
|
|
56
68
|
logCompatibilityWarning(logger)
|
|
57
69
|
throw new Error(
|
|
58
|
-
'PostHog MCP analytics SDK compatibility error: High-level server must have tool() method. This requires MCP SDK v1.11 or higher.'
|
|
70
|
+
'PostHog MCP analytics SDK compatibility error: High-level server must have a registerTool() or tool() method. This requires MCP SDK v1.11 or higher.'
|
|
59
71
|
)
|
|
60
72
|
}
|
|
61
73
|
|
|
@@ -76,41 +88,30 @@ function validateLowLevelServer(server: unknown, logger: LoggerFn): void {
|
|
|
76
88
|
)
|
|
77
89
|
}
|
|
78
90
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (typeof serverRecord.setRequestHandler !== 'function') {
|
|
91
|
+
if (!canSetRequestHandler(server)) {
|
|
82
92
|
logCompatibilityWarning(logger)
|
|
83
93
|
throw new Error(
|
|
84
94
|
'PostHog MCP analytics SDK compatibility error: Server must have a setRequestHandler method. This requires MCP SDK v1.11 or higher.'
|
|
85
95
|
)
|
|
86
96
|
}
|
|
87
97
|
|
|
88
|
-
|
|
98
|
+
// A real Map with a working get(), which is what the handler patch reads and
|
|
99
|
+
// writes. Both majors keep it.
|
|
100
|
+
if (!hasRequestHandlerMap(server)) {
|
|
89
101
|
logCompatibilityWarning(logger)
|
|
90
102
|
throw new Error(
|
|
91
103
|
'PostHog MCP analytics SDK compatibility error: Server._requestHandlers is not accessible. This requires MCP SDK v1.11 or higher.'
|
|
92
104
|
)
|
|
93
105
|
}
|
|
94
106
|
|
|
95
|
-
if (
|
|
96
|
-
logCompatibilityWarning(logger)
|
|
97
|
-
throw new Error(
|
|
98
|
-
'PostHog MCP analytics SDK compatibility error: Server._requestHandlers must be a Map with a get method. This requires MCP SDK v1.11 or higher.'
|
|
99
|
-
)
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
if (typeof serverRecord.getClientVersion !== 'function') {
|
|
107
|
+
if (!hasClientVersionAccessor(server)) {
|
|
103
108
|
logCompatibilityWarning(logger)
|
|
104
109
|
throw new Error(
|
|
105
110
|
'PostHog MCP analytics SDK compatibility error: Server.getClientVersion must be a function. This requires MCP SDK v1.11 or higher.'
|
|
106
111
|
)
|
|
107
112
|
}
|
|
108
113
|
|
|
109
|
-
if (
|
|
110
|
-
!serverRecord._serverInfo ||
|
|
111
|
-
typeof serverRecord._serverInfo !== 'object' ||
|
|
112
|
-
!('name' in serverRecord._serverInfo)
|
|
113
|
-
) {
|
|
114
|
+
if (!hasServerInfo(server)) {
|
|
114
115
|
logCompatibilityWarning(logger)
|
|
115
116
|
throw new Error(
|
|
116
117
|
'PostHog MCP analytics SDK compatibility error: Server._serverInfo is not accessible or missing name. This requires MCP SDK v1.11 or higher.'
|