@apify/actors-mcp-server 0.5.6 → 0.5.8

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.
Files changed (44) hide show
  1. package/README.md +34 -5
  2. package/dist/actor/server.d.ts.map +1 -1
  3. package/dist/actor/server.js +29 -3
  4. package/dist/actor/server.js.map +1 -1
  5. package/dist/const.d.ts +11 -0
  6. package/dist/const.d.ts.map +1 -1
  7. package/dist/const.js +16 -0
  8. package/dist/const.js.map +1 -1
  9. package/dist/mcp/server.d.ts +18 -11
  10. package/dist/mcp/server.d.ts.map +1 -1
  11. package/dist/mcp/server.js +119 -20
  12. package/dist/mcp/server.js.map +1 -1
  13. package/dist/mcp/utils.d.ts +1 -3
  14. package/dist/mcp/utils.d.ts.map +1 -1
  15. package/dist/mcp/utils.js +2 -3
  16. package/dist/mcp/utils.js.map +1 -1
  17. package/dist/stdio.js +77 -6
  18. package/dist/stdio.js.map +1 -1
  19. package/dist/telemetry.d.ts +25 -0
  20. package/dist/telemetry.d.ts.map +1 -0
  21. package/dist/telemetry.js +71 -0
  22. package/dist/telemetry.js.map +1 -0
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/dist/types.d.ts +59 -2
  25. package/dist/types.d.ts.map +1 -1
  26. package/dist/utils/generic.d.ts +7 -0
  27. package/dist/utils/generic.d.ts.map +1 -1
  28. package/dist/utils/generic.js +28 -0
  29. package/dist/utils/generic.js.map +1 -1
  30. package/dist/utils/tools-loader.d.ts +1 -3
  31. package/dist/utils/tools-loader.d.ts.map +1 -1
  32. package/dist/utils/tools-loader.js +1 -2
  33. package/dist/utils/tools-loader.js.map +1 -1
  34. package/dist/utils/userid-cache.d.ts +8 -0
  35. package/dist/utils/userid-cache.d.ts.map +1 -0
  36. package/dist/utils/userid-cache.js +28 -0
  37. package/dist/utils/userid-cache.js.map +1 -0
  38. package/dist/utils/version.d.ts +6 -0
  39. package/dist/utils/version.d.ts.map +1 -0
  40. package/dist/utils/version.js +11 -0
  41. package/dist/utils/version.js.map +1 -0
  42. package/manifest.json +1 -1
  43. package/package.json +3 -1
  44. package/server.json +1 -1
package/README.md CHANGED
@@ -34,6 +34,7 @@ The Apify Model Context Protocol (MCP) server at [**mcp.apify.com**](https://mcp
34
34
  - [🤖 MCP clients and examples](#-mcp-clients-and-examples)
35
35
  - [🪄 Try Apify MCP instantly](#-try-apify-mcp-instantly)
36
36
  - [🛠️ Tools, resources, and prompts](#-tools-resources-and-prompts)
37
+ - [📊 Telemetry](#telemetry)
37
38
  - [🐛 Troubleshooting (local MCP server)](#-troubleshooting-local-mcp-server)
38
39
  - [⚙️ Development](#-development)
39
40
  - [🤝 Contributing](#-contributing)
@@ -266,13 +267,32 @@ The server provides a set of predefined example prompts to help you get started
266
267
 
267
268
  The server does not yet provide any resources.
268
269
 
269
- ### Debugging the NPM package
270
+ ## 📡 Telemetry
270
271
 
271
- To debug the server, use the [MCP Inspector](https://github.com/modelcontextprotocol/inspector) tool:
272
+ The Apify MCP Server collects telemetry data about tool calls to help Apify understand usage patterns and improve the service.
273
+ By default, telemetry is **enabled** for all tool calls.
272
274
 
273
- ```shell
274
- export APIFY_TOKEN="your-apify-token"
275
- npx @modelcontextprotocol/inspector npx -y @apify/actors-mcp-server
275
+ ### Opting out of telemetry
276
+
277
+ You can opt out of telemetry by setting the `--telemetry-enabled` CLI flag to `false` or the `TELEMETRY_ENABLED` environment variable to `false`.
278
+ CLI flags take precedence over environment variables.
279
+
280
+ #### Examples
281
+
282
+ **For the remote server (mcp.apify.com)**:
283
+ ```text
284
+ # Disable via URL parameter
285
+ https://mcp.apify.com?telemetry-enabled=false
286
+ ```
287
+
288
+ **For the local stdio server**:
289
+ ```bash
290
+ # Disable via CLI flag
291
+ npx @apify/actors-mcp-server --telemetry-enabled=false
292
+
293
+ # Or set environment variable
294
+ export TELEMETRY_ENABLED=false
295
+ npx @apify/actors-mcp-server
276
296
  ```
277
297
 
278
298
  # ⚙️ Development
@@ -333,6 +353,15 @@ The Apify MCP Server is also available on [Docker Hub](https://hub.docker.com/mc
333
353
  - Make sure the `APIFY_TOKEN` environment variable is set.
334
354
  - Always use the latest version of the MCP server by using `@apify/actors-mcp-server@latest`.
335
355
 
356
+ ### Debugging the NPM package
357
+
358
+ To debug the server, use the [MCP Inspector](https://github.com/modelcontextprotocol/inspector) tool:
359
+
360
+ ```shell
361
+ export APIFY_TOKEN="your-apify-token"
362
+ npx @modelcontextprotocol/inspector npx -y @apify/actors-mcp-server
363
+ ```
364
+
336
365
  ## 💡 Limitations
337
366
 
338
367
  The Actor input schema is processed to be compatible with most MCP clients while adhering to [JSON Schema](https://json-schema.org/) standards. The processing includes:
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/actor/server.ts"],"names":[],"mappings":"AAUA,OAAO,OAAO,MAAM,SAAS,CAAC;AAS9B,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAuNjB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/actor/server.ts"],"names":[],"mappings":"AAUA,OAAO,OAAO,MAAM,SAAS,CAAC;AAU9B,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAoPjB"}
@@ -8,6 +8,7 @@ import express from 'express';
8
8
  import log from '@apify/log';
9
9
  import { ApifyClient } from '../apify-client.js';
10
10
  import { ActorsMcpServer } from '../mcp/server.js';
11
+ import { parseBooleanFromString } from '../utils/generic.js';
11
12
  import { getHelpMessage, HEADER_READINESS_PROBE, Routes, TransportType } from './const.js';
12
13
  import { getActorRunData } from './utils.js';
13
14
  export function createExpressApp(host) {
@@ -61,13 +62,25 @@ export function createExpressApp(host) {
61
62
  res.status(200).end();
62
63
  });
63
64
  app.get(Routes.SSE, async (req, res) => {
65
+ var _a, _b;
64
66
  try {
65
67
  log.info('MCP API', {
66
68
  mth: req.method,
67
69
  rt: Routes.SSE,
68
70
  tr: TransportType.SSE,
69
71
  });
70
- const mcpServer = new ActorsMcpServer({ setupSigintHandler: false });
72
+ // Extract telemetry query parameters
73
+ const urlParams = new URL(req.url, `http://${req.headers.host}`).searchParams;
74
+ const telemetryEnabledParam = urlParams.get('telemetry-enabled');
75
+ // URL param > env var > default (true)
76
+ const telemetryEnabled = (_b = (_a = parseBooleanFromString(telemetryEnabledParam)) !== null && _a !== void 0 ? _a : parseBooleanFromString(process.env.TELEMETRY_ENABLED)) !== null && _b !== void 0 ? _b : true;
77
+ const mcpServer = new ActorsMcpServer({
78
+ setupSigintHandler: false,
79
+ transportType: 'sse',
80
+ telemetry: {
81
+ enabled: telemetryEnabled,
82
+ },
83
+ });
71
84
  const transport = new SSEServerTransport(Routes.MESSAGE, res);
72
85
  // Load MCP server tools
73
86
  const apifyToken = process.env.APIFY_TOKEN;
@@ -134,6 +147,7 @@ export function createExpressApp(host) {
134
147
  // It must be used before the POST /mcp route but after the GET /sse route :shrug:
135
148
  app.use(express.json());
136
149
  app.post(Routes.MCP, async (req, res) => {
150
+ var _a, _b;
137
151
  log.info('Received MCP request:', req.body);
138
152
  try {
139
153
  // Check for existing session ID
@@ -144,12 +158,24 @@ export function createExpressApp(host) {
144
158
  transport = transports[sessionId];
145
159
  }
146
160
  else if (!sessionId && isInitializeRequest(req.body)) {
147
- // New initialization request - use JSON response mode
161
+ // New initialization request
148
162
  transport = new StreamableHTTPServerTransport({
149
163
  sessionIdGenerator: () => randomUUID(),
150
164
  enableJsonResponse: false, // Use SSE response mode
151
165
  });
152
- const mcpServer = new ActorsMcpServer({ setupSigintHandler: false, initializeRequestData: req.body });
166
+ // Extract telemetry query parameters
167
+ const urlParams = new URL(req.url, `http://${req.headers.host}`).searchParams;
168
+ const telemetryEnabledParam = urlParams.get('telemetry-enabled');
169
+ // URL param > env var > default (true)
170
+ const telemetryEnabled = (_b = (_a = parseBooleanFromString(telemetryEnabledParam)) !== null && _a !== void 0 ? _a : parseBooleanFromString(process.env.TELEMETRY_ENABLED)) !== null && _b !== void 0 ? _b : true;
171
+ const mcpServer = new ActorsMcpServer({
172
+ setupSigintHandler: false,
173
+ initializeRequestData: req.body,
174
+ transportType: 'http',
175
+ telemetry: {
176
+ enabled: telemetryEnabled,
177
+ },
178
+ });
153
179
  // Load MCP server tools
154
180
  const apifyToken = process.env.APIFY_TOKEN;
155
181
  log.debug('Loading tools from URL', { sessionId: transport.sessionId, tr: TransportType.HTTP });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/actor/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/actor/server.ts"],"names":[],"mappings":"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"}
package/dist/const.d.ts CHANGED
@@ -54,6 +54,8 @@ export declare const GET_HTML_SKELETON_CACHE_TTL_SECS: number;
54
54
  export declare const GET_HTML_SKELETON_CACHE_MAX_SIZE = 200;
55
55
  export declare const MCP_SERVER_CACHE_MAX_SIZE = 500;
56
56
  export declare const MCP_SERVER_CACHE_TTL_SECS: number;
57
+ export declare const USER_CACHE_MAX_SIZE = 200;
58
+ export declare const USER_CACHE_TTL_SECS: number;
57
59
  export declare const ACTOR_PRICING_MODEL: {
58
60
  /** Rental Actors */
59
61
  readonly FLAT_PRICE_PER_MONTH: "FLAT_PRICE_PER_MONTH";
@@ -76,4 +78,13 @@ export declare const ALGOLIA: {
76
78
  };
77
79
  export declare const PROGRESS_NOTIFICATION_INTERVAL_MS = 5000;
78
80
  export declare const APIFY_STORE_URL = "https://apify.com";
81
+ export declare const TELEMETRY_ENV: {
82
+ readonly DEV: "DEV";
83
+ readonly PROD: "PROD";
84
+ };
85
+ export type TelemetryEnv = (typeof TELEMETRY_ENV)[keyof typeof TELEMETRY_ENV];
86
+ export declare const DEFAULT_TELEMETRY_ENABLED = true;
87
+ export declare const DEFAULT_TELEMETRY_ENV: TelemetryEnv;
88
+ export declare const SEGMENT_FLUSH_AT_EVENTS = 50;
89
+ export declare const SEGMENT_FLUSH_INTERVAL_MS = 5000;
79
90
  //# sourceMappingURL=const.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAE7C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAGhD,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAG7C;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAG3C,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAC9C,eAAO,MAAM,cAAc,UAAU,CAAC;AAGtC,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,oBAAY,WAAW;IACnB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,iBAAiB,wBAAwB;IACzC,gBAAgB,qBAAqB;IACrC,gBAAgB,oBAAoB;IACpC,cAAc,kBAAkB;IAChC,cAAc,kBAAkB;IAChC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IACrD,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,YAAY,kBAAkB;IAC9B,WAAW,sBAAsB;IACjC,UAAU,qBAAqB;IAC/B,iBAAiB,sBAAsB;CAC1C;AAED,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,eAAO,MAAM,kCAAkC,UAA2C,CAAC;AAC3F,eAAO,MAAM,+BAA+B,+JAA+J,CAAC;AAE5M,eAAO,MAAM,QAAQ;;CAIpB,CAAC;AAEF,eAAO,MAAM,sBAAsB,IAAM,CAAC;AAC1C,eAAO,MAAM,iBAAiB,oBAAwC,CAAC;AAEvE,eAAO,MAAM,yBAAyB,QAAisB,CAAC;AAExuB,eAAO,MAAM,mCAAmC,oDAAoD,CAAC;AAErG,eAAO,MAAM,sBAAsB,QAA0wB,CAAC;AAE9yB,eAAO,MAAM,oCAAoC,2JAAuJ,CAAC;AAGzM,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,oBAAoB,QAAU,CAAC;AAC5C,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAU,CAAC;AACjD,eAAO,MAAM,gCAAgC,QAAS,CAAC;AACvD,eAAO,MAAM,gCAAgC,MAAM,CAAC;AACpD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAU,CAAC;AAEjD,eAAO,MAAM,mBAAmB;IAC5B,oBAAoB;;;IAGpB,kCAAkC;;IAElC,iCAAiC;;CAE3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,eAAO,MAAM,OAAO;;;;CAInB,CAAC;AAEF,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD,eAAO,MAAM,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAE7C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAGhD,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAG7C;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAG3C,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAC9C,eAAO,MAAM,cAAc,UAAU,CAAC;AAGtC,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,oBAAY,WAAW;IACnB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,iBAAiB,wBAAwB;IACzC,gBAAgB,qBAAqB;IACrC,gBAAgB,oBAAoB;IACpC,cAAc,kBAAkB;IAChC,cAAc,kBAAkB;IAChC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IACrD,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,YAAY,kBAAkB;IAC9B,WAAW,sBAAsB;IACjC,UAAU,qBAAqB;IAC/B,iBAAiB,sBAAsB;CAC1C;AAED,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,eAAO,MAAM,kCAAkC,UAA2C,CAAC;AAC3F,eAAO,MAAM,+BAA+B,+JAA+J,CAAC;AAE5M,eAAO,MAAM,QAAQ;;CAIpB,CAAC;AAEF,eAAO,MAAM,sBAAsB,IAAM,CAAC;AAC1C,eAAO,MAAM,iBAAiB,oBAAwC,CAAC;AAEvE,eAAO,MAAM,yBAAyB,QAAisB,CAAC;AAExuB,eAAO,MAAM,mCAAmC,oDAAoD,CAAC;AAErG,eAAO,MAAM,sBAAsB,QAA0wB,CAAC;AAE9yB,eAAO,MAAM,oCAAoC,2JAAuJ,CAAC;AAGzM,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,oBAAoB,QAAU,CAAC;AAC5C,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAU,CAAC;AACjD,eAAO,MAAM,gCAAgC,QAAS,CAAC;AACvD,eAAO,MAAM,gCAAgC,MAAM,CAAC;AACpD,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAU,CAAC;AACjD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,mBAAmB,QAAU,CAAC;AAE3C,eAAO,MAAM,mBAAmB;IAC5B,oBAAoB;;;IAGpB,kCAAkC;;IAElC,iCAAiC;;CAE3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,eAAO,MAAM,OAAO;;;;CAInB,CAAC;AAEF,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD,eAAO,MAAM,eAAe,sBAAsB,CAAC;AAGnD,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE9E,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,qBAAqB,EAAE,YAAiC,CAAC;AAMtE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,eAAO,MAAM,yBAAyB,OAAQ,CAAC"}
package/dist/const.js CHANGED
@@ -64,6 +64,8 @@ export const GET_HTML_SKELETON_CACHE_TTL_SECS = 5 * 60; // 5 minutes
64
64
  export const GET_HTML_SKELETON_CACHE_MAX_SIZE = 200;
65
65
  export const MCP_SERVER_CACHE_MAX_SIZE = 500;
66
66
  export const MCP_SERVER_CACHE_TTL_SECS = 30 * 60; // 30 minutes
67
+ export const USER_CACHE_MAX_SIZE = 200;
68
+ export const USER_CACHE_TTL_SECS = 60 * 60; // 1 hour
67
69
  export const ACTOR_PRICING_MODEL = {
68
70
  /** Rental Actors */
69
71
  FLAT_PRICE_PER_MONTH: 'FLAT_PRICE_PER_MONTH',
@@ -86,4 +88,18 @@ export const ALGOLIA = {
86
88
  };
87
89
  export const PROGRESS_NOTIFICATION_INTERVAL_MS = 5000; // 5 seconds
88
90
  export const APIFY_STORE_URL = 'https://apify.com';
91
+ // Telemetry
92
+ export const TELEMETRY_ENV = {
93
+ DEV: 'DEV',
94
+ PROD: 'PROD',
95
+ };
96
+ export const DEFAULT_TELEMETRY_ENABLED = true;
97
+ export const DEFAULT_TELEMETRY_ENV = TELEMETRY_ENV.PROD;
98
+ // We are using the same values as apify-core for consistency (despite that we ship events of different types).
99
+ // https://github.com/apify/apify-core/blob/2284766c122c6ac5bc4f27ec28051f4057d6f9c0/src/packages/analytics/src/server/segment.ts#L28
100
+ // Reasoning from the apify-core:
101
+ // Flush at 50 events to avoid sending too many small requests (default is 15)
102
+ export const SEGMENT_FLUSH_AT_EVENTS = 50;
103
+ // Flush interval in milliseconds (default is 10000)
104
+ export const SEGMENT_FLUSH_INTERVAL_MS = 5000;
89
105
  //# sourceMappingURL=const.js.map
package/dist/const.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"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"}
@@ -3,17 +3,8 @@
3
3
  */
4
4
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
5
  import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
6
- import type { InitializeRequest } from '@modelcontextprotocol/sdk/types.js';
7
6
  import { ApifyClient } from '../apify-client.js';
8
- import type { ToolEntry } from '../types.js';
9
- interface ActorsMcpServerOptions {
10
- setupSigintHandler?: boolean;
11
- /**
12
- * Switch to enable Skyfire agentic payment mode.
13
- */
14
- skyfireMode?: boolean;
15
- initializeRequestData?: InitializeRequest;
16
- }
7
+ import type { ActorsMcpServerOptions, ToolEntry } from '../types.js';
17
8
  /**
18
9
  * Create Apify MCP server
19
10
  */
@@ -24,7 +15,13 @@ export declare class ActorsMcpServer {
24
15
  private sigintHandler;
25
16
  private currentLogLevel;
26
17
  readonly options: ActorsMcpServerOptions;
18
+ private telemetryEnabled;
19
+ private telemetryEnv;
27
20
  constructor(options?: ActorsMcpServerOptions);
21
+ /**
22
+ * Telemetry configuration with precedence: explicit options > env vars > defaults
23
+ */
24
+ private setupTelemetry;
28
25
  /**
29
26
  * Returns an array of tool names.
30
27
  * @returns {string[]} - An array of tool names.
@@ -108,8 +105,18 @@ export declare class ActorsMcpServer {
108
105
  */
109
106
  private setupPromptHandlers;
110
107
  private setupToolHandlers;
108
+ /**
109
+ * Finalizes and tracks telemetry for a tool call.
110
+ * Calculates execution time, sets final status, and sends the telemetry event.
111
+ *
112
+ * @param telemetryData - Telemetry data to finalize and track (null if telemetry is disabled)
113
+ * @param userId - Apify user ID (string or null if not available)
114
+ * @param startTime - Timestamp when the tool call started
115
+ * @param toolStatus - Final status of the tool call ('succeeded', 'failed', or 'aborted')
116
+ */
117
+ private finalizeAndTrackTelemetry;
118
+ private prepareTelemetryData;
111
119
  connect(transport: Transport): Promise<void>;
112
120
  close(): Promise<void>;
113
121
  }
114
- export {};
115
122
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAoB5E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAYjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAY7C,UAAU,sBAAsB;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,iBAAiB,CAAC;CAC7C;AAED;;GAEG;AACH,qBAAa,eAAe;IACxB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9C,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,eAAe,CAAU;IACjC,SAAgB,OAAO,EAAE,sBAAsB,CAAC;gBAEpC,OAAO,GAAE,sBAA2B;IAiChD;;;OAGG;IACI,aAAa,IAAI,MAAM,EAAE;IAIhC;;;;;;;MAOE;IACK,2BAA2B,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI;IAOzE;;;MAGE;IACK,6BAA6B;IAOpC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;OAGG;IACI,kBAAkB,IAAI,MAAM,EAAE;IAMrC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;;OAGG;IACI,gBAAgB,IAAI,MAAM,EAAE;IAInC;;;;;MAKE;IACW,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW;IA6B1E;;;;;;OAMG;IACU,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQzG;;;;;;OAMG;IACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;IAQnE;OACG;IACI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,+BAA+B,UAAQ,GAAG,MAAM,EAAE;IAahG;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,+BAA+B,UAAQ;IA4C9E,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;IA8C7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,iBAAiB;IA8OnB,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB/B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAqB/E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgBjD,OAAO,KAAK,EAER,sBAAsB,EAItB,SAAS,EACZ,MAAM,aAAa,CAAC;AAerB;;GAEG;AACH,qBAAa,eAAe;IACxB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9C,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,eAAe,CAAU;IACjC,SAAgB,OAAO,EAAE,sBAAsB,CAAC;IAGhD,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,YAAY,CAAuC;gBAE/C,OAAO,GAAE,sBAA2B;IAmChD;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;;OAGG;IACI,aAAa,IAAI,MAAM,EAAE;IAIhC;;;;;;;MAOE;IACK,2BAA2B,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI;IAOzE;;;MAGE;IACK,6BAA6B;IAOpC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;OAGG;IACI,kBAAkB,IAAI,MAAM,EAAE;IAMrC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;;OAGG;IACI,gBAAgB,IAAI,MAAM,EAAE;IAInC;;;;;MAKE;IACW,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW;IA6B1E;;;;;;OAMG;IACU,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQzG;;;;;;OAMG;IACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;IAQnE;OACG;IACI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,+BAA+B,UAAQ,GAAG,MAAM,EAAE;IAahG;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,+BAA+B,UAAQ;IAyC9E,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;IA8C7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,iBAAiB;IAwPzB;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;YAsBnB,oBAAoB;IAmC5B,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB/B"}
@@ -5,15 +5,19 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
5
  import { CallToolRequestSchema, CallToolResultSchema, ErrorCode, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ListToolsRequestSchema, McpError, ReadResourceRequestSchema, ServerNotificationSchema, SetLevelRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
6
6
  import log from '@apify/log';
7
7
  import { ApifyClient } from '../apify-client.js';
8
- import { HelperTools, SERVER_NAME, SERVER_VERSION, SKYFIRE_PAY_ID_PROPERTY_DESCRIPTION, SKYFIRE_README_CONTENT, SKYFIRE_TOOL_INSTRUCTIONS, } from '../const.js';
8
+ import { DEFAULT_TELEMETRY_ENABLED, DEFAULT_TELEMETRY_ENV, HelperTools, SERVER_NAME, SERVER_VERSION, SKYFIRE_PAY_ID_PROPERTY_DESCRIPTION, SKYFIRE_README_CONTENT, SKYFIRE_TOOL_INSTRUCTIONS, } from '../const.js';
9
9
  import { prompts } from '../prompts/index.js';
10
+ import { getTelemetryEnv, trackToolCall } from '../telemetry.js';
10
11
  import { callActorGetDataset, defaultTools, getActorsAsTools, toolCategories } from '../tools/index.js';
11
12
  import { decodeDotPropertyNames } from '../tools/utils.js';
12
13
  import { buildActorResponseContent } from '../utils/actor-response.js';
14
+ import { parseBooleanFromString } from '../utils/generic.js';
13
15
  import { logHttpError } from '../utils/logging.js';
14
16
  import { buildMCPResponse } from '../utils/mcp.js';
15
17
  import { createProgressTracker } from '../utils/progress.js';
16
18
  import { cloneToolEntry, getToolPublicFieldOnly } from '../utils/tools.js';
19
+ import { getUserIdFromTokenCached } from '../utils/userid-cache.js';
20
+ import { getPackageVersion } from '../utils/version.js';
17
21
  import { connectMCPClient } from './client.js';
18
22
  import { EXTERNAL_TOOL_CALL_TIMEOUT_MSEC, LOG_LEVEL_MAP } from './const.js';
19
23
  import { processParamsGetTools } from './utils.js';
@@ -58,6 +62,19 @@ export class ActorsMcpServer {
58
62
  writable: true,
59
63
  value: void 0
60
64
  });
65
+ // Telemetry configuration (resolved from options and env vars in setupTelemetry)
66
+ Object.defineProperty(this, "telemetryEnabled", {
67
+ enumerable: true,
68
+ configurable: true,
69
+ writable: true,
70
+ value: null
71
+ });
72
+ Object.defineProperty(this, "telemetryEnv", {
73
+ enumerable: true,
74
+ configurable: true,
75
+ writable: true,
76
+ value: DEFAULT_TELEMETRY_ENV
77
+ });
61
78
  this.options = options;
62
79
  const { setupSigintHandler = true } = options;
63
80
  this.server = new Server({
@@ -67,7 +84,7 @@ export class ActorsMcpServer {
67
84
  capabilities: {
68
85
  tools: { listChanged: true },
69
86
  /**
70
- * Declaring prompts even though we are not using them
87
+ * Declaring resources even though we are not using them
71
88
  * to prevent clients like Claude desktop from failing.
72
89
  */
73
90
  resources: {},
@@ -75,6 +92,7 @@ export class ActorsMcpServer {
75
92
  logging: {},
76
93
  },
77
94
  });
95
+ this.setupTelemetry();
78
96
  this.setupLoggingProxy();
79
97
  this.tools = new Map();
80
98
  this.setupErrorHandling(setupSigintHandler);
@@ -86,6 +104,24 @@ export class ActorsMcpServer {
86
104
  */
87
105
  this.setupResourceHandlers();
88
106
  }
107
+ /**
108
+ * Telemetry configuration with precedence: explicit options > env vars > defaults
109
+ */
110
+ setupTelemetry() {
111
+ var _a, _b, _c;
112
+ const explicitEnabled = parseBooleanFromString((_a = this.options.telemetry) === null || _a === void 0 ? void 0 : _a.enabled);
113
+ if (explicitEnabled !== undefined) {
114
+ this.telemetryEnabled = explicitEnabled;
115
+ }
116
+ else {
117
+ const envEnabled = parseBooleanFromString(process.env.TELEMETRY_ENABLED);
118
+ this.telemetryEnabled = envEnabled !== null && envEnabled !== void 0 ? envEnabled : DEFAULT_TELEMETRY_ENABLED;
119
+ }
120
+ // Configure telemetryEnv: explicit option > env var > default ('PROD')
121
+ if (this.telemetryEnabled) {
122
+ this.telemetryEnv = getTelemetryEnv((_c = (_b = this.options.telemetry) === null || _b === void 0 ? void 0 : _b.env) !== null && _c !== void 0 ? _c : process.env.TELEMETRY_ENV);
123
+ }
124
+ }
89
125
  /**
90
126
  * Returns an array of tool names.
91
127
  * @returns {string[]} - An array of tool names.
@@ -209,7 +245,7 @@ export class ActorsMcpServer {
209
245
  * Used primarily for SSE.
210
246
  */
211
247
  async loadToolsFromUrl(url, apifyClient) {
212
- const tools = await processParamsGetTools(url, apifyClient, this.options.initializeRequestData);
248
+ const tools = await processParamsGetTools(url, apifyClient);
213
249
  if (tools.length > 0) {
214
250
  log.debug('Loading tools from query parameters');
215
251
  this.upsertTools(tools, false);
@@ -237,21 +273,19 @@ export class ActorsMcpServer {
237
273
  * @returns Array of added/updated tool wrappers
238
274
  */
239
275
  upsertTools(tools, shouldNotifyToolsChangedHandler = false) {
240
- // Handle Skyfire mode modifications before storing tools
241
276
  if (this.options.skyfireMode) {
242
277
  for (const wrap of tools) {
243
- if (wrap.type === 'actor'
278
+ // Clone the tool before modifying it to avoid affecting shared objects
279
+ const clonedWrap = cloneToolEntry(wrap);
280
+ let modified = false;
281
+ // Handle Skyfire mode modifications
282
+ if (this.options.skyfireMode && (wrap.type === 'actor'
244
283
  || (wrap.type === 'internal' && wrap.name === HelperTools.ACTOR_CALL)
245
- || (wrap.type === 'internal' && wrap.name === HelperTools.ACTOR_OUTPUT_GET)) {
246
- // Clone the tool before modifying it to avoid affecting shared objects
247
- const clonedWrap = cloneToolEntry(wrap);
284
+ || (wrap.type === 'internal' && wrap.name === HelperTools.ACTOR_OUTPUT_GET))) {
248
285
  // Add Skyfire instructions to description if not already present
249
286
  if (clonedWrap.description && !clonedWrap.description.includes(SKYFIRE_TOOL_INSTRUCTIONS)) {
250
287
  clonedWrap.description += `\n\n${SKYFIRE_TOOL_INSTRUCTIONS}`;
251
288
  }
252
- else if (!clonedWrap.description) {
253
- clonedWrap.description = SKYFIRE_TOOL_INSTRUCTIONS;
254
- }
255
289
  // Add skyfire-pay-id property if not present
256
290
  if (clonedWrap.inputSchema && 'properties' in clonedWrap.inputSchema) {
257
291
  const props = clonedWrap.inputSchema.properties;
@@ -262,13 +296,10 @@ export class ActorsMcpServer {
262
296
  };
263
297
  }
264
298
  }
265
- // Store the cloned and modified tool
266
- this.tools.set(clonedWrap.name, clonedWrap);
267
- }
268
- else {
269
- // Store unmodified tools as-is
270
- this.tools.set(wrap.name, wrap);
299
+ modified = true;
271
300
  }
301
+ // Store the cloned and modified tool only if modifications were made
302
+ this.tools.set(clonedWrap.name, modified ? clonedWrap : wrap);
272
303
  }
273
304
  }
274
305
  else {
@@ -428,15 +459,20 @@ export class ActorsMcpServer {
428
459
  * @throws {McpError} - based on the McpServer class code from the typescript MCP SDK
429
460
  */
430
461
  this.server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
462
+ var _a;
431
463
  // eslint-disable-next-line prefer-const
432
464
  let { name, arguments: args, _meta: meta } = request.params;
433
465
  const { progressToken } = meta || {};
434
- const apifyToken = (request.params.apifyToken || process.env.APIFY_TOKEN);
466
+ const apifyToken = (request.params.apifyToken || this.options.token || process.env.APIFY_TOKEN);
435
467
  const userRentedActorIds = request.params.userRentedActorIds;
468
+ // mcpSessionId was injected upstream by stdio; optional (for telemetry purposes only)
469
+ const mcpSessionId = typeof request.params.mcpSessionId === 'string' ? request.params.mcpSessionId : undefined;
436
470
  // Remove apifyToken from request.params just in case
437
471
  delete request.params.apifyToken;
438
472
  // Remove other custom params passed from apify-mcp-server
439
473
  delete request.params.userRentedActorIds;
474
+ // Remove mcpSessionId
475
+ delete request.params.mcpSessionId;
440
476
  // Validate token
441
477
  if (!apifyToken && !this.options.skyfireMode) {
442
478
  const msg = `APIFY_TOKEN is required but was not provided.
@@ -490,6 +526,9 @@ Please check the tool's input schema using ${HelperTools.ACTOR_GET_DETAILS} tool
490
526
  await this.server.sendLoggingMessage({ level: 'error', data: msg });
491
527
  throw new McpError(ErrorCode.InvalidParams, msg);
492
528
  }
529
+ const { telemetryData, userId } = await this.prepareTelemetryData(tool, mcpSessionId, apifyToken);
530
+ const startTime = Date.now();
531
+ let toolStatus = 'succeeded';
493
532
  try {
494
533
  // Handle internal tool
495
534
  if (tool.type === 'internal') {
@@ -510,6 +549,7 @@ Please check the tool's input schema using ${HelperTools.ACTOR_GET_DETAILS} tool
510
549
  if (progressTracker) {
511
550
  progressTracker.stop();
512
551
  }
552
+ toolStatus = ('isError' in res && res.isError) ? 'failed' : 'succeeded';
513
553
  return { ...res };
514
554
  }
515
555
  if (tool.type === 'actor-mcp') {
@@ -521,6 +561,7 @@ Please check the tool's input schema using ${HelperTools.ACTOR_GET_DETAILS} tool
521
561
  Please verify the server URL is correct and accessible, and ensure you have a valid Apify token with appropriate permissions.`;
522
562
  log.softFail(msg, { statusCode: 408 }); // 408 Request Timeout
523
563
  await this.server.sendLoggingMessage({ level: 'error', data: msg });
564
+ toolStatus = 'failed';
524
565
  return buildMCPResponse([msg], true);
525
566
  }
526
567
  // Only set up notification handlers if progressToken is provided by the client
@@ -557,8 +598,7 @@ Please verify the server URL is correct and accessible, and ensure you have a va
557
598
  }
558
599
  // Handle actor tool
559
600
  if (tool.type === 'actor') {
560
- if (this.options.skyfireMode
561
- && args['skyfire-pay-id'] === undefined) {
601
+ if (this.options.skyfireMode && args['skyfire-pay-id'] === undefined) {
562
602
  return buildMCPResponse([SKYFIRE_TOOL_INSTRUCTIONS]);
563
603
  }
564
604
  // Create progress tracker if progressToken is available
@@ -575,6 +615,7 @@ Please verify the server URL is correct and accessible, and ensure you have a va
575
615
  log.info('Calling Actor', { actorName: tool.actorFullName, input: actorArgs });
576
616
  const callResult = await callActorGetDataset(tool.actorFullName, actorArgs, apifyClient, callOptions, progressTracker, extra.signal);
577
617
  if (!callResult) {
618
+ toolStatus = 'aborted';
578
619
  // Receivers of cancellation notifications SHOULD NOT send a response for the cancelled request
579
620
  // https://modelcontextprotocol.io/specification/2025-06-18/basic/utilities/cancellation#behavior-requirements
580
621
  return {};
@@ -590,6 +631,7 @@ Please verify the server URL is correct and accessible, and ensure you have a va
590
631
  }
591
632
  }
592
633
  catch (error) {
634
+ toolStatus = ((_a = extra.signal) === null || _a === void 0 ? void 0 : _a.aborted) ? 'aborted' : 'failed';
593
635
  logHttpError(error, 'Error occurred while calling tool', { toolName: name });
594
636
  const errorMessage = (error instanceof Error) ? error.message : 'Unknown error';
595
637
  return buildMCPResponse([
@@ -597,6 +639,9 @@ Please verify the server URL is correct and accessible, and ensure you have a va
597
639
  Please verify the tool name, input parameters, and ensure all required resources are available.`,
598
640
  ], true);
599
641
  }
642
+ finally {
643
+ this.finalizeAndTrackTelemetry(telemetryData, userId, startTime, toolStatus);
644
+ }
600
645
  const availableTools = this.listToolNames();
601
646
  const msg = `Unknown tool type for "${name}".
602
647
  Available tools: ${availableTools.length > 0 ? availableTools.join(', ') : 'none'}.
@@ -609,6 +654,60 @@ Please verify the tool name and ensure the tool is properly registered.`;
609
654
  throw new McpError(ErrorCode.InvalidParams, msg);
610
655
  });
611
656
  }
657
+ /**
658
+ * Finalizes and tracks telemetry for a tool call.
659
+ * Calculates execution time, sets final status, and sends the telemetry event.
660
+ *
661
+ * @param telemetryData - Telemetry data to finalize and track (null if telemetry is disabled)
662
+ * @param userId - Apify user ID (string or null if not available)
663
+ * @param startTime - Timestamp when the tool call started
664
+ * @param toolStatus - Final status of the tool call ('succeeded', 'failed', or 'aborted')
665
+ */
666
+ finalizeAndTrackTelemetry(telemetryData, userId, startTime, toolStatus) {
667
+ if (!telemetryData) {
668
+ return;
669
+ }
670
+ const execTime = Date.now() - startTime;
671
+ const finalizedTelemetryData = {
672
+ ...telemetryData,
673
+ tool_status: toolStatus,
674
+ tool_exec_time_ms: execTime,
675
+ };
676
+ trackToolCall(userId, this.telemetryEnv, finalizedTelemetryData);
677
+ }
678
+ /*
679
+ * Creates telemetry data for a tool call.
680
+ */
681
+ async prepareTelemetryData(tool, mcpSessionId, apifyToken) {
682
+ var _a, _b, _c, _d, _e;
683
+ if (!this.telemetryEnabled) {
684
+ return { telemetryData: null, userId: null };
685
+ }
686
+ const toolFullName = tool.type === 'actor' ? tool.actorFullName : tool.name;
687
+ // Get userId from cache or fetch from API
688
+ let userId = null;
689
+ if (apifyToken) {
690
+ const apifyClient = new ApifyClient({ token: apifyToken });
691
+ userId = await getUserIdFromTokenCached(apifyToken, apifyClient);
692
+ log.debug('Telemetry: fetched userId', { userId });
693
+ }
694
+ const capabilities = (_b = (_a = this.options.initializeRequestData) === null || _a === void 0 ? void 0 : _a.params) === null || _b === void 0 ? void 0 : _b.capabilities;
695
+ const params = (_c = this.options.initializeRequestData) === null || _c === void 0 ? void 0 : _c.params;
696
+ const telemetryData = {
697
+ app: 'mcp',
698
+ app_version: getPackageVersion() || '',
699
+ mcp_client_name: ((_d = params === null || params === void 0 ? void 0 : params.clientInfo) === null || _d === void 0 ? void 0 : _d.name) || '',
700
+ mcp_client_version: ((_e = params === null || params === void 0 ? void 0 : params.clientInfo) === null || _e === void 0 ? void 0 : _e.version) || '',
701
+ mcp_protocol_version: (params === null || params === void 0 ? void 0 : params.protocolVersion) || '',
702
+ mcp_client_capabilities: capabilities || null,
703
+ mcp_session_id: mcpSessionId || '',
704
+ transport_type: this.options.transportType || '',
705
+ tool_name: toolFullName,
706
+ tool_status: 'succeeded', // Will be updated in finally
707
+ tool_exec_time_ms: 0, // Will be calculated in finally
708
+ };
709
+ return { telemetryData, userId };
710
+ }
612
711
  async connect(transport) {
613
712
  await this.server.connect(transport);
614
713
  }