@apify/actors-mcp-server 0.19.4-beta.1 → 0.19.4-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.
- package/README.md +2 -1
- package/dist/apify_client.d.ts +16 -6
- package/dist/apify_client.d.ts.map +1 -1
- package/dist/apify_client.js +32 -5
- package/dist/apify_client.js.map +1 -1
- package/dist/const.d.ts +2 -1
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +2 -1
- package/dist/const.js.map +1 -1
- package/dist/errors.d.ts +2 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -4
- package/dist/errors.js.map +1 -1
- package/dist/index_internals.d.ts +1 -0
- package/dist/index_internals.d.ts.map +1 -1
- package/dist/index_internals_test_kit.d.ts +2 -2
- package/dist/index_internals_test_kit.d.ts.map +1 -1
- package/dist/index_internals_test_kit.js +2 -2
- package/dist/index_internals_test_kit.js.map +1 -1
- package/dist/mcp/actors.d.ts +16 -11
- package/dist/mcp/actors.d.ts.map +1 -1
- package/dist/mcp/actors.js +30 -29
- package/dist/mcp/actors.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +5 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool_call_engine.d.ts.map +1 -1
- package/dist/mcp/tool_call_engine.js +68 -11
- package/dist/mcp/tool_call_engine.js.map +1 -1
- package/dist/resources/api_resources.d.ts +4 -2
- package/dist/resources/api_resources.d.ts.map +1 -1
- package/dist/resources/api_resources.js +14 -31
- package/dist/resources/api_resources.js.map +1 -1
- package/dist/test_kit/cases/actors.cases.d.ts.map +1 -1
- package/dist/test_kit/cases/actors.cases.js +206 -2
- package/dist/test_kit/cases/actors.cases.js.map +1 -1
- package/dist/test_kit/cases/payments.cases.d.ts.map +1 -1
- package/dist/test_kit/cases/payments.cases.js +17 -0
- package/dist/test_kit/cases/payments.cases.js.map +1 -1
- package/dist/test_kit/helpers.d.ts +1 -0
- package/dist/test_kit/helpers.d.ts.map +1 -1
- package/dist/test_kit/helpers.js +1 -0
- package/dist/test_kit/helpers.js.map +1 -1
- package/dist/test_kit/register.js +2 -2
- package/dist/test_kit/register.js.map +1 -1
- package/dist/test_kit/tsconfig.tsbuildinfo +1 -1
- package/dist/test_kit/types.d.ts +2 -0
- package/dist/test_kit/types.d.ts.map +1 -1
- package/dist/tools/actor_tool_naming.d.ts +22 -11
- package/dist/tools/actor_tool_naming.d.ts.map +1 -1
- package/dist/tools/actor_tool_naming.js +38 -21
- package/dist/tools/actor_tool_naming.js.map +1 -1
- package/dist/tools/actors/actor_definition.d.ts +17 -5
- package/dist/tools/actors/actor_definition.d.ts.map +1 -1
- package/dist/tools/actors/actor_definition.js +83 -15
- package/dist/tools/actors/actor_definition.js.map +1 -1
- package/dist/tools/actors/actor_tools_factory.d.ts.map +1 -1
- package/dist/tools/actors/actor_tools_factory.js +4 -5
- package/dist/tools/actors/actor_tools_factory.js.map +1 -1
- package/dist/tools/actors/call_actor.d.ts.map +1 -1
- package/dist/tools/actors/call_actor.js +23 -7
- package/dist/tools/actors/call_actor.js.map +1 -1
- package/dist/tools/actors/fetch_actor_details.d.ts +4 -0
- package/dist/tools/actors/fetch_actor_details.d.ts.map +1 -1
- package/dist/tools/actors/fetch_actor_details.js +33 -7
- package/dist/tools/actors/fetch_actor_details.js.map +1 -1
- package/dist/tools/actors/search_actors.d.ts.map +1 -1
- package/dist/tools/actors/search_actors.js +7 -2
- package/dist/tools/actors/search_actors.js.map +1 -1
- package/dist/tools/actors/send_server_actor_request.d.ts +11 -0
- package/dist/tools/actors/send_server_actor_request.d.ts.map +1 -0
- package/dist/tools/actors/send_server_actor_request.js +425 -0
- package/dist/tools/actors/send_server_actor_request.js.map +1 -0
- package/dist/tools/actors/server_interface_schema.d.ts +31 -0
- package/dist/tools/actors/server_interface_schema.d.ts.map +1 -0
- package/dist/tools/actors/server_interface_schema.js +189 -0
- package/dist/tools/actors/server_interface_schema.js.map +1 -0
- package/dist/tools/api/apify_api_request.d.ts.map +1 -1
- package/dist/tools/api/apify_api_request.js +2 -2
- package/dist/tools/api/apify_api_request.js.map +1 -1
- package/dist/tools/api/apify_api_spec.d.ts +2 -0
- package/dist/tools/api/apify_api_spec.d.ts.map +1 -1
- package/dist/tools/api/apify_api_spec.js +4 -3
- package/dist/tools/api/apify_api_spec.js.map +1 -1
- package/dist/tools/builds/get_actor_build_list.d.ts +6 -0
- package/dist/tools/builds/get_actor_build_list.d.ts.map +1 -1
- package/dist/tools/registry.d.ts +1 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +3 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/structured_output_schemas.d.ts +82 -20
- package/dist/tools/structured_output_schemas.d.ts.map +1 -1
- package/dist/tools/structured_output_schemas.js +55 -1
- package/dist/tools/structured_output_schemas.js.map +1 -1
- package/dist/tools/widgets/call_actor_widget.d.ts.map +1 -1
- package/dist/tools/widgets/call_actor_widget.js +1 -0
- package/dist/tools/widgets/call_actor_widget.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +53 -13
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -2
- package/dist/types.js.map +1 -1
- package/dist/utils/actor.d.ts +6 -4
- package/dist/utils/actor.d.ts.map +1 -1
- package/dist/utils/actor.js +27 -13
- package/dist/utils/actor.js.map +1 -1
- package/dist/utils/actor_card.d.ts.map +1 -1
- package/dist/utils/actor_card.js +2 -14
- package/dist/utils/actor_card.js.map +1 -1
- package/dist/utils/actor_details.d.ts +2 -2
- package/dist/utils/actor_details.d.ts.map +1 -1
- package/dist/utils/actor_details.js +5 -3
- package/dist/utils/actor_details.js.map +1 -1
- package/dist/utils/actor_search.d.ts +3 -4
- package/dist/utils/actor_search.d.ts.map +1 -1
- package/dist/utils/actor_search.js +6 -5
- package/dist/utils/actor_search.js.map +1 -1
- package/dist/utils/tool_status.d.ts.map +1 -1
- package/dist/utils/tool_status.js +2 -0
- package/dist/utils/tool_status.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool_call_engine.d.ts","sourceRoot":"","sources":["../../src/mcp/tool_call_engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool_call_engine.d.ts","sourceRoot":"","sources":["../../src/mcp/tool_call_engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,58 @@ const PROGRESS_TRACKER_INTERNAL_TOOLS = new Set([
|
|
|
27
27
|
HELPER_TOOLS.ACTOR_BUILD_GET,
|
|
28
28
|
HELPER_TOOLS.ACTOR_BUILD,
|
|
29
29
|
]);
|
|
30
|
+
/** The value or subschema at JSON pointer `path`: `undefined` when it does not exist. */
|
|
31
|
+
function resolveJsonPointer(root, path, isSchema) {
|
|
32
|
+
const segments = path
|
|
33
|
+
.split('/')
|
|
34
|
+
.slice(1)
|
|
35
|
+
.map((segment) => segment.replaceAll('~1', '/').replaceAll('~0', '~'));
|
|
36
|
+
return segments.reduce((node, segment) => {
|
|
37
|
+
var _a;
|
|
38
|
+
if (typeof node !== 'object' || node === null)
|
|
39
|
+
return undefined;
|
|
40
|
+
if (!isSchema)
|
|
41
|
+
return node[segment];
|
|
42
|
+
const { properties, items } = node;
|
|
43
|
+
return (_a = properties === null || properties === void 0 ? void 0 : properties[segment]) !== null && _a !== void 0 ? _a : items;
|
|
44
|
+
}, root);
|
|
45
|
+
}
|
|
46
|
+
/** The JSON type of `value`, named as AJV names types. */
|
|
47
|
+
function getJsonTypeName(value) {
|
|
48
|
+
if (value === null)
|
|
49
|
+
return 'null';
|
|
50
|
+
return Array.isArray(value) ? 'array' : typeof value;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The validation failure text: each error with the type received for a type error, then the description of each
|
|
54
|
+
* failing parameter, so the caller learns what the parameter takes without another lookup.
|
|
55
|
+
*/
|
|
56
|
+
function buildAjvFailureText(errors, args, inputSchema) {
|
|
57
|
+
var _a;
|
|
58
|
+
const parameterPaths = new Set();
|
|
59
|
+
const failures = errors.map((error) => {
|
|
60
|
+
const { missingProperty } = error.params;
|
|
61
|
+
parameterPaths.add(missingProperty ? `${error.instancePath}/${missingProperty}` : error.instancePath);
|
|
62
|
+
const received = error.keyword === 'type'
|
|
63
|
+
? `, got ${getJsonTypeName(resolveJsonPointer(args, error.instancePath, false))}`
|
|
64
|
+
: '';
|
|
65
|
+
const allowedValues = error.keyword === 'enum' ? `: ${JSON.stringify(error.params.allowedValues)}` : '';
|
|
66
|
+
return `${error.instancePath || 'root'}: ${error.message || 'validation error'}${received}${allowedValues}`;
|
|
67
|
+
});
|
|
68
|
+
const descriptions = new Set();
|
|
69
|
+
for (let path of parameterPaths) {
|
|
70
|
+
// Dictionary values may have no description; their parent explains the accepted shape.
|
|
71
|
+
while (path) {
|
|
72
|
+
const { description } = ((_a = resolveJsonPointer(inputSchema, path, true)) !== null && _a !== void 0 ? _a : {});
|
|
73
|
+
if (typeof description === 'string') {
|
|
74
|
+
descriptions.add(`Parameter ${path}: ${description}`);
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
path = path.slice(0, path.lastIndexOf('/'));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return [`Validation errors: ${failures.join('; ')}.`, ...descriptions].join('\n');
|
|
81
|
+
}
|
|
30
82
|
/** Builds the pre-flight result; standby rejection takes precedence over 402. */
|
|
31
83
|
export function buildPreflightFailureOutcome(standbyRejection, paymentRequiredResult, actorName, actorId) {
|
|
32
84
|
return {
|
|
@@ -150,15 +202,18 @@ export async function prepareToolCall(params) {
|
|
|
150
202
|
if (!tool.ajvValidate(toolArgs)) {
|
|
151
203
|
const errors = tool.ajvValidate.errors || [];
|
|
152
204
|
const ajvErrorDetails = extractAjvErrorDetails(errors);
|
|
153
|
-
const errorMessages = errors
|
|
154
|
-
.map((e) => `${e.instancePath || 'root'}: ${e.message || 'validation error'}`)
|
|
155
|
-
.join('; ');
|
|
156
205
|
return {
|
|
157
|
-
message:
|
|
158
|
-
Invalid arguments for tool "${tool.name}"
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
206
|
+
message: [
|
|
207
|
+
`Invalid arguments for tool "${tool.name}".`,
|
|
208
|
+
buildAjvFailureText(errors, toolArgs, tool.inputSchema),
|
|
209
|
+
// Only an Actor tool's schema is worth a pointer: it is the Actor's input schema. Another
|
|
210
|
+
// tool's schema is already in the client's tools/list.
|
|
211
|
+
...(tool.type === TOOL_TYPE.ACTOR
|
|
212
|
+
? [
|
|
213
|
+
`Please check the tool's input schema ${schemaHint} and ensure all required parameters are provided with correct types and values.`,
|
|
214
|
+
]
|
|
215
|
+
: []),
|
|
216
|
+
].join('\n'),
|
|
162
217
|
toolStatus: TOOL_STATUS.SOFT_FAIL,
|
|
163
218
|
callDiagnostics: {
|
|
164
219
|
failure_category: FAILURE_CATEGORY.INVALID_INPUT,
|
|
@@ -185,10 +240,12 @@ export async function prepareToolCall(params) {
|
|
|
185
240
|
decodedArgs,
|
|
186
241
|
};
|
|
187
242
|
}
|
|
188
|
-
// Standby Actors need a specific rejection instead of a generic 402 in both modes.
|
|
189
|
-
const isCallActorTool = tool.name === HELPER_TOOLS.ACTOR_CALL || tool.name === HELPER_TOOLS.ACTOR_CALL_WIDGET;
|
|
243
|
+
// Standby Actors need a specific rejection instead of a generic 402 in both modes; the tool declares the check.
|
|
190
244
|
const actorArg = toolArgs === null || toolArgs === void 0 ? void 0 : toolArgs.actor;
|
|
191
|
-
const standbyRejection = paymentProvider &&
|
|
245
|
+
const standbyRejection = paymentProvider &&
|
|
246
|
+
tool.hasPaymentProviderStandbyCheck &&
|
|
247
|
+
typeof actorArg === 'string' &&
|
|
248
|
+
actorArg.length > 0
|
|
192
249
|
? await checkPaymentProviderStandbyConflict({
|
|
193
250
|
actorName: actorArg,
|
|
194
251
|
paymentProvider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool_call_engine.js","sourceRoot":"","sources":["../../src/mcp/tool_call_engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool_call_engine.js","sourceRoot":"","sources":["../../src/mcp/tool_call_engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
import type { ApifyClient } from '../apify_client.js';
|
|
3
3
|
export declare const REDACTED = "[REDACTED]";
|
|
4
|
+
/** Textual base MIME types (returned as `text`); everything else becomes a base64 `blob`. */
|
|
5
|
+
export declare function isTextualMimeType(baseMimeType: string | undefined): boolean;
|
|
4
6
|
/**
|
|
5
7
|
* True when the URI is an Apify API URL: on the origin clients are told to use (`getApifyAPIPublicBaseUrl()`)
|
|
6
8
|
* or on the egress origin (`getApifyAPIBaseUrl()`), which differ on the hosted server.
|
|
@@ -15,8 +17,8 @@ export declare const REDACTED = "[REDACTED]";
|
|
|
15
17
|
export declare function isApifyApiUri(uri: string): boolean;
|
|
16
18
|
/** `uri` with the scheme, host and port of `base`; the path, query and fragment stay. */
|
|
17
19
|
export declare function buildUrlOnOrigin(uri: string, base: string): string;
|
|
18
|
-
/**
|
|
19
|
-
export declare function
|
|
20
|
+
/** `charset` parameter of a Content-Type header, lowercased; `undefined` when absent. */
|
|
21
|
+
export declare function parseCharset(contentType: string | undefined): string | undefined;
|
|
20
22
|
/** A response can echo the session token, as `GET /v2/browser-info` echoes the request headers. */
|
|
21
23
|
export declare function maskSessionToken(body: Buffer, token: string | undefined): Buffer;
|
|
22
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api_resources.d.ts","sourceRoot":"","sources":["../../src/resources/api_resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,kBAAkB,EAErB,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"api_resources.d.ts","sourceRoot":"","sources":["../../src/resources/api_resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,kBAAkB,EAErB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAiBtD,eAAO,MAAM,QAAQ,eAAe,CAAC;AAErC,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAU3E;AA0BD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQlD;AAED,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOlE;AA8DD,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGhF;AAaD,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKhF;AAQD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8FzG"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getApifyAPIBaseUrl, getApifyAPIPublicBaseUrl, sendApifyApiRequest } from '../apify_client.js';
|
|
1
|
+
import { getApifyAPIBaseUrl, getApifyAPIPublicBaseUrl, readBodyUnderCap, sendApifyApiRequest, } from '../apify_client.js';
|
|
3
2
|
import { MAX_INLINE_BYTES } from '../const.js';
|
|
4
3
|
import { InternalError, InvalidParamsError } from '../mcp/errors.js';
|
|
5
4
|
import { validateApiBlocklist } from '../tools/api/apify_api_blocklist.js';
|
|
@@ -10,7 +9,7 @@ import { getHttpErrorHint } from '../utils/mcp.js';
|
|
|
10
9
|
const TEXT_MIME_TYPE = 'text/plain';
|
|
11
10
|
export const REDACTED = '[REDACTED]';
|
|
12
11
|
/** Textual base MIME types (returned as `text`); everything else becomes a base64 `blob`. */
|
|
13
|
-
function isTextualMimeType(baseMimeType) {
|
|
12
|
+
export function isTextualMimeType(baseMimeType) {
|
|
14
13
|
if (!baseMimeType)
|
|
15
14
|
return false;
|
|
16
15
|
return (baseMimeType.startsWith('text/') ||
|
|
@@ -123,23 +122,11 @@ async function buildLinkOutResult(uri, apifyClient) {
|
|
|
123
122
|
return buildTextResult(uri, `Response body exceeds the ${MAX_INLINE_BYTES}-byte inline limit. Download it from ${downloadUrl} ` +
|
|
124
123
|
`(may require your Apify API token).${pagingHint}`);
|
|
125
124
|
}
|
|
126
|
-
/** The mid-consumption abort axios raises when a body crosses `maxContentLength`. */
|
|
127
|
-
export function isMaxContentLengthAbort(err) {
|
|
128
|
-
return isAxiosError(err) && err.code === 'ERR_BAD_RESPONSE' && err.message.includes('maxContentLength');
|
|
129
|
-
}
|
|
130
125
|
/** `charset` parameter of a Content-Type header, lowercased; `undefined` when absent. */
|
|
131
|
-
function parseCharset(contentType) {
|
|
126
|
+
export function parseCharset(contentType) {
|
|
132
127
|
const match = /;\s*charset\s*=\s*"?([^";]+)"?/i.exec(contentType !== null && contentType !== void 0 ? contentType : '');
|
|
133
128
|
return match === null || match === void 0 ? void 0 : match[1].trim().toLowerCase();
|
|
134
129
|
}
|
|
135
|
-
/** Drain a response stream into one Buffer. Chunks are Buffers (`objectMode: false`). */
|
|
136
|
-
async function collectStream(data) {
|
|
137
|
-
const chunks = [];
|
|
138
|
-
for await (const chunk of data) {
|
|
139
|
-
chunks.push(Buffer.from(chunk));
|
|
140
|
-
}
|
|
141
|
-
return Buffer.concat(chunks);
|
|
142
|
-
}
|
|
143
130
|
/** `error.message` from an Apify API error body, or `undefined` when the body isn't that shape. */
|
|
144
131
|
function parseApiErrorMessage(body) {
|
|
145
132
|
var _a;
|
|
@@ -225,24 +212,21 @@ export async function readApiResource(uri, apifyClient) {
|
|
|
225
212
|
logHttpError(err, `resources/read request failed`, { uri });
|
|
226
213
|
throwReadFailure(uri, getHttpStatusCode(err), err instanceof Error ? err.message : String(err));
|
|
227
214
|
}
|
|
215
|
+
// `undefined` when the body passed `MAX_INLINE_BYTES`.
|
|
228
216
|
let body;
|
|
229
|
-
let overLimit = false;
|
|
230
217
|
try {
|
|
231
|
-
body =
|
|
218
|
+
body = await readBodyUnderCap(response);
|
|
232
219
|
}
|
|
233
220
|
catch (err) {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
241
|
-
throw new InternalError(`Failed to read ${uri}: response interrupted: ${message}`, {
|
|
242
|
-
uri,
|
|
243
|
-
});
|
|
244
|
-
}
|
|
221
|
+
// A drop mid-body (reset, truncation, bad gzip). Never return partial content.
|
|
222
|
+
logHttpError(err, `resources/read response interrupted`, { uri });
|
|
223
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
224
|
+
throw new InternalError(`Failed to read ${uri}: response interrupted: ${message}`, {
|
|
225
|
+
uri,
|
|
226
|
+
});
|
|
245
227
|
}
|
|
228
|
+
if (body)
|
|
229
|
+
body = maskSessionToken(body, apifyClient.token);
|
|
246
230
|
// `validateStatus: null` on this axios instance resolves non-2xx responses instead of throwing,
|
|
247
231
|
// so a failed request is checked here. The error body was just collected above (Apify API error
|
|
248
232
|
// bodies are small JSON; if one somehow crossed the limit, fall back to the status text).
|
|
@@ -253,8 +237,7 @@ export async function readApiResource(uri, apifyClient) {
|
|
|
253
237
|
});
|
|
254
238
|
throwReadFailure(uri, response.status, message);
|
|
255
239
|
}
|
|
256
|
-
|
|
257
|
-
if (overLimit || body === undefined) {
|
|
240
|
+
if (body === undefined) {
|
|
258
241
|
return buildLinkOutResult(uri, apifyClient);
|
|
259
242
|
}
|
|
260
243
|
const contentTypeHeader = response.headers['content-type'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api_resources.js","sourceRoot":"","sources":["../../src/resources/api_resources.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api_resources.js","sourceRoot":"","sources":["../../src/resources/api_resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actors.cases.d.ts","sourceRoot":"","sources":["../../../tests/test_kit/cases/actors.cases.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"actors.cases.d.ts","sourceRoot":"","sources":["../../../tests/test_kit/cases/actors.cases.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,aAAa,CAAC;AA0BrD,+DAA+D;AAC/D,eAAO,MAAM,WAAW,EAAE,IAAI,EAquC7B,CAAC"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
+
import { CallToolResultSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
1
2
|
import { expect } from 'vitest';
|
|
2
3
|
import { actorNameToToolName, getCategoryTools } from '@apify/actors-mcp-server/internals.js';
|
|
3
|
-
import { MAX_LIMIT_WITH_INPUT_SCHEMA } from '@apify/actors-mcp-server/internals/test-kit.js';
|
|
4
|
-
import { ACTOR_EXAMPLE_MCP_SERVER, ACTOR_NORMAL_MODE, AUTO_INJECTED_TOOL_NAMES, expectNormalModeTestStructuredContent, expectReadmeInStructuredContent, expectToolNamesToContain, expectUsageCostMeta, findToolByName, getToolNames, validateStructuredOutput, validateStructuredOutputForTool, withClient, } from '../helpers.js';
|
|
4
|
+
import { MAX_INLINE_BYTES, MAX_LIMIT_WITH_INPUT_SCHEMA } from '@apify/actors-mcp-server/internals/test-kit.js';
|
|
5
|
+
import { ACTOR_EXAMPLE_MCP_SERVER, ACTOR_NORMAL_MODE, ACTOR_SERVER_ACTOR_TEST, AUTO_INJECTED_TOOL_NAMES, expectNormalModeTestStructuredContent, expectReadmeInStructuredContent, expectToolNamesToContain, expectUsageCostMeta, findToolByName, getToolNames, skipUnlessStdio, validateStructuredOutput, validateStructuredOutputForTool, withClient, } from '../helpers.js';
|
|
6
|
+
import { resolveToken } from '../mcp_client.js';
|
|
5
7
|
// call-actor calls Actors by name — this tool name must never appear in the tool list.
|
|
6
8
|
const NORMAL_MODE_TOOL_NAME = actorNameToToolName(ACTOR_NORMAL_MODE);
|
|
9
|
+
/** One `send-server-actor-request` to the Server Actor fixture (its endpoints are listed in DEVELOPMENT.md). */
|
|
10
|
+
async function sendServerActorRequest(client, args) {
|
|
11
|
+
const result = await client.callTool({
|
|
12
|
+
name: 'send-server-actor-request',
|
|
13
|
+
arguments: { actor: ACTOR_SERVER_ACTOR_TEST, ...args },
|
|
14
|
+
});
|
|
15
|
+
return {
|
|
16
|
+
result,
|
|
17
|
+
text: result.content.map((item) => item.text).join('\n'),
|
|
18
|
+
sc: result.structuredContent,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
7
21
|
/** Actor tools: search, details, call-actor, get-actor-run. */
|
|
8
22
|
export const actorsCases = [
|
|
9
23
|
{
|
|
@@ -947,5 +961,195 @@ export const actorsCases = [
|
|
|
947
961
|
})).rejects.toThrow(/waitSecs|less than or equal to 45|<= 45/i);
|
|
948
962
|
}),
|
|
949
963
|
},
|
|
964
|
+
{
|
|
965
|
+
name: 'sends a JSON body to a Server Actor and returns its JSON response as text',
|
|
966
|
+
isDeploymentTest: false,
|
|
967
|
+
run: withClient({ tools: ['actors', 'send-server-actor-request'] }, async (client) => {
|
|
968
|
+
const { result, sc } = await sendServerActorRequest(client, {
|
|
969
|
+
method: 'POST',
|
|
970
|
+
path: '/add',
|
|
971
|
+
body: { firstNumber: 2, secondNumber: 3 },
|
|
972
|
+
});
|
|
973
|
+
expect(result.isError).not.toBe(true);
|
|
974
|
+
validateStructuredOutputForTool(result, 'send-server-actor-request', 'default');
|
|
975
|
+
expect(sc).toMatchObject({
|
|
976
|
+
status: 200,
|
|
977
|
+
interface: 'server',
|
|
978
|
+
tenancy: 'single-tenant',
|
|
979
|
+
method: 'POST',
|
|
980
|
+
path: '/add',
|
|
981
|
+
});
|
|
982
|
+
expect(JSON.parse(sc.body)).toEqual({ firstNumber: 2, secondNumber: 3, sum: 5 });
|
|
983
|
+
}),
|
|
984
|
+
},
|
|
985
|
+
{
|
|
986
|
+
// The fixture answers asText=1 with a 400, so this pins the true/false encoding.
|
|
987
|
+
name: 'sends a query boolean to a Server Actor as true and returns its text response',
|
|
988
|
+
isDeploymentTest: false,
|
|
989
|
+
run: withClient({ tools: ['actors', 'send-server-actor-request'] }, async (client) => {
|
|
990
|
+
const { sc } = await sendServerActorRequest(client, {
|
|
991
|
+
method: 'GET',
|
|
992
|
+
path: '/add',
|
|
993
|
+
query: { firstNumber: 2, secondNumber: 3, asText: true },
|
|
994
|
+
});
|
|
995
|
+
expect(sc).toMatchObject({ status: 200, path: '/add?firstNumber=2&secondNumber=3&asText=true' });
|
|
996
|
+
expect(sc === null || sc === void 0 ? void 0 : sc.contentType).toMatch(/^text\/plain/);
|
|
997
|
+
expect(sc === null || sc === void 0 ? void 0 : sc.body.trim()).toBe('2 + 3 = 5');
|
|
998
|
+
}),
|
|
999
|
+
},
|
|
1000
|
+
{
|
|
1001
|
+
name: 'returns a Server Actor error body with its status as an error',
|
|
1002
|
+
isDeploymentTest: false,
|
|
1003
|
+
run: withClient({ tools: ['actors', 'send-server-actor-request'] }, async (client) => {
|
|
1004
|
+
const { result, sc } = await sendServerActorRequest(client, { method: 'GET', path: '/status/404' });
|
|
1005
|
+
expect(result.isError).toBe(true);
|
|
1006
|
+
expect(sc === null || sc === void 0 ? void 0 : sc.status).toBe(404);
|
|
1007
|
+
expect(JSON.parse(sc.body)).toMatchObject({ code: 404 });
|
|
1008
|
+
}),
|
|
1009
|
+
},
|
|
1010
|
+
{
|
|
1011
|
+
name: 'returns an empty body for a 204 from a Server Actor',
|
|
1012
|
+
isDeploymentTest: false,
|
|
1013
|
+
run: withClient({ tools: ['actors', 'send-server-actor-request'] }, async (client) => {
|
|
1014
|
+
const { result, sc } = await sendServerActorRequest(client, { method: 'GET', path: '/empty' });
|
|
1015
|
+
expect(result.isError).not.toBe(true);
|
|
1016
|
+
expect(sc).toMatchObject({ status: 204, body: '', bytes: 0 });
|
|
1017
|
+
expect(sc === null || sc === void 0 ? void 0 : sc.contentType).toBeUndefined();
|
|
1018
|
+
}),
|
|
1019
|
+
},
|
|
1020
|
+
{
|
|
1021
|
+
name: 'rejects a binary Server Actor response by its content type',
|
|
1022
|
+
isDeploymentTest: false,
|
|
1023
|
+
run: withClient({ tools: ['actors', 'send-server-actor-request'] }, async (client) => {
|
|
1024
|
+
const { result, text } = await sendServerActorRequest(client, { method: 'GET', path: '/binary' });
|
|
1025
|
+
expect(result.isError).toBe(true);
|
|
1026
|
+
expect(text).toContain('application/octet-stream');
|
|
1027
|
+
}),
|
|
1028
|
+
},
|
|
1029
|
+
{
|
|
1030
|
+
name: 'returns a Server Actor redirect with its location without following it',
|
|
1031
|
+
isDeploymentTest: false,
|
|
1032
|
+
run: withClient({ tools: ['actors', 'send-server-actor-request'] }, async (client) => {
|
|
1033
|
+
const { result, sc } = await sendServerActorRequest(client, { method: 'GET', path: '/redirect' });
|
|
1034
|
+
expect(result.isError).not.toBe(true);
|
|
1035
|
+
expect(sc).toMatchObject({ status: 302, location: '/' });
|
|
1036
|
+
}),
|
|
1037
|
+
},
|
|
1038
|
+
{
|
|
1039
|
+
name: 'returns a Server Actor body of exactly the inline limit and rejects one byte more, compressed too',
|
|
1040
|
+
isDeploymentTest: false,
|
|
1041
|
+
run: withClient({ tools: ['actors', 'send-server-actor-request'] }, async (client) => {
|
|
1042
|
+
const exact = await sendServerActorRequest(client, {
|
|
1043
|
+
method: 'GET',
|
|
1044
|
+
path: '/bytes',
|
|
1045
|
+
query: { n: MAX_INLINE_BYTES },
|
|
1046
|
+
});
|
|
1047
|
+
const over = await sendServerActorRequest(client, {
|
|
1048
|
+
method: 'GET',
|
|
1049
|
+
path: '/bytes',
|
|
1050
|
+
query: { n: MAX_INLINE_BYTES + 1 },
|
|
1051
|
+
});
|
|
1052
|
+
const overCompressed = await sendServerActorRequest(client, {
|
|
1053
|
+
method: 'GET',
|
|
1054
|
+
path: '/gzip',
|
|
1055
|
+
query: { n: MAX_INLINE_BYTES + 1 },
|
|
1056
|
+
});
|
|
1057
|
+
expect(exact.sc).toMatchObject({ status: 200, bytes: MAX_INLINE_BYTES });
|
|
1058
|
+
expect(over.result.isError).toBe(true);
|
|
1059
|
+
expect(over.text).toContain(`larger than ${MAX_INLINE_BYTES} bytes`);
|
|
1060
|
+
expect(overCompressed.result.isError).toBe(true);
|
|
1061
|
+
expect(overCompressed.text).toContain(`larger than ${MAX_INLINE_BYTES} bytes`);
|
|
1062
|
+
}),
|
|
1063
|
+
},
|
|
1064
|
+
{
|
|
1065
|
+
// The router strips the Authorization header, so the token travels in the body the fixture echoes.
|
|
1066
|
+
name: 'masks the session token a Server Actor echoes',
|
|
1067
|
+
isDeploymentTest: false,
|
|
1068
|
+
run: withClient({ tools: ['actors', 'send-server-actor-request'] }, async (client) => {
|
|
1069
|
+
const token = resolveToken();
|
|
1070
|
+
const { result, sc } = await sendServerActorRequest(client, {
|
|
1071
|
+
method: 'POST',
|
|
1072
|
+
path: '/',
|
|
1073
|
+
body: { token },
|
|
1074
|
+
});
|
|
1075
|
+
expect(result.isError).not.toBe(true);
|
|
1076
|
+
expect(sc === null || sc === void 0 ? void 0 : sc.body).toContain('[REDACTED]');
|
|
1077
|
+
expect(JSON.stringify(result)).not.toContain(token);
|
|
1078
|
+
}),
|
|
1079
|
+
},
|
|
1080
|
+
{
|
|
1081
|
+
name: 'returns nothing for a Server Actor request the client cancels',
|
|
1082
|
+
isDeploymentTest: false,
|
|
1083
|
+
skipIf: skipUnlessStdio,
|
|
1084
|
+
run: withClient({ tools: ['actors', 'send-server-actor-request'] }, async (client) => {
|
|
1085
|
+
const controller = new AbortController();
|
|
1086
|
+
setTimeout(() => controller.abort(), 1000);
|
|
1087
|
+
await expect(client.callTool({
|
|
1088
|
+
name: 'send-server-actor-request',
|
|
1089
|
+
arguments: {
|
|
1090
|
+
actor: ACTOR_SERVER_ACTOR_TEST,
|
|
1091
|
+
method: 'GET',
|
|
1092
|
+
path: '/delay',
|
|
1093
|
+
query: { ms: 20000 },
|
|
1094
|
+
},
|
|
1095
|
+
}, CallToolResultSchema, { signal: controller.signal })).rejects.toThrow();
|
|
1096
|
+
}),
|
|
1097
|
+
},
|
|
1098
|
+
{
|
|
1099
|
+
name: 'drops a Server Actor response that misses the 120-second deadline',
|
|
1100
|
+
isDeploymentTest: false,
|
|
1101
|
+
skipIf: skipUnlessStdio,
|
|
1102
|
+
timeout: 150000,
|
|
1103
|
+
run: withClient({ tools: ['actors', 'send-server-actor-request'] }, async (client) => {
|
|
1104
|
+
const result = await client.callTool({
|
|
1105
|
+
name: 'send-server-actor-request',
|
|
1106
|
+
arguments: {
|
|
1107
|
+
actor: ACTOR_SERVER_ACTOR_TEST,
|
|
1108
|
+
method: 'GET',
|
|
1109
|
+
path: '/delay',
|
|
1110
|
+
query: { ms: 125000 },
|
|
1111
|
+
},
|
|
1112
|
+
}, CallToolResultSchema, { timeout: 140000 });
|
|
1113
|
+
expect(result.isError).toBe(true);
|
|
1114
|
+
expect(result.content[0].text).toContain('within 120 seconds');
|
|
1115
|
+
}),
|
|
1116
|
+
},
|
|
1117
|
+
{
|
|
1118
|
+
name: 'summarizes a Server Actor interface and navigates it with fetch-actor-details',
|
|
1119
|
+
isDeploymentTest: false,
|
|
1120
|
+
run: withClient({ tools: ['actors', 'send-server-actor-request'] }, async (client) => {
|
|
1121
|
+
const call = async (actor, output) => {
|
|
1122
|
+
const result = await client.callTool({
|
|
1123
|
+
name: 'fetch-actor-details',
|
|
1124
|
+
arguments: { actor, ...(output && { output }) },
|
|
1125
|
+
});
|
|
1126
|
+
return { result, text: result.content.map((item) => item.text).join('\n') };
|
|
1127
|
+
};
|
|
1128
|
+
const summary = await call(ACTOR_SERVER_ACTOR_TEST);
|
|
1129
|
+
expect(summary.text).toMatch(/Server interface: enabled, single-tenant, [1-9]\d* documented operations\./);
|
|
1130
|
+
validateStructuredOutputForTool(summary.result, 'fetch-actor-details', 'default');
|
|
1131
|
+
const list = await call(ACTOR_SERVER_ACTOR_TEST, { serverInterface: true });
|
|
1132
|
+
expect(list.text).toContain(`send-server-actor-request sends a request to one of them: {"actor":"${ACTOR_SERVER_ACTOR_TEST}"`);
|
|
1133
|
+
expect(list.text).toContain('- POST /add: Add two numbers (JSON body). Required: request body.');
|
|
1134
|
+
for (const key of ['openapi', 'paths', 'components'])
|
|
1135
|
+
expect(list.text).toContain(`"${key}":`);
|
|
1136
|
+
const operation = await call(ACTOR_SERVER_ACTOR_TEST, { serverInterface: 'GET /add' });
|
|
1137
|
+
expect(operation.result.isError).not.toBe(true);
|
|
1138
|
+
for (const part of ['"operation":', 'Components are omitted', '"$ref":"#/components/parameters/AsText"']) {
|
|
1139
|
+
expect(operation.text).toContain(part);
|
|
1140
|
+
}
|
|
1141
|
+
expect(operation.text).toContain('"$ref":"#/components/responses/Add"');
|
|
1142
|
+
const parameter = await call(ACTOR_SERVER_ACTOR_TEST, {
|
|
1143
|
+
serverInterface: '#/components/parameters/AsText',
|
|
1144
|
+
});
|
|
1145
|
+
expect(parameter.result.isError).not.toBe(true);
|
|
1146
|
+
expect(parameter.text).toContain('"name":"asText"');
|
|
1147
|
+
const unknown = await call(ACTOR_SERVER_ACTOR_TEST, { serverInterface: 'GET /nope' });
|
|
1148
|
+
expect(unknown.result.isError).toBe(true);
|
|
1149
|
+
expect(unknown.text).toMatch(/has no operation "GET \/nope"\. \d+ documented operations\. fetch-actor-details with /);
|
|
1150
|
+
const normal = await call(ACTOR_NORMAL_MODE, { serverInterface: true });
|
|
1151
|
+
expect(normal.text).toContain(`Actor '${ACTOR_NORMAL_MODE}' has no server interface.`);
|
|
1152
|
+
}),
|
|
1153
|
+
},
|
|
950
1154
|
];
|
|
951
1155
|
//# sourceMappingURL=actors.cases.js.map
|