@apify/actors-mcp-server 0.9.20-beta.1 → 0.9.20-beta.3

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.
@@ -1,9 +1,10 @@
1
+ import dedent from 'dedent';
1
2
  import { ApifyClient } from '../../apify_client.js';
2
3
  import { getWidgetConfig, WIDGET_URIS } from '../../resources/widgets.js';
3
- import { buildActorNotFoundResponse, buildCardOptions, fetchActorDetails, processActorDetailsForResponse, resolveOutputOptions, } from '../../utils/actor_details.js';
4
+ import { buildActorDetailsForWidget, buildCardOptions, fetchActorDetails, } from '../../utils/actor_details.js';
4
5
  import { buildMCPResponse } from '../../utils/mcp.js';
5
6
  import { fixActorNameInputAndLog } from '../core/actor_tools_factory.js';
6
- import { fetchActorDetailsMetadata, fetchActorDetailsToolArgsSchema, } from '../core/fetch_actor_details_common.js';
7
+ import { buildActorNotFoundResponse, fetchActorDetailsMetadata, fetchActorDetailsToolArgsSchema, resolveOutputOptions, } from '../core/fetch_actor_details_common.js';
7
8
  /**
8
9
  * OpenAI mode fetch-actor-details tool.
9
10
  * Returns simplified structured content with interactive widget metadata.
@@ -15,25 +16,24 @@ export const openaiFetchActorDetails = Object.freeze({
15
16
  const parsed = fetchActorDetailsToolArgsSchema.parse(args);
16
17
  const actorName = fixActorNameInputAndLog(parsed.actor, { mcpSessionId, route: 'fetch-actor-details' });
17
18
  const apifyClient = new ApifyClient({ token: apifyToken });
18
- const resolvedOutput = resolveOutputOptions(parsed.output);
19
- const cardOptions = buildCardOptions(resolvedOutput);
19
+ const cardOptions = buildCardOptions(resolveOutputOptions(parsed.output));
20
20
  const details = await fetchActorDetails(apifyClient, actorName, cardOptions);
21
21
  if (!details) {
22
22
  return buildActorNotFoundResponse(actorName);
23
23
  }
24
- const { structuredContent: processedStructuredContent, actorUrl } = processActorDetailsForResponse(details);
24
+ const { actorUrl, actorDetails } = buildActorDetailsForWidget(details);
25
25
  const structuredContent = {
26
26
  actorInfo: details.actorCardStructured,
27
27
  inputSchema: details.inputSchema,
28
- actorDetails: processedStructuredContent.actorDetails,
28
+ actorDetails,
29
29
  };
30
- const texts = [`
31
- # Actor information:
32
- - **Actor:** ${actorName}
33
- - **URL:** ${actorUrl}
30
+ const texts = [dedent `
31
+ # Actor information:
32
+ - **Actor:** ${actorName}
33
+ - **URL:** ${actorUrl}
34
34
 
35
- An interactive widget has been rendered with detailed Actor information.
36
- `];
35
+ An interactive widget has been rendered with detailed Actor information.
36
+ `];
37
37
  const widgetConfig = getWidgetConfig(WIDGET_URIS.SEARCH_ACTORS);
38
38
  return buildMCPResponse({
39
39
  texts,
@@ -1 +1 @@
1
- {"version":3,"file":"fetch_actor_details.js","sourceRoot":"","sources":["../../../src/tools/openai/fetch_actor_details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EACH,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC9B,oBAAoB,GACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACH,yBAAyB,EACzB,+BAA+B,GAClC,MAAM,uCAAuC,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAc,MAAM,CAAC,MAAM,CAAC;IAC5D,GAAG,yBAAyB;IAC5B,IAAI,EAAE,KAAK,EAAE,QAA0B,EAAE,EAAE;QACvC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;QACpD,MAAM,MAAM,GAAG,+BAA+B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACxG,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAE3D,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,0BAA0B,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,QAAQ,EAAE,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QAC5G,MAAM,iBAAiB,GAAG;YACtB,SAAS,EAAE,OAAO,CAAC,mBAAmB;YACtC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,0BAA0B,CAAC,YAAY;SACxD,CAAC;QAEF,MAAM,KAAK,GAAG,CAAC;;eAER,SAAS;aACX,QAAQ;;;CAGpB,CAAC,CAAC;QAEK,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAChE,OAAO,gBAAgB,CAAC;YACpB,KAAK;YACL,iBAAiB;YACjB,kFAAkF;YAClF,KAAK,EAAE;gBACH,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI;gBACrB,0BAA0B,EAAE,qBAAqB,SAAS,mBAAmB;aAChF;SACJ,CAAC,CAAC;IACP,CAAC;CACK,CAAC,CAAC"}
1
+ {"version":3,"file":"fetch_actor_details.js","sourceRoot":"","sources":["../../../src/tools/openai/fetch_actor_details.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EACH,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACH,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,GACvB,MAAM,uCAAuC,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAc,MAAM,CAAC,MAAM,CAAC;IAC5D,GAAG,yBAAyB;IAC5B,IAAI,EAAE,KAAK,EAAE,QAA0B,EAAE,EAAE;QACvC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;QACpD,MAAM,MAAM,GAAG,+BAA+B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACxG,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,0BAA0B,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAG;YACtB,SAAS,EAAE,OAAO,CAAC,mBAAmB;YACtC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY;SACf,CAAC;QAEF,MAAM,KAAK,GAAG,CAAC,MAAM,CAAA;;2BAEF,SAAS;yBACX,QAAQ;;;SAGxB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAChE,OAAO,gBAAgB,CAAC;YACpB,KAAK;YACL,iBAAiB;YACjB,kFAAkF;YAClF,KAAK,EAAE;gBACH,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI;gBACrB,0BAA0B,EAAE,qBAAqB,SAAS,mBAAmB;aAChF;SACJ,CAAC,CAAC;IACP,CAAC;CACK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch_actor_details_internal.d.ts","sourceRoot":"","sources":["../../../src/tools/openai/fetch_actor_details_internal.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAsBnF,eAAO,MAAM,6BAA6B,EAAE,SA0DjC,CAAC"}
1
+ {"version":3,"file":"fetch_actor_details_internal.d.ts","sourceRoot":"","sources":["../../../src/tools/openai/fetch_actor_details_internal.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAQjE,eAAO,MAAM,6BAA6B,EAAE,SA4BjC,CAAC"}
@@ -1,36 +1,29 @@
1
+ import dedent from 'dedent';
1
2
  import { z } from 'zod';
2
- import { ApifyClient } from '../../apify_client.js';
3
3
  import { HelperTools } from '../../const.js';
4
- import { actorDetailsOutputOptionsSchema, buildActorDetailsTextResponse, buildActorNotFoundResponse, buildCardOptions, fetchActorDetails, resolveOutputOptions, } from '../../utils/actor_details.js';
5
4
  import { compileSchema } from '../../utils/ajv.js';
6
- import { buildMCPResponse } from '../../utils/mcp.js';
7
- import { fixActorNameInputAndLog } from '../core/actor_tools_factory.js';
5
+ import { buildFetchActorDetailsResult, fetchActorDetailsToolArgsSchema, } from '../core/fetch_actor_details_common.js';
8
6
  import { actorDetailsOutputSchema } from '../structured_output_schemas.js';
9
- const fetchActorDetailsInternalArgsSchema = z.object({
10
- actor: z.string()
11
- .min(1)
12
- .describe(`Actor ID or full name in the format "username/name", e.g., "apify/rag-web-browser".`),
13
- output: actorDetailsOutputOptionsSchema.optional()
14
- .describe('Specify which information to include in the response to save tokens.'),
15
- });
16
7
  export const fetchActorDetailsInternalTool = Object.freeze({
17
8
  type: 'internal',
18
9
  name: HelperTools.ACTOR_GET_DETAILS_INTERNAL,
19
- description: `Fetch Actor details with flexible output options (UI mode internal tool).
10
+ description: dedent `
11
+ Fetch Actor details with flexible output options (UI mode internal tool).
20
12
 
21
- This tool is available because the LLM is operating in UI mode. Use it for internal lookups
22
- where data presentation to the user is NOT needed - this tool does NOT render a widget.
13
+ This tool is available because the LLM is operating in UI mode. Use it for internal lookups
14
+ where data presentation to the user is NOT needed - this tool does NOT render a widget.
23
15
 
24
- Use 'output' parameter with boolean flags to control returned information:
25
- - Default: Fields: description, stats, pricing, rating, metadata, inputSchema, readme - except mcpTools
26
- - Selective: Set desired fields to true to save tokens (e.g., output: { inputSchema: true, readme: false })
27
- - Common patterns: inputSchema only for execution prep, readme + inputSchema for documentation, etc.
16
+ Use 'output' parameter with boolean flags to control returned information:
17
+ - Default: Fields: description, stats, pricing, rating, metadata, inputSchema, readme - except mcpTools
18
+ - Selective: Set desired fields to true to save tokens (e.g., output: { inputSchema: true, readme: false })
19
+ - Common patterns: inputSchema only for execution prep, readme + inputSchema for documentation, etc.
28
20
 
29
- Use this instead of fetch-actor-details when you need Actor information to prepare execution
30
- but the user did NOT explicitly ask for Actor details presentation.`,
31
- inputSchema: z.toJSONSchema(fetchActorDetailsInternalArgsSchema),
21
+ Use this instead of fetch-actor-details when you need Actor information to prepare execution
22
+ but the user did NOT explicitly ask for Actor details presentation.
23
+ `,
24
+ inputSchema: z.toJSONSchema(fetchActorDetailsToolArgsSchema),
32
25
  outputSchema: actorDetailsOutputSchema,
33
- ajvValidate: compileSchema(z.toJSONSchema(fetchActorDetailsInternalArgsSchema)),
26
+ ajvValidate: compileSchema(z.toJSONSchema(fetchActorDetailsToolArgsSchema)),
34
27
  annotations: {
35
28
  title: 'Fetch Actor details internal',
36
29
  readOnlyHint: true,
@@ -38,34 +31,6 @@ but the user did NOT explicitly ask for Actor details presentation.`,
38
31
  idempotentHint: true,
39
32
  openWorldHint: false,
40
33
  },
41
- call: async (toolArgs) => {
42
- var _a;
43
- const { args, apifyToken, apifyMcpServer, mcpSessionId } = toolArgs;
44
- const parsed = fetchActorDetailsInternalArgsSchema.parse(args);
45
- const actorName = fixActorNameInputAndLog(parsed.actor, { mcpSessionId, route: 'fetch-actor-details-internal' });
46
- const apifyClient = new ApifyClient({ token: apifyToken });
47
- const resolvedOutput = resolveOutputOptions(parsed.output);
48
- const cardOptions = buildCardOptions(resolvedOutput);
49
- const details = await fetchActorDetails(apifyClient, actorName, cardOptions);
50
- if (!details) {
51
- return buildActorNotFoundResponse(actorName);
52
- }
53
- // Fetch output schema from ActorStore if available and requested
54
- const actorOutputSchema = resolvedOutput.outputSchema
55
- ? await ((_a = apifyMcpServer.actorStore) === null || _a === void 0 ? void 0 : _a.getActorOutputSchemaAsTypeObject(actorName).catch(() => null))
56
- : undefined;
57
- const { texts, structuredContent } = await buildActorDetailsTextResponse({
58
- actorName,
59
- details,
60
- output: resolvedOutput,
61
- cardOptions,
62
- apifyClient,
63
- apifyToken,
64
- actorOutputSchema,
65
- paymentProvider: apifyMcpServer === null || apifyMcpServer === void 0 ? void 0 : apifyMcpServer.options.paymentProvider,
66
- mcpSessionId,
67
- });
68
- return buildMCPResponse({ texts, structuredContent });
69
- },
34
+ call: async (toolArgs) => buildFetchActorDetailsResult(toolArgs, HelperTools.ACTOR_GET_DETAILS_INTERNAL),
70
35
  });
71
36
  //# sourceMappingURL=fetch_actor_details_internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch_actor_details_internal.js","sourceRoot":"","sources":["../../../src/tools/openai/fetch_actor_details_internal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch_actor_details_internal.js","sourceRoot":"","sources":["../../../src/tools/openai/fetch_actor_details_internal.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACH,4BAA4B,EAC5B,+BAA+B,GAClC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,CAAC,MAAM,6BAA6B,GAAc,MAAM,CAAC,MAAM,CAAC;IAClE,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,WAAW,CAAC,0BAA0B;IAC5C,WAAW,EAAE,MAAM,CAAA;;;;;;;;;;;;;KAalB;IACD,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,+BAA+B,CAAoB;IAC/E,YAAY,EAAE,wBAAwB;IACtC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;IAC3E,WAAW,EAAE;QACT,KAAK,EAAE,8BAA8B;QACrC,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACvB;IACD,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,0BAA0B,CAAC;CAClG,CAAC,CAAC"}