@posthog/mcp 0.8.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +2 -2
- package/README.md +59 -0
- package/dist/extensions/capture.d.ts.map +1 -1
- package/dist/extensions/compatibility.d.ts.map +1 -1
- package/dist/extensions/constants.d.ts.map +1 -1
- package/dist/extensions/context-parameters.d.ts.map +1 -1
- package/dist/extensions/conversation-id.d.ts.map +1 -1
- package/dist/extensions/event-types.d.ts.map +1 -1
- package/dist/extensions/exceptions.d.ts.map +1 -1
- package/dist/extensions/ids.d.ts.map +1 -1
- package/dist/extensions/instrument-highlevel.d.ts.map +1 -1
- package/dist/extensions/instrument-lowlevel.d.ts.map +1 -1
- package/dist/extensions/instrumentation.d.ts.map +1 -1
- package/dist/extensions/instrumentation.js +39 -3
- package/dist/extensions/instrumentation.mjs +41 -5
- package/dist/extensions/intent.d.ts.map +1 -1
- package/dist/extensions/internal.d.ts +4 -2
- package/dist/extensions/internal.d.ts.map +1 -1
- package/dist/extensions/internal.js +5 -2
- package/dist/extensions/internal.mjs +5 -2
- package/dist/extensions/logger.d.ts.map +1 -1
- package/dist/extensions/mcp-payloads.d.ts.map +1 -1
- package/dist/extensions/mcp-sdk-compat.d.ts.map +1 -1
- package/dist/extensions/posthog-events.d.ts.map +1 -1
- package/dist/extensions/sanitization.d.ts.map +1 -1
- package/dist/extensions/session-token.d.ts +46 -0
- package/dist/extensions/session-token.d.ts.map +1 -0
- package/dist/extensions/session-token.js +122 -0
- package/dist/extensions/session-token.mjs +76 -0
- package/dist/extensions/session.d.ts +5 -4
- package/dist/extensions/session.d.ts.map +1 -1
- package/dist/extensions/session.js +25 -33
- package/dist/extensions/session.mjs +22 -27
- package/dist/extensions/sink.d.ts.map +1 -1
- package/dist/extensions/tools.d.ts.map +1 -1
- package/dist/extensions/tracing-helpers.d.ts.map +1 -1
- package/dist/extensions/truncation.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -2
- package/dist/index.mjs +2 -1
- package/dist/types.d.ts +18 -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 +3 -3
- package/src/extensions/capture.ts +4 -3
- package/src/extensions/compatibility.ts +4 -3
- package/src/extensions/constants.ts +4 -3
- package/src/extensions/context-parameters.ts +4 -3
- package/src/extensions/conversation-id.ts +4 -3
- package/src/extensions/event-types.ts +4 -3
- package/src/extensions/exceptions.ts +4 -3
- package/src/extensions/ids.ts +4 -3
- package/src/extensions/instrument-highlevel.ts +4 -3
- package/src/extensions/instrument-lowlevel.ts +4 -3
- package/src/extensions/instrumentation.ts +85 -9
- package/src/extensions/intent.ts +4 -3
- package/src/extensions/internal.ts +23 -7
- package/src/extensions/logger.ts +4 -3
- package/src/extensions/mcp-payloads.ts +4 -3
- package/src/extensions/mcp-sdk-compat.ts +4 -3
- package/src/extensions/posthog-events.ts +4 -3
- package/src/extensions/sanitization.ts +4 -3
- package/src/extensions/session-token.ts +168 -0
- package/src/extensions/session.ts +42 -40
- package/src/extensions/sink.ts +4 -3
- package/src/extensions/tools.ts +4 -3
- package/src/extensions/tracing-helpers.ts +4 -3
- package/src/extensions/truncation.ts +4 -3
- package/src/index.ts +14 -4
- package/src/types.ts +24 -5
- package/src/version.ts +1 -1
package/src/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
// Portions of this file are derived from
|
|
2
|
-
//
|
|
3
|
-
//
|
|
1
|
+
// Portions of this file are derived from agentcathq/agentcat-typescript-sdk
|
|
2
|
+
// (formerly MCPCat/mcpcat-typescript-sdk)
|
|
3
|
+
// Copyright (c) 2025 AgentCat, Inc. (formerly MCPcat)
|
|
4
|
+
// Licensed under the MIT License: https://github.com/agentcathq/agentcat-typescript-sdk/blob/main/LICENSE
|
|
4
5
|
|
|
5
6
|
import type { PostHog } from 'posthog-node'
|
|
6
7
|
import { isCompatibleServerType, isHighLevelServer } from './extensions/compatibility'
|
|
@@ -191,7 +192,16 @@ async function captureCustomEvent(lowLevelServer: MCPServerLike, eventData: Capt
|
|
|
191
192
|
log(`Captured event "${eventData.event}" for session ${trackingData.sessionId}`)
|
|
192
193
|
}
|
|
193
194
|
|
|
194
|
-
export { deriveSessionIdFromMCPSession }
|
|
195
|
+
export { deriveSessionIdFromMCPSession, newSessionId }
|
|
196
|
+
// Session tokens for stateless / multi-pod servers. Minted and decoded
|
|
197
|
+
// automatically on JSON-mode StreamableHTTP; SSE servers set the header
|
|
198
|
+
// themselves with `encodeSessionId`.
|
|
199
|
+
export {
|
|
200
|
+
MCP_SESSION_HEADER,
|
|
201
|
+
decodeSessionId,
|
|
202
|
+
encodeSessionId,
|
|
203
|
+
type SessionTokenPayload,
|
|
204
|
+
} from './extensions/session-token'
|
|
195
205
|
export {
|
|
196
206
|
POSTHOG_MCP_ANALYTICS_SOURCE,
|
|
197
207
|
PostHogMCPAnalyticsEvent,
|
package/src/types.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
// Portions of this file are derived from
|
|
2
|
-
//
|
|
3
|
-
//
|
|
1
|
+
// Portions of this file are derived from agentcathq/agentcat-typescript-sdk
|
|
2
|
+
// (formerly MCPCat/mcpcat-typescript-sdk)
|
|
3
|
+
// Copyright (c) 2025 AgentCat, Inc. (formerly MCPcat)
|
|
4
|
+
// Licensed under the MIT License: https://github.com/agentcathq/agentcat-typescript-sdk/blob/main/LICENSE
|
|
4
5
|
|
|
5
6
|
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js'
|
|
6
7
|
import type { ErrorTracking } from '@posthog/core'
|
|
@@ -69,6 +70,8 @@ export interface MCPAnalyticsOptions {
|
|
|
69
70
|
/**
|
|
70
71
|
* Identify the calling user. Returning a non-null value sets `distinct_id` and `$set`
|
|
71
72
|
* on subsequent events for the session. Object form is treated as a static identity.
|
|
73
|
+
* A standalone `$identify` event is published once per session — at `initialize`, or
|
|
74
|
+
* when a long-lived server sees the identity appear or change — never per tool call.
|
|
72
75
|
*/
|
|
73
76
|
identify?:
|
|
74
77
|
| ((request: MCPRequestLike, extra?: CompatibleRequestHandlerExtra) => Promise<UserIdentity | null>)
|
|
@@ -179,9 +182,17 @@ export interface Event {
|
|
|
179
182
|
/** A partially-built MCP event as it flows through the SDK before capture. */
|
|
180
183
|
export type McpEvent = Partial<Event>
|
|
181
184
|
|
|
185
|
+
/** HTTP request info the SDK's Streamable HTTP transports attach per request. */
|
|
186
|
+
export interface CompatibleRequestInfoLike {
|
|
187
|
+
headers?: Record<string, string | string[] | undefined>
|
|
188
|
+
[key: string]: unknown
|
|
189
|
+
}
|
|
190
|
+
|
|
182
191
|
export interface CompatibleRequestHandlerExtra {
|
|
183
192
|
headers?: Record<string, string | string[]>
|
|
184
193
|
sessionId?: string
|
|
194
|
+
/** Present on HTTP transports only — headers ride every request, unlike `clientInfo`. */
|
|
195
|
+
requestInfo?: CompatibleRequestInfoLike
|
|
185
196
|
[key: string]: unknown
|
|
186
197
|
}
|
|
187
198
|
|
|
@@ -199,9 +210,17 @@ export interface HighLevelMCPServerLike {
|
|
|
199
210
|
tool?(name: string, description: string, paramsSchema: unknown, cb: ToolCallback): void
|
|
200
211
|
}
|
|
201
212
|
|
|
213
|
+
/** The connected transport as exposed by the SDK's `Protocol.transport` getter. */
|
|
214
|
+
export interface CompatibleTransportLike {
|
|
215
|
+
sessionId?: string
|
|
216
|
+
[key: string]: unknown
|
|
217
|
+
}
|
|
218
|
+
|
|
202
219
|
export interface MCPServerLike {
|
|
203
220
|
_requestHandlers: Map<string, (request: MCPRequestLike, extra?: CompatibleRequestHandlerExtra) => Promise<unknown>>
|
|
204
221
|
_serverInfo?: ServerClientInfoLike
|
|
222
|
+
/** Optional so older SDKs (and bare test doubles) still validate. */
|
|
223
|
+
transport?: CompatibleTransportLike
|
|
205
224
|
getClientVersion(): ServerClientInfoLike | undefined
|
|
206
225
|
setRequestHandler(
|
|
207
226
|
schema: unknown,
|
|
@@ -245,11 +264,11 @@ export interface MCPAnalyticsData {
|
|
|
245
264
|
sink: McpEventSink | undefined
|
|
246
265
|
identifiedSessions: IdentityCache
|
|
247
266
|
lastActivity: Date
|
|
248
|
-
lastMcpSessionId?: string
|
|
249
267
|
options: MCPAnalyticsOptions
|
|
250
268
|
sessionId: string
|
|
251
269
|
sessionInfo: SessionInfo
|
|
252
|
-
|
|
270
|
+
/** `token` = recovered from a self-encoded `Mcp-Session-Id` token (see session-token.ts). */
|
|
271
|
+
sessionSource: 'generated' | 'mcp' | 'token'
|
|
253
272
|
toolCategories: Map<string, string>
|
|
254
273
|
toolDescriptions: Map<string, string>
|
|
255
274
|
}
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '0.
|
|
1
|
+
export const version = '0.9.1'
|