@posthog/mcp 0.21.0 → 0.21.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/README.md +1 -0
- package/dist/extensions/posthog-mcp.d.ts +4 -1
- package/dist/extensions/posthog-mcp.d.ts.map +1 -1
- package/dist/extensions/posthog-mcp.js +17 -0
- package/dist/extensions/posthog-mcp.mjs +17 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.mjs +1 -1
- package/package.json +4 -4
- package/src/extensions/posthog-mcp.ts +25 -1
- package/src/version.ts +1 -1
package/README.md
CHANGED
|
@@ -197,6 +197,7 @@ const customDispatcherClient = new PostHogMCP(process.env.POSTHOG_PROJECT_TOKEN,
|
|
|
197
197
|
```
|
|
198
198
|
|
|
199
199
|
Omit `serverBuild` when the deployment does not provide a reliable value.
|
|
200
|
+
`PostHogMCP` also adds the build to custom events from its inherited `capture()` and `captureImmediate()` methods.
|
|
200
201
|
|
|
201
202
|
### What `$mcp_llm_model` records, and when it stays empty
|
|
202
203
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PostHog, type PostHogOptions } from 'posthog-node';
|
|
1
|
+
import { PostHog, type EventMessage, type PostHogOptions } from 'posthog-node';
|
|
2
2
|
import type { FeedbackCaptureData, CollectFeedbackConfig, InitializeCaptureData, MCPAnalyticsOptions, MissingCapabilityCaptureData, PreparedToolCall, PreparedToolResult, PrepareToolCallOptions, PrepareToolListOptions, ToolCallCaptureData, ToolsListCaptureData } from '../types';
|
|
3
3
|
import { type ContextInjectableTool } from './context-parameters';
|
|
4
4
|
/**
|
|
@@ -81,6 +81,9 @@ export interface PostHogMCPOptions extends PostHogOptions {
|
|
|
81
81
|
export declare class PostHogMCP extends PostHog {
|
|
82
82
|
#private;
|
|
83
83
|
constructor(apiKey: string, options?: PostHogMCPOptions);
|
|
84
|
+
/** Add the configured build to SDK events and custom events captured through this client. */
|
|
85
|
+
capture(event: EventMessage): void;
|
|
86
|
+
captureImmediate(event: EventMessage): Promise<void>;
|
|
84
87
|
/** Capture a tool invocation. Emits `$mcp_tool_call` (+ an `$exception` sibling on error). */
|
|
85
88
|
captureToolCall(data: ToolCallCaptureData): void;
|
|
86
89
|
/** Capture the connection handshake. Emits `$mcp_initialize`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog-mcp.d.ts","sourceRoot":"","sources":["../../src/extensions/posthog-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"posthog-mcp.d.ts","sourceRoot":"","sources":["../../src/extensions/posthog-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAE9E,OAAO,KAAK,EACV,mBAAmB,EAGnB,qBAAqB,EACrB,qBAAqB,EAErB,mBAAmB,EAGnB,4BAA4B,EAC5B,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,UAAU,CAAA;AAgBjB,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,sBAAsB,CAAA;AAoB7B;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAA;IACvC;;;OAGG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAA;IAClD;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,UAAW,SAAQ,OAAO;;IAerC,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,EAiB1D;IAMD,6FAA6F;IACpF,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAE1C;IAEQ,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;IAED,8FAA8F;IAC9F,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAgB/C;IAED,iEAAiE;IACjE,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAQnD;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAYjD;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,eAAe,CAAC,KAAK,SAAS,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,GAAE,sBAA2B,GAAG,KAAK,EAAE,CAmDlH;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACH,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,GAAE,sBAA2B,GACnC,gBAAgB,CAiDlB;IAED;;;;;;;;;OASG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,GAAG,kBAAkB,CAAC,OAAO,CAAC,CA2BvG;IAED;;;;;OAKG;IACH,wBAAwB,CAAC,IAAI,EAAE,4BAA4B,GAAG,IAAI,CAOjE;IAED;;;;;;OAMG;IACH,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAW/C;CA2BF"}
|
|
@@ -35,6 +35,7 @@ const external_feedback_js_namespaceObject = require("./feedback.js");
|
|
|
35
35
|
const external_analytics_parameters_js_namespaceObject = require("./analytics-parameters.js");
|
|
36
36
|
const external_conversation_id_js_namespaceObject = require("./conversation-id.js");
|
|
37
37
|
const external_context_parameters_js_namespaceObject = require("./context-parameters.js");
|
|
38
|
+
const external_constants_js_namespaceObject = require("./constants.js");
|
|
38
39
|
const external_event_types_js_namespaceObject = require("./event-types.js");
|
|
39
40
|
const external_exceptions_js_namespaceObject = require("./exceptions.js");
|
|
40
41
|
const external_headers_js_namespaceObject = require("./headers.js");
|
|
@@ -70,6 +71,12 @@ class PostHogMCP extends external_posthog_node_namespaceObject.PostHog {
|
|
|
70
71
|
get #feedbackToolName() {
|
|
71
72
|
return this.#feedbackOptions?.toolName ?? external_feedback_js_namespaceObject.SEND_FEEDBACK_TOOL_NAME;
|
|
72
73
|
}
|
|
74
|
+
capture(event) {
|
|
75
|
+
super.capture(this.#withServerBuild(event));
|
|
76
|
+
}
|
|
77
|
+
captureImmediate(event) {
|
|
78
|
+
return super.captureImmediate(this.#withServerBuild(event));
|
|
79
|
+
}
|
|
73
80
|
captureToolCall(data) {
|
|
74
81
|
const event = baseEvent(external_event_types_js_namespaceObject.MCPAnalyticsEventType.mcpToolsCall, data);
|
|
75
82
|
event.resourceName = data.toolName;
|
|
@@ -244,6 +251,16 @@ class PostHogMCP extends external_posthog_node_namespaceObject.PostHog {
|
|
|
244
251
|
enableExceptionAutocapture: this.options.enableExceptionAutocapture ?? true
|
|
245
252
|
}).catch((error)=>(0, external_logger_js_namespaceObject.log)(`Warning: PostHogMCP failed to capture event - ${error}`));
|
|
246
253
|
}
|
|
254
|
+
#withServerBuild(event) {
|
|
255
|
+
if (!this.#serverBuild) return event;
|
|
256
|
+
return {
|
|
257
|
+
...event,
|
|
258
|
+
properties: {
|
|
259
|
+
...event.properties,
|
|
260
|
+
[external_constants_js_namespaceObject.PostHogMCPAnalyticsProperty.ServerBuild]: event.properties?.[external_constants_js_namespaceObject.PostHogMCPAnalyticsProperty.ServerBuild] ?? this.#serverBuild
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
}
|
|
247
264
|
}
|
|
248
265
|
function baseEvent(eventType, common) {
|
|
249
266
|
const event = {
|
|
@@ -3,6 +3,7 @@ import { SEND_FEEDBACK_TOOL_NAME, buildFeedbackEventProperties, buildFeedbackInt
|
|
|
3
3
|
import { getAnalyticsParameterOwnership, stripOwnedAnalyticsArguments } from "./analytics-parameters.mjs";
|
|
4
4
|
import { addConversationIdToTools, canInjectConversationIdPromptBack, injectConversationIdPromptBack, resolveConversationId } from "./conversation-id.mjs";
|
|
5
5
|
import { addContextParameterToTools, getContextDescription, isContextEnabled } from "./context-parameters.mjs";
|
|
6
|
+
import { PostHogMCPAnalyticsProperty } from "./constants.mjs";
|
|
6
7
|
import { MCPAnalyticsEventType } from "./event-types.mjs";
|
|
7
8
|
import { captureException } from "./exceptions.mjs";
|
|
8
9
|
import { normalizeHeaderString } from "./headers.mjs";
|
|
@@ -38,6 +39,12 @@ class PostHogMCP extends PostHog {
|
|
|
38
39
|
get #feedbackToolName() {
|
|
39
40
|
return this.#feedbackOptions?.toolName ?? SEND_FEEDBACK_TOOL_NAME;
|
|
40
41
|
}
|
|
42
|
+
capture(event) {
|
|
43
|
+
super.capture(this.#withServerBuild(event));
|
|
44
|
+
}
|
|
45
|
+
captureImmediate(event) {
|
|
46
|
+
return super.captureImmediate(this.#withServerBuild(event));
|
|
47
|
+
}
|
|
41
48
|
captureToolCall(data) {
|
|
42
49
|
const event = baseEvent(MCPAnalyticsEventType.mcpToolsCall, data);
|
|
43
50
|
event.resourceName = data.toolName;
|
|
@@ -212,6 +219,16 @@ class PostHogMCP extends PostHog {
|
|
|
212
219
|
enableExceptionAutocapture: this.options.enableExceptionAutocapture ?? true
|
|
213
220
|
}).catch((error)=>log(`Warning: PostHogMCP failed to capture event - ${error}`));
|
|
214
221
|
}
|
|
222
|
+
#withServerBuild(event) {
|
|
223
|
+
if (!this.#serverBuild) return event;
|
|
224
|
+
return {
|
|
225
|
+
...event,
|
|
226
|
+
properties: {
|
|
227
|
+
...event.properties,
|
|
228
|
+
[PostHogMCPAnalyticsProperty.ServerBuild]: event.properties?.[PostHogMCPAnalyticsProperty.ServerBuild] ?? this.#serverBuild
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
}
|
|
215
232
|
}
|
|
216
233
|
function baseEvent(eventType, common) {
|
|
217
234
|
const event = {
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.21.
|
|
1
|
+
export declare const version = "0.21.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
package/dist/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const version =
|
|
1
|
+
const version = "0.21.1";
|
|
2
2
|
export { version };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@posthog/mcp",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.1",
|
|
4
4
|
"bugs": {
|
|
5
5
|
"url": "https://github.com/PostHog/posthog-js/issues"
|
|
6
6
|
},
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"zod4": "npm:zod@^4.4.3",
|
|
54
54
|
"@vitest/coverage-v8": "^1.6.1",
|
|
55
55
|
"vitest": "^1.6.1",
|
|
56
|
-
"
|
|
57
|
-
"posthog-
|
|
56
|
+
"posthog-node": "^5.54.1",
|
|
57
|
+
"@posthog-tooling/tsconfig-base": "1.1.1"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"@modelcontextprotocol/sdk": ">=1.26.0",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"clean": "rimraf dist coverage",
|
|
90
90
|
"lint": "oxlint --report-unused-disable-directives-severity error src && oxfmt --check harness",
|
|
91
91
|
"lint:fix": "oxlint --report-unused-disable-directives-severity error src --fix && oxfmt --write harness",
|
|
92
|
-
"generate-version": "node -
|
|
92
|
+
"generate-version": "node ../../tooling/write-version.mjs",
|
|
93
93
|
"pretest:unit": "pnpm generate-version",
|
|
94
94
|
"test:unit": "vitest run",
|
|
95
95
|
"test:integration": "pnpm test:integration:sdk-v1 && pnpm test:integration:sdk-v2 && pnpm test:integration:nest-v1 && pnpm test:integration:nest-v2",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PostHog, type PostHogOptions } from 'posthog-node'
|
|
1
|
+
import { PostHog, type EventMessage, type PostHogOptions } from 'posthog-node'
|
|
2
2
|
|
|
3
3
|
import type {
|
|
4
4
|
FeedbackCaptureData,
|
|
@@ -39,6 +39,7 @@ import {
|
|
|
39
39
|
isContextEnabled,
|
|
40
40
|
type ContextInjectableTool,
|
|
41
41
|
} from './context-parameters'
|
|
42
|
+
import { PostHogMCPAnalyticsProperty } from './constants'
|
|
42
43
|
import { MCPAnalyticsEventType } from './event-types'
|
|
43
44
|
import { captureException } from './exceptions'
|
|
44
45
|
import { normalizeHeaderString } from './headers'
|
|
@@ -184,6 +185,15 @@ export class PostHogMCP extends PostHog {
|
|
|
184
185
|
return this.#feedbackOptions?.toolName ?? SEND_FEEDBACK_TOOL_NAME
|
|
185
186
|
}
|
|
186
187
|
|
|
188
|
+
/** Add the configured build to SDK events and custom events captured through this client. */
|
|
189
|
+
override capture(event: EventMessage): void {
|
|
190
|
+
super.capture(this.#withServerBuild(event))
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
override captureImmediate(event: EventMessage): Promise<void> {
|
|
194
|
+
return super.captureImmediate(this.#withServerBuild(event))
|
|
195
|
+
}
|
|
196
|
+
|
|
187
197
|
/** Capture a tool invocation. Emits `$mcp_tool_call` (+ an `$exception` sibling on error). */
|
|
188
198
|
captureToolCall(data: ToolCallCaptureData): void {
|
|
189
199
|
const event = baseEvent(MCPAnalyticsEventType.mcpToolsCall, data)
|
|
@@ -500,6 +510,20 @@ export class PostHogMCP extends PostHog {
|
|
|
500
510
|
.capture(event, { enableExceptionAutocapture: this.options.enableExceptionAutocapture ?? true })
|
|
501
511
|
.catch((error) => log(`Warning: PostHogMCP failed to capture event - ${error}`))
|
|
502
512
|
}
|
|
513
|
+
|
|
514
|
+
#withServerBuild(event: EventMessage): EventMessage {
|
|
515
|
+
if (!this.#serverBuild) {
|
|
516
|
+
return event
|
|
517
|
+
}
|
|
518
|
+
return {
|
|
519
|
+
...event,
|
|
520
|
+
properties: {
|
|
521
|
+
...event.properties,
|
|
522
|
+
[PostHogMCPAnalyticsProperty.ServerBuild]:
|
|
523
|
+
event.properties?.[PostHogMCPAnalyticsProperty.ServerBuild] ?? this.#serverBuild,
|
|
524
|
+
},
|
|
525
|
+
}
|
|
526
|
+
}
|
|
503
527
|
}
|
|
504
528
|
|
|
505
529
|
/**
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version =
|
|
1
|
+
export const version = "0.21.1"
|