@posthog/mcp 0.11.1 → 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/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) => CallToolResult | Promise<CallToolResult>) | ((extra: CompatibleRequestHandlerExtra) => CallToolResult | Promise<CallToolResult>);
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
  /**
@@ -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";
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.1';
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';
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.1",
3
+ "version": "0.11.2",
4
4
  "bugs": {
5
5
  "url": "https://github.com/PostHog/posthog-js/issues"
6
6
  },
@@ -34,6 +34,7 @@
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 under the MCP 2026-07-28 (stateless) revision.
5
+ * Client identity — who is calling, and which spec revision they speak.
5
6
  *
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.
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
- const meta = request.params?._meta
29
- if (!meta || typeof meta !== 'object') {
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
- 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
115
+ try {
116
+ if (hasClientVersionAccessor(server)) {
117
+ Object.assign(result, readClientInfoValue((server as MCPServerLike).getClientVersion()))
40
118
  }
41
- if (typeof version === 'string' && version.length > 0) {
42
- result.clientVersion = version
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
- const protocolVersion = record[META_PROTOCOL_VERSION_KEY]
47
- if (typeof protocolVersion === 'string' && protocolVersion.length > 0) {
48
- result.protocolVersion = protocolVersion
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 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).
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 the request actually carries are set, so a request
65
- * without `_meta` leaves the event's existing values untouched.
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 stampMetaClientInfo(event: McpEvent, request: MCPRequestLike): void {
68
- const info = readMetaClientInfo(request)
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
  }
@@ -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<CallToolResult> => {
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<CallToolResult>
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<CallToolResult>
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 { stampMetaClientInfo } from './client-identity'
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
- stampMetaClientInfo(event, request)
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 ListToolsResult
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: ListToolsResult['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
- stampMetaClientInfo(event, request)
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: ListToolsResult['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: ListToolsResult['tools'] | undefined): string[] | undefined {
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<ListToolsResult['tools']> {
583
+ ): Promise<CompatibleToolsListLike['tools']> {
584
584
  try {
585
585
  const data = getServerTrackingData(server)
586
- const originalResponse = (await originalListToolsHandler(request, extra)) as ListToolsResult
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(cache: Map<string, string>, tools: ListToolsResult['tools'] | undefined): void {
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(cache: Map<string, string>, tools: ListToolsResult['tools'] | undefined): void {
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
- stampMetaClientInfo(event, request)
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 { stampMetaClientInfo } from './client-identity'
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
- stampMetaClientInfo(identifyEvent, request)
156
+ stampClientIdentity(identifyEvent, request, extra, server)
157
157
  stampTransportIdentity(identifyEvent, extra)
158
158
 
159
159
  try {
@@ -3,7 +3,7 @@
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, type ListToolsResult } from '@modelcontextprotocol/sdk/types.js'
6
+ import type { CompatibleTextToolResult, CompatibleToolsListLike } from '../types'
7
7
  import { log, type LoggerFn } from './logger'
8
8
 
9
9
  export const GET_MORE_TOOLS_NAME = 'get_more_tools' as const
@@ -17,7 +17,7 @@ export function resolveMissingCapabilityToolName(options?: { missingCapabilityTo
17
17
  return options?.missingCapabilityToolName ?? GET_MORE_TOOLS_NAME
18
18
  }
19
19
 
20
- type ReportMissingToolDescriptor = ListToolsResult['tools'][number]
20
+ type ReportMissingToolDescriptor = CompatibleToolsListLike['tools'][number]
21
21
 
22
22
  export function getReportMissingToolDescriptor(name: string = GET_MORE_TOOLS_NAME): ReportMissingToolDescriptor {
23
23
  return {
@@ -53,7 +53,7 @@ export function getReportMissingToolDescriptor(name: string = GET_MORE_TOOLS_NAM
53
53
  * report was recorded (custom dispatcher path); the `instrument()` path returns
54
54
  * it automatically.
55
55
  */
56
- export function getMoreToolsResult(): CallToolResult {
56
+ export function getMoreToolsResult(): CompatibleTextToolResult {
57
57
  return {
58
58
  content: [
59
59
  {
@@ -64,7 +64,7 @@ export function getMoreToolsResult(): CallToolResult {
64
64
  }
65
65
  }
66
66
 
67
- export function handleReportMissing(args: { context: string }, logger: LoggerFn = log): CallToolResult {
67
+ export function handleReportMissing(args: { context: string }, logger: LoggerFn = log): CompatibleTextToolResult {
68
68
  logger(`Missing tool reported: ${JSON.stringify(args)}`)
69
69
  return getMoreToolsResult()
70
70
  }