@apify/actors-mcp-server 0.5.9 → 0.6.0
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 +2 -2
- package/dist/actor/types.d.ts +2 -2
- package/dist/actor/types.d.ts.map +1 -1
- package/dist/apify-client.d.ts +2 -2
- package/dist/apify-client.d.ts.map +1 -1
- package/dist/const.d.ts +13 -3
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +55 -1
- package/dist/const.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +33 -15
- package/dist/mcp/server.js.map +1 -1
- package/dist/stdio.js.map +1 -1
- package/dist/telemetry.d.ts +1 -2
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js.map +1 -1
- package/dist/tools/actor.d.ts.map +1 -1
- package/dist/tools/actor.js +47 -19
- package/dist/tools/actor.js.map +1 -1
- package/dist/tools/build.d.ts +2 -6
- package/dist/tools/build.d.ts.map +1 -1
- package/dist/tools/build.js +1 -59
- package/dist/tools/build.js.map +1 -1
- package/dist/tools/dataset.d.ts.map +1 -1
- package/dist/tools/dataset.js +23 -5
- package/dist/tools/dataset.js.map +1 -1
- package/dist/tools/fetch-actor-details.d.ts.map +1 -1
- package/dist/tools/fetch-actor-details.js +15 -6
- package/dist/tools/fetch-actor-details.js.map +1 -1
- package/dist/tools/fetch-apify-docs.d.ts.map +1 -1
- package/dist/tools/fetch-apify-docs.js +23 -8
- package/dist/tools/fetch-apify-docs.js.map +1 -1
- package/dist/tools/get-actor-output.d.ts.map +1 -1
- package/dist/tools/get-actor-output.js +7 -2
- package/dist/tools/get-actor-output.js.map +1 -1
- package/dist/tools/get-html-skeleton.d.ts.map +1 -1
- package/dist/tools/get-html-skeleton.js +19 -6
- package/dist/tools/get-html-skeleton.js.map +1 -1
- package/dist/tools/run.d.ts.map +1 -1
- package/dist/tools/run.js +8 -3
- package/dist/tools/run.js.map +1 -1
- package/dist/tools/run_collection.d.ts.map +1 -1
- package/dist/tools/run_collection.js +4 -1
- package/dist/tools/run_collection.js.map +1 -1
- package/dist/tools/search-apify-docs.d.ts.map +1 -1
- package/dist/tools/search-apify-docs.js +14 -4
- package/dist/tools/search-apify-docs.js.map +1 -1
- package/dist/tools/store_collection.d.ts.map +1 -1
- package/dist/tools/store_collection.js +24 -12
- package/dist/tools/store_collection.js.map +1 -1
- package/dist/tools/structured-output-schemas.d.ts +675 -0
- package/dist/tools/structured-output-schemas.d.ts.map +1 -0
- package/dist/tools/structured-output-schemas.js +169 -0
- package/dist/tools/structured-output-schemas.js.map +1 -0
- package/dist/tools/utils.d.ts +23 -23
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +7 -7
- package/dist/tools/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +68 -35
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/actor-card.d.ts +7 -1
- package/dist/utils/actor-card.d.ts.map +1 -1
- package/dist/utils/actor-card.js +69 -1
- package/dist/utils/actor-card.js.map +1 -1
- package/dist/utils/actor-details.d.ts +5 -4
- package/dist/utils/actor-details.d.ts.map +1 -1
- package/dist/utils/actor-details.js +3 -1
- package/dist/utils/actor-details.js.map +1 -1
- package/dist/utils/apify-properties.d.ts +7 -7
- package/dist/utils/apify-properties.d.ts.map +1 -1
- package/dist/utils/apify-properties.js.map +1 -1
- package/dist/utils/mcp-clients.d.ts +1 -1
- package/dist/utils/mcp-clients.d.ts.map +1 -1
- package/dist/utils/mcp.d.ts +18 -4
- package/dist/utils/mcp.d.ts.map +1 -1
- package/dist/utils/mcp.js +20 -4
- package/dist/utils/mcp.js.map +1 -1
- package/dist/utils/pricing-info.d.ts +29 -0
- package/dist/utils/pricing-info.d.ts.map +1 -1
- package/dist/utils/pricing-info.js +50 -0
- package/dist/utils/pricing-info.js.map +1 -1
- package/dist/utils/schema-generation.d.ts +6 -6
- package/dist/utils/schema-generation.d.ts.map +1 -1
- package/dist/utils/schema-generation.js +2 -4
- package/dist/utils/schema-generation.js.map +1 -1
- package/dist/utils/tool-status.d.ts +10 -0
- package/dist/utils/tool-status.d.ts.map +1 -0
- package/dist/utils/tool-status.js +27 -0
- package/dist/utils/tool-status.js.map +1 -0
- package/dist/utils/tools.d.ts +11 -0
- package/dist/utils/tools.d.ts.map +1 -1
- package/dist/utils/tools.js +3 -0
- package/dist/utils/tools.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +3 -5
- package/server.json +1 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import zodToJsonSchema from 'zod-to-json-schema';
|
|
3
3
|
import { ApifyClient } from '../apify-client.js';
|
|
4
|
-
import { HelperTools, SKYFIRE_TOOL_INSTRUCTIONS, TOOL_MAX_OUTPUT_CHARS } from '../const.js';
|
|
4
|
+
import { HelperTools, SKYFIRE_TOOL_INSTRUCTIONS, TOOL_MAX_OUTPUT_CHARS, TOOL_STATUS } from '../const.js';
|
|
5
5
|
import { ajv } from '../utils/ajv.js';
|
|
6
6
|
import { getValuesByDotKeys, parseCommaSeparatedList } from '../utils/generic.js';
|
|
7
|
+
import { buildMCPResponse } from '../utils/mcp.js';
|
|
7
8
|
/**
|
|
8
9
|
* Zod schema for get-actor-output tool arguments
|
|
9
10
|
*/
|
|
@@ -121,7 +122,11 @@ Note: This tool is automatically included if the Apify MCP Server is configured
|
|
|
121
122
|
clean: true,
|
|
122
123
|
});
|
|
123
124
|
if (!response) {
|
|
124
|
-
return {
|
|
125
|
+
return buildMCPResponse({
|
|
126
|
+
texts: [`Dataset '${parsed.datasetId}' not found.`],
|
|
127
|
+
isError: true,
|
|
128
|
+
toolStatus: TOOL_STATUS.SOFT_FAIL,
|
|
129
|
+
});
|
|
125
130
|
}
|
|
126
131
|
let { items } = response;
|
|
127
132
|
// Apply field selection if specified
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-actor-output.js","sourceRoot":"","sources":["../../src/tools/get-actor-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"get-actor-output.js","sourceRoot":"","sources":["../../src/tools/get-actor-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-html-skeleton.d.ts","sourceRoot":"","sources":["../../src/tools/get-html-skeleton.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,aAAa,CAAC;AAgChF,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"get-html-skeleton.d.ts","sourceRoot":"","sources":["../../src/tools/get-html-skeleton.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,aAAa,CAAC;AAgChF,eAAO,MAAM,eAAe,EAAE,SAuFpB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import zodToJsonSchema from 'zod-to-json-schema';
|
|
3
3
|
import { ApifyClient } from '../apify-client.js';
|
|
4
|
-
import { HelperTools, RAG_WEB_BROWSER, TOOL_MAX_OUTPUT_CHARS } from '../const.js';
|
|
4
|
+
import { HelperTools, RAG_WEB_BROWSER, TOOL_MAX_OUTPUT_CHARS, TOOL_STATUS } from '../const.js';
|
|
5
5
|
import { getHtmlSkeletonCache } from '../state.js';
|
|
6
6
|
import { ajv } from '../utils/ajv.js';
|
|
7
7
|
import { isValidHttpUrl } from '../utils/generic.js';
|
|
@@ -45,7 +45,11 @@ USAGE EXAMPLES:
|
|
|
45
45
|
const { args, apifyToken } = toolArgs;
|
|
46
46
|
const parsed = getHtmlSkeletonArgs.parse(args);
|
|
47
47
|
if (!isValidHttpUrl(parsed.url)) {
|
|
48
|
-
return buildMCPResponse(
|
|
48
|
+
return buildMCPResponse({
|
|
49
|
+
texts: [`The provided URL is not a valid HTTP or HTTPS URL: ${parsed.url}`],
|
|
50
|
+
isError: true,
|
|
51
|
+
toolStatus: TOOL_STATUS.SOFT_FAIL,
|
|
52
|
+
});
|
|
49
53
|
}
|
|
50
54
|
// Try to get from cache first
|
|
51
55
|
let strippedHtml = getHtmlSkeletonCache.get(parsed.url);
|
|
@@ -61,14 +65,23 @@ USAGE EXAMPLES:
|
|
|
61
65
|
});
|
|
62
66
|
const datasetItems = await client.dataset(run.defaultDatasetId).listItems();
|
|
63
67
|
if (datasetItems.items.length === 0) {
|
|
64
|
-
return buildMCPResponse(
|
|
68
|
+
return buildMCPResponse({
|
|
69
|
+
texts: [`The scraping Actor (${RAG_WEB_BROWSER}) did not return any output for the URL: ${parsed.url}. Please check the Actor run for more details: ${run.id}`],
|
|
70
|
+
isError: true,
|
|
71
|
+
});
|
|
65
72
|
}
|
|
66
73
|
const firstItem = datasetItems.items[0];
|
|
67
74
|
if (firstItem.crawl.httpStatusMessage.toLocaleLowerCase() !== 'ok') {
|
|
68
|
-
return buildMCPResponse(
|
|
75
|
+
return buildMCPResponse({
|
|
76
|
+
texts: [`The scraping Actor (${RAG_WEB_BROWSER}) returned an HTTP status ${firstItem.crawl.httpStatusCode} (${firstItem.crawl.httpStatusMessage}) for the URL: ${parsed.url}. Please check the Actor run for more details: ${run.id}`],
|
|
77
|
+
isError: true,
|
|
78
|
+
});
|
|
69
79
|
}
|
|
70
80
|
if (!firstItem.html) {
|
|
71
|
-
return buildMCPResponse(
|
|
81
|
+
return buildMCPResponse({
|
|
82
|
+
texts: [`The scraping Actor (${RAG_WEB_BROWSER}) did not return any HTML content for the URL: ${parsed.url}. Please check the Actor run for more details: ${run.id}`],
|
|
83
|
+
isError: true,
|
|
84
|
+
});
|
|
72
85
|
}
|
|
73
86
|
strippedHtml = stripHtml(firstItem.html);
|
|
74
87
|
getHtmlSkeletonCache.set(parsed.url, strippedHtml);
|
|
@@ -82,7 +95,7 @@ USAGE EXAMPLES:
|
|
|
82
95
|
const chunkContent = strippedHtml.slice(startIndex, endIndex);
|
|
83
96
|
const hasNextChunk = parsed.chunk < totalChunks;
|
|
84
97
|
const chunkInfo = `\n\n--- Chunk ${parsed.chunk} of ${totalChunks} ---\n${hasNextChunk ? `Next chunk: ${parsed.chunk + 1}` : 'End of content'}`;
|
|
85
|
-
return buildMCPResponse([chunkContent + chunkInfo]);
|
|
98
|
+
return buildMCPResponse({ texts: [chunkContent + chunkInfo] });
|
|
86
99
|
},
|
|
87
100
|
};
|
|
88
101
|
//# sourceMappingURL=get-html-skeleton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-html-skeleton.js","sourceRoot":"","sources":["../../src/tools/get-html-skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"get-html-skeleton.js","sourceRoot":"","sources":["../../src/tools/get-html-skeleton.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,aAAa,CAAC;AAiBhF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,SAgChB,CAAC;AAUX;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SA6BnB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,SA0BlB,CAAC"}
|
package/dist/tools/run.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import zodToJsonSchema from 'zod-to-json-schema';
|
|
3
3
|
import { ApifyClient } from '../apify-client.js';
|
|
4
|
-
import { HelperTools } from '../const.js';
|
|
4
|
+
import { HelperTools, TOOL_STATUS } from '../const.js';
|
|
5
5
|
import { ajv } from '../utils/ajv.js';
|
|
6
|
+
import { buildMCPResponse } from '../utils/mcp.js';
|
|
6
7
|
const getActorRunArgs = z.object({
|
|
7
8
|
runId: z.string()
|
|
8
9
|
.min(1)
|
|
@@ -42,9 +43,12 @@ USAGE EXAMPLES:
|
|
|
42
43
|
const client = new ApifyClient({ token: apifyToken });
|
|
43
44
|
const v = await client.run(parsed.runId).get();
|
|
44
45
|
if (!v) {
|
|
45
|
-
return {
|
|
46
|
+
return buildMCPResponse({ texts: [`Run with ID '${parsed.runId}' not found.`],
|
|
47
|
+
isError: true,
|
|
48
|
+
toolStatus: TOOL_STATUS.SOFT_FAIL });
|
|
46
49
|
}
|
|
47
|
-
|
|
50
|
+
const texts = [`\`\`\`json\n${JSON.stringify(v, null, 2)}\n\`\`\``];
|
|
51
|
+
return buildMCPResponse({ texts });
|
|
48
52
|
},
|
|
49
53
|
};
|
|
50
54
|
const GetRunLogArgs = z.object({
|
|
@@ -71,6 +75,7 @@ USAGE EXAMPLES:
|
|
|
71
75
|
- user_input: Show last 20 lines of logs for run y2h7sK3Wc
|
|
72
76
|
- user_input: Get logs for run y2h7sK3Wc`,
|
|
73
77
|
inputSchema: zodToJsonSchema(GetRunLogArgs),
|
|
78
|
+
// It does not make sense to add structured output here since the log API just returns plain text
|
|
74
79
|
ajvValidate: ajv.compile(zodToJsonSchema(GetRunLogArgs)),
|
|
75
80
|
annotations: {
|
|
76
81
|
title: 'Get Actor run log',
|
package/dist/tools/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run_collection.d.ts","sourceRoot":"","sources":["../../src/tools/run_collection.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run_collection.d.ts","sourceRoot":"","sources":["../../src/tools/run_collection.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,aAAa,CAAC;AAoBhF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SA6BpB,CAAC"}
|
|
@@ -3,6 +3,7 @@ import zodToJsonSchema from 'zod-to-json-schema';
|
|
|
3
3
|
import { ApifyClient } from '../apify-client.js';
|
|
4
4
|
import { HelperTools } from '../const.js';
|
|
5
5
|
import { ajv } from '../utils/ajv.js';
|
|
6
|
+
import { buildMCPResponse } from '../utils/mcp.js';
|
|
6
7
|
const getUserRunsListArgs = z.object({
|
|
7
8
|
offset: z.number()
|
|
8
9
|
.describe('Number of array elements that should be skipped at the start. The default value is 0.')
|
|
@@ -46,7 +47,9 @@ USAGE EXAMPLES:
|
|
|
46
47
|
const parsed = getUserRunsListArgs.parse(args);
|
|
47
48
|
const client = new ApifyClient({ token: apifyToken });
|
|
48
49
|
const runs = await client.runs().list({ limit: parsed.limit, offset: parsed.offset, desc: parsed.desc, status: parsed.status });
|
|
49
|
-
return {
|
|
50
|
+
return buildMCPResponse({
|
|
51
|
+
texts: [`\`\`\`json\n${JSON.stringify(runs)}\n\`\`\``],
|
|
52
|
+
});
|
|
50
53
|
},
|
|
51
54
|
};
|
|
52
55
|
//# sourceMappingURL=run_collection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run_collection.js","sourceRoot":"","sources":["../../src/tools/run_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"run_collection.js","sourceRoot":"","sources":["../../src/tools/run_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SACb,QAAQ,CAAC,uFAAuF,CAAC;SACjG,OAAO,CAAC,CAAC,CAAC;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SACZ,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CAAC,+FAA+F,CAAC;SACzG,OAAO,CAAC,EAAE,CAAC;IAChB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;SACZ,QAAQ,CAAC,uHAAuH,CAAC;SACjI,OAAO,CAAC,KAAK,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;SACxG,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC;CAC9D,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAc;IACtC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,WAAW,CAAC,kBAAkB;IACpC,WAAW,EAAE;;;;;;;;;uCASsB;IACnC,WAAW,EAAE,eAAe,CAAC,mBAAmB,CAAoB;IACpE,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC9D,WAAW,EAAE;QACT,KAAK,EAAE,oBAAoB;QAC3B,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,KAAK;KACvB;IACD,IAAI,EAAE,KAAK,EAAE,QAA0B,EAAE,EAAE;QACvC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;QACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAChI,OAAO,gBAAgB,CAAC;YACpB,KAAK,EAAE,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;SACzD,CAAC,CAAC;IACP,CAAC;CACK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-apify-docs.d.ts","sourceRoot":"","sources":["../../src/tools/search-apify-docs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"search-apify-docs.d.ts","sourceRoot":"","sources":["../../src/tools/search-apify-docs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,aAAa,CAAC;AA0BhF,eAAO,MAAM,mBAAmB,EAAE,SA6DxB,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { HelperTools } from '../const.js';
|
|
|
4
4
|
import { ajv } from '../utils/ajv.js';
|
|
5
5
|
import { searchApifyDocsCached } from '../utils/apify-docs.js';
|
|
6
6
|
import { buildMCPResponse } from '../utils/mcp.js';
|
|
7
|
+
import { searchApifyDocsToolOutputSchema } from './structured-output-schemas.js';
|
|
7
8
|
const searchApifyDocsToolArgsSchema = z.object({
|
|
8
9
|
query: z.string()
|
|
9
10
|
.min(1)
|
|
@@ -44,6 +45,7 @@ USAGE EXAMPLES:
|
|
|
44
45
|
- query: How to define Actor input schema?
|
|
45
46
|
- query: How scrape with Crawlee?`,
|
|
46
47
|
inputSchema: zodToJsonSchema(searchApifyDocsToolArgsSchema),
|
|
48
|
+
outputSchema: searchApifyDocsToolOutputSchema,
|
|
47
49
|
ajvValidate: ajv.compile(zodToJsonSchema(searchApifyDocsToolArgsSchema)),
|
|
48
50
|
annotations: {
|
|
49
51
|
title: 'Search Apify docs',
|
|
@@ -57,16 +59,24 @@ USAGE EXAMPLES:
|
|
|
57
59
|
const resultsRaw = await searchApifyDocsCached(query);
|
|
58
60
|
const results = resultsRaw.slice(parsed.offset, parsed.offset + parsed.limit);
|
|
59
61
|
if (results.length === 0) {
|
|
60
|
-
return buildMCPResponse([`No results found for the query "${query}" with limit ${parsed.limit} and offset ${parsed.offset}.
|
|
62
|
+
return buildMCPResponse({ texts: [`No results found for the query "${query}" with limit ${parsed.limit} and offset ${parsed.offset}.
|
|
61
63
|
Please try a different query with different keywords, or adjust the limit and offset parameters.
|
|
62
|
-
You can also try using more specific or alternative keywords related to your search topic.`]);
|
|
64
|
+
You can also try using more specific or alternative keywords related to your search topic.`] });
|
|
63
65
|
}
|
|
64
66
|
const textContent = `You can use the Apify docs fetch tool to retrieve the full content of a document by its URL. The document fragment refers to the section of the content containing the relevant part for the search result item.
|
|
65
67
|
Search results for "${query}":
|
|
66
68
|
|
|
67
69
|
${results.map((result) => `- Document URL: ${result.url}${result.fragment ? `\n Document fragment: ${result.fragment}` : ''}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
Content: ${result.content}`).join('\n\n')}`;
|
|
71
|
+
const structuredContent = {
|
|
72
|
+
results: results.map((result) => ({
|
|
73
|
+
url: result.url,
|
|
74
|
+
fragment: result.fragment,
|
|
75
|
+
content: result.content,
|
|
76
|
+
})),
|
|
77
|
+
instructions: `You can use the Apify docs fetch tool to retrieve the full content of a document by its URL. The document fragment refers to the section of the content containing the relevant part for the search result item.`,
|
|
78
|
+
};
|
|
79
|
+
return buildMCPResponse({ texts: [textContent], structuredContent });
|
|
70
80
|
},
|
|
71
81
|
};
|
|
72
82
|
//# sourceMappingURL=search-apify-docs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-apify-docs.js","sourceRoot":"","sources":["../../src/tools/search-apify-docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"search-apify-docs.js","sourceRoot":"","sources":["../../src/tools/search-apify-docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEjF,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SACZ,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACL;;2GAE+F,CAClG;IACL,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SACZ,QAAQ,EAAE;SACV,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC;uIACqH,CAAC;IACpI,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SACb,QAAQ,EAAE;SACV,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC;yIACuH,CAAC;CACzI,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAc;IAC1C,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,WAAW,CAAC,WAAW;IAC7B,WAAW,EAAE;;;;;;;;;;mDAUkC,WAAW,CAAC,UAAU;;;;;;;;kCAQvC;IAC9B,WAAW,EAAE,eAAe,CAAC,6BAA6B,CAAoB;IAC9E,YAAY,EAAE,+BAA+B;IAC7C,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,6BAA6B,CAAC,CAAC;IACxE,WAAW,EAAE;QACT,KAAK,EAAE,mBAAmB;QAC1B,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,KAAK;KACvB;IACD,IAAI,EAAE,KAAK,EAAE,QAA0B,EAAE,EAAE;QACvC,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAE1B,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAElC,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAE9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,mCAAmC,KAAK,gBAAgB,MAAM,CAAC,KAAK,eAAe,MAAM,CAAC,MAAM;;2FAEnD,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,WAAW,GAAG;sBACN,KAAK;;EAEzB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;cAC9G,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAEvC,MAAM,iBAAiB,GAAG;YACtB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9B,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;aAC1B,CAAC,CAAC;YACH,YAAY,EAAE,kNAAkN;SACnO,CAAC;QACF,OAAO,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACzE,CAAC;CACK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store_collection.d.ts","sourceRoot":"","sources":["../../src/tools/store_collection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAqB,sBAAsB,EAAoB,SAAS,EAAmB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"store_collection.d.ts","sourceRoot":"","sources":["../../src/tools/store_collection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAqB,sBAAsB,EAAoB,SAAS,EAAmB,MAAM,aAAa,CAAC;AAM3H,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAM,GAAG,SAAqB,EACrC,MAAM,GAAE,MAAM,GAAG,SAAqB,EACtC,kBAAkB,GAAE,OAAO,GAAG,SAAqB,GACpD,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAOnC;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;EAiCjC,CAAC;AAwBH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,SA6FjB,CAAC"}
|
|
@@ -2,9 +2,10 @@ import { z } from 'zod';
|
|
|
2
2
|
import zodToJsonSchema from 'zod-to-json-schema';
|
|
3
3
|
import { ApifyClient } from '../apify-client.js';
|
|
4
4
|
import { ACTOR_SEARCH_ABOVE_LIMIT, HelperTools } from '../const.js';
|
|
5
|
-
import { formatActorToActorCard } from '../utils/actor-card.js';
|
|
5
|
+
import { formatActorToActorCard, formatActorToStructuredCard } from '../utils/actor-card.js';
|
|
6
6
|
import { ajv } from '../utils/ajv.js';
|
|
7
7
|
import { buildMCPResponse } from '../utils/mcp.js';
|
|
8
|
+
import { actorSearchOutputSchema } from './structured-output-schemas.js';
|
|
8
9
|
export async function searchActorsByKeywords(search, apifyToken, limit = undefined, offset = undefined, allowsAgenticUsers = undefined) {
|
|
9
10
|
const client = new ApifyClient({ token: apifyToken });
|
|
10
11
|
const storeClient = client.store();
|
|
@@ -107,6 +108,7 @@ Returns list of Actor cards with the following info:
|
|
|
107
108
|
- **Rating:** Out of 5 (if available)
|
|
108
109
|
`,
|
|
109
110
|
inputSchema: zodToJsonSchema(searchActorsArgsSchema),
|
|
111
|
+
outputSchema: actorSearchOutputSchema,
|
|
110
112
|
ajvValidate: ajv.compile(zodToJsonSchema(searchActorsArgsSchema)),
|
|
111
113
|
annotations: {
|
|
112
114
|
title: 'Search Actors',
|
|
@@ -120,22 +122,32 @@ Returns list of Actor cards with the following info:
|
|
|
120
122
|
actors = filterRentalActors(actors || [], userRentedActorIds || []).slice(0, parsed.limit);
|
|
121
123
|
const actorCards = actors.length === 0 ? [] : actors.map(formatActorToActorCard);
|
|
122
124
|
if (actorCards.length === 0) {
|
|
123
|
-
return buildMCPResponse([`No Actors were found for the search query "${parsed.keywords}".
|
|
124
|
-
Please try different keywords or simplify your query. Consider using more specific platform names (e.g., "Instagram", "Twitter") and data types (e.g., "posts", "products") rather than generic terms like "scraper" or "crawler".`]);
|
|
125
|
+
return buildMCPResponse({ texts: [`No Actors were found for the search query "${parsed.keywords}".
|
|
126
|
+
Please try different keywords or simplify your query. Consider using more specific platform names (e.g., "Instagram", "Twitter") and data types (e.g., "posts", "products") rather than generic terms like "scraper" or "crawler".`] });
|
|
125
127
|
}
|
|
126
128
|
const actorsText = actorCards.join('\n\n');
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
// Generate structured cards for the actors
|
|
130
|
+
const structuredActorCards = actors.map(formatActorToStructuredCard);
|
|
131
|
+
const texts = [`
|
|
132
|
+
# Search results:
|
|
133
|
+
- **Search query:** ${parsed.keywords}
|
|
134
|
+
- **Number of Actors found:** ${actorCards.length}
|
|
131
135
|
|
|
132
|
-
# Actors:
|
|
136
|
+
# Actors:
|
|
133
137
|
|
|
134
|
-
${actorsText}
|
|
138
|
+
${actorsText}
|
|
135
139
|
|
|
136
|
-
If you need more detailed information about any of these Actors, including their input schemas and usage instructions, please use the ${HelperTools.ACTOR_GET_DETAILS} tool with the specific Actor name.
|
|
137
|
-
If the search did not return relevant results, consider refining your keywords, use broader terms or removing less important words from the keywords.
|
|
138
|
-
`]
|
|
140
|
+
If you need more detailed information about any of these Actors, including their input schemas and usage instructions, please use the ${HelperTools.ACTOR_GET_DETAILS} tool with the specific Actor name.
|
|
141
|
+
If the search did not return relevant results, consider refining your keywords, use broader terms or removing less important words from the keywords.
|
|
142
|
+
`];
|
|
143
|
+
const structuredContent = {
|
|
144
|
+
actors: structuredActorCards,
|
|
145
|
+
query: parsed.keywords,
|
|
146
|
+
count: actorCards.length,
|
|
147
|
+
instructions: `If you need more detailed information about any of these Actors, including their input schemas and usage instructions, please use the ${HelperTools.ACTOR_GET_DETAILS} tool with the specific Actor name.
|
|
148
|
+
If the search did not return relevant results, consider refining your keywords, use broader terms or removing less important words from the keywords.`,
|
|
149
|
+
};
|
|
150
|
+
return buildMCPResponse({ texts, structuredContent });
|
|
139
151
|
},
|
|
140
152
|
};
|
|
141
153
|
//# sourceMappingURL=store_collection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store_collection.js","sourceRoot":"","sources":["../../src/tools/store_collection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"store_collection.js","sourceRoot":"","sources":["../../src/tools/store_collection.ts"],"names":[],"mappings":"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"}
|