@apify/actors-mcp-server 0.10.7-beta.0 → 0.10.7-beta.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 -1
- package/dist/stdio.js +0 -0
- package/dist/tools/core/search_actors_common.d.ts +2 -11
- package/dist/tools/core/search_actors_common.d.ts.map +1 -1
- package/dist/tools/core/search_actors_common.js +30 -30
- package/dist/tools/core/search_actors_common.js.map +1 -1
- package/dist/tools/default/search_actors.js +2 -2
- package/dist/tools/default/search_actors.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/dist/actor-detail-widget.js +1973 -1371
- package/dist/web/dist/actor-run-widget.js +1854 -1252
- package/dist/web/dist/search-actors-widget.js +1856 -1254
- package/package.json +23 -18
package/README.md
CHANGED
package/dist/stdio.js
CHANGED
|
File without changes
|
|
@@ -3,23 +3,14 @@ import type { ActorStoreList, HelperTool, StructuredActorCard } from '../../type
|
|
|
3
3
|
import { buildMCPResponse } from '../../utils/mcp.js';
|
|
4
4
|
import type { PricingTier } from '../../utils/pricing_info.js';
|
|
5
5
|
/**
|
|
6
|
-
* Shared
|
|
7
|
-
*
|
|
6
|
+
* Shared schema for search-actors arguments. Used by both the default and
|
|
7
|
+
* widget variants — the widget variant calls `.strict()` on it.
|
|
8
8
|
*/
|
|
9
9
|
export declare const searchActorsBaseArgsSchema: z.ZodObject<{
|
|
10
10
|
keywords: z.ZodDefault<z.ZodString>;
|
|
11
11
|
limit: z.ZodDefault<z.ZodNumber>;
|
|
12
12
|
offset: z.ZodDefault<z.ZodNumber>;
|
|
13
13
|
}, z.core.$strip>;
|
|
14
|
-
/**
|
|
15
|
-
* Zod schema for the base search-actors tool arguments. Not used by the widget
|
|
16
|
-
* variant (which reuses the shorter-description base schema via `.strict()`).
|
|
17
|
-
*/
|
|
18
|
-
export declare const searchActorsArgsSchema: z.ZodObject<{
|
|
19
|
-
limit: z.ZodDefault<z.ZodNumber>;
|
|
20
|
-
offset: z.ZodDefault<z.ZodNumber>;
|
|
21
|
-
keywords: z.ZodDefault<z.ZodString>;
|
|
22
|
-
}, z.core.$strip>;
|
|
23
14
|
/**
|
|
24
15
|
* Tool metadata for the base search-actors tool — mode-independent, no widget `_meta`.
|
|
25
16
|
* Used by `defaultSearchActors` in both default and apps modes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search_actors_common.d.ts","sourceRoot":"","sources":["../../../src/tools/core/search_actors_common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAmB,MAAM,gBAAgB,CAAC;AAGvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;
|
|
1
|
+
{"version":3,"file":"search_actors_common.d.ts","sourceRoot":"","sources":["../../../src/tools/core/search_actors_common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAmB,MAAM,gBAAgB,CAAC;AAGvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;iBAwCrC,CAAC;AAyCH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAczD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;CAC9C,CAAC;AAEF,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,cAAc,EAAE,EACxB,QAAQ,EAAE,WAAW,GACtB,kBAAkB,CAMpB;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAQjG"}
|
|
@@ -6,49 +6,49 @@ import { compileSchema } from '../../utils/ajv.js';
|
|
|
6
6
|
import { buildMCPResponse } from '../../utils/mcp.js';
|
|
7
7
|
import { actorSearchOutputSchema } from '../structured_output_schemas.js';
|
|
8
8
|
/**
|
|
9
|
-
* Shared
|
|
10
|
-
*
|
|
9
|
+
* Shared schema for search-actors arguments. Used by both the default and
|
|
10
|
+
* widget variants — the widget variant calls `.strict()` on it.
|
|
11
11
|
*/
|
|
12
12
|
export const searchActorsBaseArgsSchema = z.object({
|
|
13
|
-
keywords: z.string()
|
|
14
|
-
.default('')
|
|
15
|
-
.describe('Keywords used to search for Actors in the Apify Store.'),
|
|
16
|
-
limit: z.number()
|
|
17
|
-
.int()
|
|
18
|
-
.min(1)
|
|
19
|
-
.max(MAX_LIMIT_WITH_INPUT_SCHEMA)
|
|
20
|
-
.default(5)
|
|
21
|
-
.describe(`The maximum number of Actors to return (max = ${MAX_LIMIT_WITH_INPUT_SCHEMA}, default = 5).`),
|
|
22
|
-
offset: z.number()
|
|
23
|
-
.int()
|
|
24
|
-
.min(0)
|
|
25
|
-
.default(0)
|
|
26
|
-
.describe('The number of elements to skip from the start (default = 0)'),
|
|
27
|
-
});
|
|
28
|
-
/**
|
|
29
|
-
* Zod schema for the base search-actors tool arguments. Not used by the widget
|
|
30
|
-
* variant (which reuses the shorter-description base schema via `.strict()`).
|
|
31
|
-
*/
|
|
32
|
-
export const searchActorsArgsSchema = searchActorsBaseArgsSchema.extend({
|
|
33
13
|
keywords: z.string()
|
|
34
14
|
.default('')
|
|
35
15
|
.describe(dedent `
|
|
36
16
|
Space-separated keywords used to search pre-built solutions (Actors) in the Apify Store.
|
|
37
|
-
The search engine searches across Actor's name, description, username, and
|
|
17
|
+
The search engine searches across the Actor's name, description, username, and README content.
|
|
38
18
|
|
|
39
|
-
|
|
19
|
+
Pass empty string ("") whenever the user has NOT named a specific platform
|
|
20
|
+
(Instagram, Amazon, Google Maps) or a specific data type (posts, products,
|
|
21
|
+
weather, news). Empty keywords return Actors in the Apify Store's default
|
|
22
|
+
sort order, which is popularity in practice (most-used Actors first). Do NOT
|
|
23
|
+
use ranking words ("top", "best", "popular") or bare task words ("scraper",
|
|
24
|
+
"crawler", "extractor") as keyword values — they are not Actor names and
|
|
25
|
+
produce noisy matches against README content.
|
|
26
|
+
|
|
27
|
+
Otherwise, follow these rules:
|
|
40
28
|
- Use 1-3 simple keyword terms maximum (e.g., "Instagram posts", "Twitter", "Amazon products")
|
|
41
29
|
- Actors are named using platform or service name together with the type of data or task they perform
|
|
42
30
|
- The most effective keywords are specific platform names (Instagram, Twitter, TikTok) and specific data types (posts, products, profiles, weather, news, reviews, comments)
|
|
43
|
-
- Avoid generic terms like "crawler", "data extraction" as these are less effective
|
|
44
31
|
- If a user asks about "fetching Instagram posts", use "Instagram posts" as keywords
|
|
45
32
|
- The goal is to find Actors that specifically handle the platform and data type the user mentioned
|
|
46
33
|
|
|
47
34
|
Examples:
|
|
48
|
-
✅
|
|
49
|
-
|
|
50
|
-
❌
|
|
35
|
+
✅ "Instagram posts", "Twitter", "Amazon products", "weather", "news articles"
|
|
36
|
+
✅ "" (empty) — returns the most popular Actors store-wide
|
|
37
|
+
❌ "Instagram posts profiles comments hashtags reels stories followers..." (too long)
|
|
38
|
+
❌ "top popular actors", "best scrapers", "trending" — ranking words aren't Actor keywords; pass "" instead
|
|
39
|
+
❌ "scraper", "extractor", "web crawler" — bare task words aren't Actor keywords; pass "" instead
|
|
51
40
|
`),
|
|
41
|
+
limit: z.number()
|
|
42
|
+
.int()
|
|
43
|
+
.min(1)
|
|
44
|
+
.max(MAX_LIMIT_WITH_INPUT_SCHEMA)
|
|
45
|
+
.default(5)
|
|
46
|
+
.describe(`The maximum number of Actors to return (max = ${MAX_LIMIT_WITH_INPUT_SCHEMA}, default = 5).`),
|
|
47
|
+
offset: z.number()
|
|
48
|
+
.int()
|
|
49
|
+
.min(0)
|
|
50
|
+
.default(0)
|
|
51
|
+
.describe('The number of elements to skip from the start (default = 0)'),
|
|
52
52
|
});
|
|
53
53
|
const SEARCH_ACTORS_DESCRIPTION = `
|
|
54
54
|
Search the Apify Store to FIND and DISCOVER what scraping tools/Actors exist for specific platforms or use cases.
|
|
@@ -96,9 +96,9 @@ export const searchActorsMetadata = {
|
|
|
96
96
|
type: 'internal',
|
|
97
97
|
name: HelperTools.STORE_SEARCH,
|
|
98
98
|
description: SEARCH_ACTORS_DESCRIPTION,
|
|
99
|
-
inputSchema: z.toJSONSchema(
|
|
99
|
+
inputSchema: z.toJSONSchema(searchActorsBaseArgsSchema),
|
|
100
100
|
outputSchema: actorSearchOutputSchema,
|
|
101
|
-
ajvValidate: compileSchema(z.toJSONSchema(
|
|
101
|
+
ajvValidate: compileSchema(z.toJSONSchema(searchActorsBaseArgsSchema)),
|
|
102
102
|
annotations: {
|
|
103
103
|
title: 'Search Actors',
|
|
104
104
|
readOnlyHint: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search_actors_common.js","sourceRoot":"","sources":["../../../src/tools/core/search_actors_common.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACtH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;SACf,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"search_actors_common.js","sourceRoot":"","sources":["../../../src/tools/core/search_actors_common.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACtH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;SACf,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,MAAM,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;SAyBf,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SACZ,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,2BAA2B,CAAC;SAChC,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,iDAAiD,2BAA2B,iBAAiB,CAAC;IAC5G,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SACb,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,6DAA6D,CAAC;CAC/E,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;yKAsBuI,WAAW,CAAC,iBAAiB;iFACrH,WAAW,CAAC,iBAAiB;;;;;;;;;;;;;;CAc7G,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA6B;IAC1D,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,WAAW,CAAC,YAAY;IAC9B,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,0BAA0B,CAAoB;IAC1E,YAAY,EAAE,uBAAuB;IACrC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;IACtE,WAAW,EAAE;QACT,KAAK,EAAE,eAAe;QACtB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACvB;CACJ,CAAC;AAOF,MAAM,UAAU,uBAAuB,CACnC,MAAwB,EACxB,QAAqB;IAErB,MAAM,OAAO,GAAG,EAAE,GAAG,oBAAoB,EAAE,QAAQ,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC;IACxF,OAAO;QACH,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACzF,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,2BAA2B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAC1F,CAAC;AACN,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IACxD,MAAM,YAAY,GAAG,MAAM,CAAA;qDACsB,KAAK;;;KAGrD,CAAC;IAEF,OAAO,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AACzH,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { HelperTools } from '../../const.js';
|
|
|
3
3
|
import { searchAgentSafeActors } from '../../utils/actor_search.js';
|
|
4
4
|
import { buildMCPResponse } from '../../utils/mcp.js';
|
|
5
5
|
import { getUserInfoCached } from '../../utils/userid_cache.js';
|
|
6
|
-
import { buildSearchActorsEmptyResponse, buildSearchActorsResult,
|
|
6
|
+
import { buildSearchActorsEmptyResponse, buildSearchActorsResult, searchActorsBaseArgsSchema, searchActorsMetadata, } from '../core/search_actors_common.js';
|
|
7
7
|
/**
|
|
8
8
|
* Default mode search-actors tool.
|
|
9
9
|
* Returns text-based Actor cards without widget metadata.
|
|
@@ -12,7 +12,7 @@ export const defaultSearchActors = Object.freeze({
|
|
|
12
12
|
...searchActorsMetadata,
|
|
13
13
|
call: async (toolArgs) => {
|
|
14
14
|
const { args, apifyToken, apifyClient, apifyMcpServer } = toolArgs;
|
|
15
|
-
const parsed =
|
|
15
|
+
const parsed = searchActorsBaseArgsSchema.parse(args);
|
|
16
16
|
// Actor search and user-info fetch are independent; run in parallel to avoid a
|
|
17
17
|
// sequential round-trip on cache miss.
|
|
18
18
|
const [actors, { userPlanTier }] = await Promise.all([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search_actors.js","sourceRoot":"","sources":["../../../src/tools/default/search_actors.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACH,8BAA8B,EAC9B,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"search_actors.js","sourceRoot":"","sources":["../../../src/tools/default/search_actors.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACH,8BAA8B,EAC9B,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,GACvB,MAAM,iCAAiC,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAc,MAAM,CAAC,MAAM,CAAC;IACxD,GAAG,oBAAoB;IACvB,IAAI,EAAE,KAAK,EAAE,QAA0B,EAAE,EAAE;QACvC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC;QACnE,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,+EAA+E;QAC/E,uCAAuC;QACvC,MAAM,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,qBAAqB,CAAC;gBAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU;gBACV,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,eAAe,EAAE,cAAc,CAAC,OAAO,CAAC,eAAe;aAC1D,CAAC;YACF,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC;SAC7C,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,8BAA8B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,GAAG,uBAAuB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7F,MAAM,iBAAiB,GAAG;YACtB,MAAM,EAAE,mBAAmB;YAC3B,KAAK,EAAE,MAAM,CAAC,QAAQ;YACtB,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,YAAY,EAAE,MAAM,CAAA;;uEAEuC,WAAW,CAAC,iBAAiB;;;;;aAKvF;SACJ,CAAC;QAEF,8EAA8E;QAC9E,8EAA8E;QAC9E,+EAA+E;QAC/E,4BAA4B;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAA;;kCAEK,MAAM,CAAC,QAAQ;4CACL,MAAM,CAAC,MAAM;;;SAGhD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAA;;sDAEyB,WAAW,CAAC,iBAAiB;;;;;SAK1E,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,OAAO,aAAa,OAAO,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO,gBAAgB,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1D,CAAC;CACK,CAAC,CAAC"}
|