@apify/actors-mcp-server 0.11.2-beta.0 → 0.11.2-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.
Files changed (47) hide show
  1. package/dist/const.d.ts +8 -0
  2. package/dist/const.d.ts.map +1 -1
  3. package/dist/const.js +8 -0
  4. package/dist/const.js.map +1 -1
  5. package/dist/mcp/client.js +2 -2
  6. package/dist/mcp/client.js.map +1 -1
  7. package/dist/mcp/server.d.ts.map +1 -1
  8. package/dist/mcp/server.js +21 -35
  9. package/dist/mcp/server.js.map +1 -1
  10. package/dist/tools/common/dataset_collection.d.ts.map +1 -1
  11. package/dist/tools/common/dataset_collection.js +1 -0
  12. package/dist/tools/common/dataset_collection.js.map +1 -1
  13. package/dist/tools/common/get_dataset.d.ts.map +1 -1
  14. package/dist/tools/common/get_dataset.js +8 -4
  15. package/dist/tools/common/get_dataset.js.map +1 -1
  16. package/dist/tools/core/actor_run_response.d.ts +12 -0
  17. package/dist/tools/core/actor_run_response.d.ts.map +1 -1
  18. package/dist/tools/core/actor_run_response.js +19 -2
  19. package/dist/tools/core/actor_run_response.js.map +1 -1
  20. package/dist/tools/core/call_actor_common.d.ts +1 -2
  21. package/dist/tools/core/call_actor_common.d.ts.map +1 -1
  22. package/dist/tools/core/call_actor_common.js +11 -11
  23. package/dist/tools/core/call_actor_common.js.map +1 -1
  24. package/dist/tools/structured_output_schemas.d.ts +10 -1
  25. package/dist/tools/structured_output_schemas.d.ts.map +1 -1
  26. package/dist/tools/structured_output_schemas.js +6 -1
  27. package/dist/tools/structured_output_schemas.js.map +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/dist/utils/apify_errors.d.ts +18 -0
  30. package/dist/utils/apify_errors.d.ts.map +1 -0
  31. package/dist/utils/apify_errors.js +40 -0
  32. package/dist/utils/apify_errors.js.map +1 -0
  33. package/dist/utils/logging.d.ts +9 -0
  34. package/dist/utils/logging.d.ts.map +1 -1
  35. package/dist/utils/logging.js +42 -3
  36. package/dist/utils/logging.js.map +1 -1
  37. package/dist/utils/mcp.d.ts.map +1 -1
  38. package/dist/utils/mcp.js +4 -0
  39. package/dist/utils/mcp.js.map +1 -1
  40. package/dist/utils/payment_errors.d.ts +6 -0
  41. package/dist/utils/payment_errors.d.ts.map +1 -1
  42. package/dist/utils/payment_errors.js +10 -0
  43. package/dist/utils/payment_errors.js.map +1 -1
  44. package/dist/utils/tool_status.d.ts.map +1 -1
  45. package/dist/utils/tool_status.js +9 -0
  46. package/dist/utils/tool_status.js.map +1 -1
  47. package/package.json +1 -1
@@ -0,0 +1,18 @@
1
+ import { ApifyApiError } from 'apify-client';
2
+ /** True when an Actor requires full-permission approval the user has not granted. */
3
+ export declare function isPermissionApprovalError(error: unknown): error is ApifyApiError;
4
+ /** True when an Actor run is rejected because the account memory quota is exceeded. */
5
+ export declare function isMemoryQuotaError(error: unknown): error is ApifyApiError;
6
+ /**
7
+ * The Apify platform refuses to start a run when the user hits their concurrent-run / usage limit.
8
+ * A direct Actor run surfaces it as an `ApifyApiError` whose `type` is `cannot-start-actor-runs`;
9
+ * a remote MCP-server Actor wraps it as an HTTP 500 whose body carries that same type string.
10
+ * Either way it's a user billing condition, not a server fault — hence the duck-typed `type` check
11
+ * plus a message-substring fallback (the wrapped case is a plain Error, not an `ApifyApiError`).
12
+ */
13
+ export declare function isActorRunLimitError(error: unknown): boolean;
14
+ /** User-facing message shown when an Actor run is rejected for hitting the concurrent-run limit. */
15
+ export declare const ACTOR_RUN_LIMIT_MESSAGE: string;
16
+ /** User-facing detail appended to a failed remote MCP-server tool call message. */
17
+ export declare function remoteMcpFailureDetail(error: unknown): string;
18
+ //# sourceMappingURL=apify_errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apify_errors.d.ts","sourceRoot":"","sources":["../../src/utils/apify_errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAY7C,qFAAqF;AACrF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEhF;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEzE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAU5D;AAED,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,QAE4E,CAAC;AAEjH,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAI7D"}
@@ -0,0 +1,40 @@
1
+ import { ApifyApiError } from 'apify-client';
2
+ import { APIFY_ERROR_TYPE_CANNOT_START_ACTOR_RUNS, APIFY_ERROR_TYPE_FULL_PERMISSION_NOT_APPROVED, APIFY_ERROR_TYPE_MEMORY_LIMIT_EXCEEDED, } from '../const.js';
3
+ // Predicates that classify an error received from the Apify API by its `type`. Kept in one leaf
4
+ // module (imports only const + apify-client) so logging, telemetry, payments, and the tool layer
5
+ // can share them without import cycles.
6
+ /** True when an Actor requires full-permission approval the user has not granted. */
7
+ export function isPermissionApprovalError(error) {
8
+ return error instanceof ApifyApiError && error.type === APIFY_ERROR_TYPE_FULL_PERMISSION_NOT_APPROVED;
9
+ }
10
+ /** True when an Actor run is rejected because the account memory quota is exceeded. */
11
+ export function isMemoryQuotaError(error) {
12
+ return error instanceof ApifyApiError && error.type === APIFY_ERROR_TYPE_MEMORY_LIMIT_EXCEEDED;
13
+ }
14
+ /**
15
+ * The Apify platform refuses to start a run when the user hits their concurrent-run / usage limit.
16
+ * A direct Actor run surfaces it as an `ApifyApiError` whose `type` is `cannot-start-actor-runs`;
17
+ * a remote MCP-server Actor wraps it as an HTTP 500 whose body carries that same type string.
18
+ * Either way it's a user billing condition, not a server fault — hence the duck-typed `type` check
19
+ * plus a message-substring fallback (the wrapped case is a plain Error, not an `ApifyApiError`).
20
+ */
21
+ export function isActorRunLimitError(error) {
22
+ if (typeof error === 'object' &&
23
+ error !== null &&
24
+ error.type === APIFY_ERROR_TYPE_CANNOT_START_ACTOR_RUNS) {
25
+ return true;
26
+ }
27
+ const message = error instanceof Error ? error.message : String(error);
28
+ return message.includes(APIFY_ERROR_TYPE_CANNOT_START_ACTOR_RUNS);
29
+ }
30
+ /** User-facing message shown when an Actor run is rejected for hitting the concurrent-run limit. */
31
+ export const ACTOR_RUN_LIMIT_MESSAGE = 'You have reached your account limit for concurrent Actor runs. ' +
32
+ 'Wait for running Actors to finish, or upgrade your plan at https://console.apify.com/billing/subscription.';
33
+ /** User-facing detail appended to a failed remote MCP-server tool call message. */
34
+ export function remoteMcpFailureDetail(error) {
35
+ if (isActorRunLimitError(error))
36
+ return ACTOR_RUN_LIMIT_MESSAGE;
37
+ const message = error instanceof Error ? error.message : String(error);
38
+ return `${message}. The MCP server may be temporarily unavailable.`;
39
+ }
40
+ //# sourceMappingURL=apify_errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apify_errors.js","sourceRoot":"","sources":["../../src/utils/apify_errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EACH,wCAAwC,EACxC,6CAA6C,EAC7C,sCAAsC,GACzC,MAAM,aAAa,CAAC;AAErB,gGAAgG;AAChG,iGAAiG;AACjG,wCAAwC;AAExC,qFAAqF;AACrF,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACpD,OAAO,KAAK,YAAY,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,6CAA6C,CAAC;AAC1G,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC7C,OAAO,KAAK,YAAY,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,sCAAsC,CAAC;AACnG,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IAC/C,IACI,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAA4B,CAAC,IAAI,KAAK,wCAAwC,EACjF,CAAC;QACC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC;AACtE,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,MAAM,uBAAuB,GAChC,iEAAiE;IACjE,4GAA4G,CAAC;AAEjH,mFAAmF;AACnF,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACjD,IAAI,oBAAoB,CAAC,KAAK,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAChE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,GAAG,OAAO,kDAAkD,CAAC;AACxE,CAAC"}
@@ -3,6 +3,15 @@
3
3
  * Checks both `statusCode` and `code` properties for compatibility.
4
4
  */
5
5
  export declare function getHttpStatusCode(error: unknown): number | undefined;
6
+ /**
7
+ * Mezmo (logDNA) promotes a log entry to error level when its message contains the lowercase
8
+ * substring "error". Replace those occurrences with "failure" so soft logs keep their level.
9
+ * Case-sensitive: capitalized `Error`/`ERROR` does not trigger promotion, so leave it intact.
10
+ * See CONTRIBUTING.md § Logging → Mezmo promotion rule.
11
+ */
12
+ export declare function sanitizeMezmoMessage(message: string): string;
13
+ /** True when an MCP SDK `onerror` message is a known client fault that should softFail, not error. */
14
+ export declare function isMcpClientFaultMessage(message: string): boolean;
6
15
  /**
7
16
  * Logs HTTP or MCP errors at the appropriate level:
8
17
  * - Client errors (HTTP < 500, or JSON-RPC client/transient codes) → softFail (no stack).
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAsBpE;AA0BD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAgC9F;AASD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAU3D"}
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAsBpE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AA0BD,sGAAsG;AACtG,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AA0BD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAoC9F;AASD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAU3D"}
@@ -1,5 +1,6 @@
1
1
  import { ErrorCode } from '@modelcontextprotocol/sdk/types.js';
2
2
  import log from '@apify/log';
3
+ import { isActorRunLimitError } from './apify_errors.js';
3
4
  /**
4
5
  * Safely extract HTTP status code from errors.
5
6
  * Checks both `statusCode` and `code` properties for compatibility.
@@ -24,6 +25,41 @@ export function getHttpStatusCode(error) {
24
25
  }
25
26
  return undefined;
26
27
  }
28
+ /**
29
+ * Mezmo (logDNA) promotes a log entry to error level when its message contains the lowercase
30
+ * substring "error". Replace those occurrences with "failure" so soft logs keep their level.
31
+ * Case-sensitive: capitalized `Error`/`ERROR` does not trigger promotion, so leave it intact.
32
+ * See CONTRIBUTING.md § Logging → Mezmo promotion rule.
33
+ */
34
+ export function sanitizeMezmoMessage(message) {
35
+ return message.replace(/error/g, 'failure');
36
+ }
37
+ // Client faults surfaced by the MCP SDK's `onerror` — expected noise, not server bugs.
38
+ // Pinned to @modelcontextprotocol/sdk@1.29.0 — server/webStandardStreamableHttp.js. The SDK calls
39
+ // onerror with a bare `new Error(message)` (no JSON-RPC code, no HTTP status — those go only into
40
+ // createJsonErrorResponse()), so the message text is the only signal here. Match exact literals to
41
+ // avoid catching unrelated libraries' errors. Re-verify these on every SDK bump (the guard test in
42
+ // utils.logging.test.ts fails loudly if a literal drifts).
43
+ const MCP_CLIENT_FAULT_MESSAGES = new Set([
44
+ 'Bad Request: Server not initialized',
45
+ 'Invalid Request: Only one initialization request is allowed',
46
+ 'Not Acceptable: Client must accept text/event-stream',
47
+ 'Not Acceptable: Client must accept both application/json and text/event-stream',
48
+ 'Parse error: Invalid JSON',
49
+ 'Parse error: Invalid JSON-RPC message',
50
+ 'Conflict: Only one SSE stream is allowed per session',
51
+ 'Not connected',
52
+ ]);
53
+ // Transport/runtime disconnects with variable tails — anchored at the start, not substring-anywhere.
54
+ const MCP_CLIENT_FAULT_PREFIXES = [
55
+ 'No connection established for request ID:', // webStandardStreamableHttp.js sendRequest
56
+ 'Failed to send response: Error: Not connected', // send-path wrap
57
+ 'Invalid state: Controller is already closed', // Node web-streams ERR_INVALID_STATE
58
+ ];
59
+ /** True when an MCP SDK `onerror` message is a known client fault that should softFail, not error. */
60
+ export function isMcpClientFaultMessage(message) {
61
+ return MCP_CLIENT_FAULT_MESSAGES.has(message) || MCP_CLIENT_FAULT_PREFIXES.some((p) => message.startsWith(p));
62
+ }
27
63
  /**
28
64
  * Client/caller faults and transient transport conditions that shouldn't trigger error alerts.
29
65
  * Anything else in the JSON-RPC reserved range (-32768..-32000) is treated as a server fault.
@@ -61,9 +97,12 @@ function getMcpErrorCode(error) {
61
97
  export function logHttpError(error, message, data) {
62
98
  const statusCode = getHttpStatusCode(error);
63
99
  const rawErrorMessage = error instanceof Error ? error.message : String(error);
64
- // Mezmo (logDNA) promotes log entries to error level when message/keys contain "error".
65
- // Sanitize for softFail paths (see CONTRIBUTING.md § Logging Mezmo promotion rule).
66
- const softErrMessage = rawErrorMessage.replace(/ error:/gi, ' failure:');
100
+ const softErrMessage = sanitizeMezmoMessage(rawErrorMessage);
101
+ // User concurrent-run / quota limit arrives wrapped as a 500 but is a user billing condition.
102
+ if (isActorRunLimitError(error)) {
103
+ log.softFail(message, { errMessage: softErrMessage, ...data });
104
+ return;
105
+ }
67
106
  if (statusCode !== undefined && statusCode < 500) {
68
107
  // HTTP client errors (< 500) - softFail without stack trace
69
108
  log.softFail(message, { errMessage: softErrMessage, statusCode, ...data });
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/utils/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGrF,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAOtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACtC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;;;;;;;;;EAUA;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACrB,CAmCA;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,GAC5D,IAAI,CACH,2BAA2B,EAC3B,6BAA6B,GAAG,wCAAwC,GAAG,0BAA0B,CACxG,CAOA;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAUjF"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/utils/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIrF,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAOtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACtC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;;;;;;;;;EAUA;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACrB,CAmCA;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,GAC5D,IAAI,CACH,2BAA2B,EAC3B,6BAA6B,GAAG,wCAAwC,GAAG,0BAA0B,CACxG,CAOA;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAajF"}
package/dist/utils/mcp.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { ACTOR_RUN_LIMIT_MESSAGE, isActorRunLimitError } from './apify_errors.js';
1
2
  import { getHttpStatusCode } from './logging.js';
2
3
  /** MCP `_meta` key for Apify Actor run information. Namespaced per MCP spec. */
3
4
  export const APIFY_ACTOR_RUN_META_KEY = 'com.apify/ActorRun';
@@ -96,6 +97,9 @@ export function buildResponseBytesTelemetry(responseBytes) {
96
97
  export function getToolCallErrorUserText(toolName, error) {
97
98
  const msg = error instanceof Error ? error.message : String(error);
98
99
  const status = getHttpStatusCode(error);
100
+ if (isActorRunLimitError(error)) {
101
+ return `Error calling tool "${toolName}": ${msg}. ${ACTOR_RUN_LIMIT_MESSAGE}`;
102
+ }
99
103
  if (status === 403) {
100
104
  return `Error calling tool "${toolName}": ${msg}. The resource may be private or your token may lack access.`;
101
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/utils/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/utils/mcp.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  import type { ApifyClient } from '../apify_client.js';
2
+ /**
3
+ * True for a genuine x402 402 Payment Required. The concurrent-run limit also surfaces as
4
+ * 402 but is an account quota, not an x402 payment — excluded so callers fall through to
5
+ * the run-limit handling.
6
+ */
7
+ export declare function isX402PaymentRequiredError(error: unknown): boolean;
2
8
  /**
3
9
  * Registers an axios response error interceptor on the ApifyClient's internal
4
10
  * HTTP client. When a 402 response is received, the interceptor captures the
@@ -1 +1 @@
1
- {"version":3,"file":"payment_errors.d.ts","sourceRoot":"","sources":["../../src/utils/payment_errors.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAoCtD;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAsBjF;AAyBD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,cAAc,EAAE,OAAO,EAAE,sBAAsB,CAAC,EAAE,OAAO;;;;;;;;;EASrG"}
1
+ {"version":3,"file":"payment_errors.d.ts","sourceRoot":"","sources":["../../src/utils/payment_errors.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQtD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAElE;AAgCD;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAsBjF;AAyBD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,cAAc,EAAE,OAAO,EAAE,sBAAsB,CAAC,EAAE,OAAO;;;;;;;;;EASrG"}
@@ -1,8 +1,18 @@
1
1
  import { ApifyApiError } from 'apify-client';
2
2
  import log from '@apify/log';
3
3
  import { HTTP_PAYMENT_REQUIRED } from '../const.js';
4
+ import { isActorRunLimitError } from './apify_errors.js';
5
+ import { getHttpStatusCode } from './logging.js';
4
6
  import { buildMCPResponse } from './mcp.js';
5
7
  const PAYMENT_REQUIRED_HEADER = 'payment-required';
8
+ /**
9
+ * True for a genuine x402 402 Payment Required. The concurrent-run limit also surfaces as
10
+ * 402 but is an account quota, not an x402 payment — excluded so callers fall through to
11
+ * the run-limit handling.
12
+ */
13
+ export function isX402PaymentRequiredError(error) {
14
+ return getHttpStatusCode(error) === HTTP_PAYMENT_REQUIRED && !isActorRunLimitError(error);
15
+ }
6
16
  /**
7
17
  * Symbol used to attach captured payment-required header data to errors.
8
18
  * The axios response interceptor stores the header value here so it can be
@@ -1 +1 @@
1
- {"version":3,"file":"payment_errors.js","sourceRoot":"","sources":["../../src/utils/payment_errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment_errors.js","sourceRoot":"","sources":["../../src/utils/payment_errors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool_status.d.ts","sourceRoot":"","sources":["../../src/utils/tool_status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAwB,MAAM,aAAa,CAAC;AAIvH;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,UAAU,CAmBrF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAYvE;AASD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,CAoChG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC5B;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,eAAe,EAAE,eAAe,CAAA;CAAE,CA4B9D"}
1
+ {"version":3,"file":"tool_status.d.ts","sourceRoot":"","sources":["../../src/utils/tool_status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAwB,MAAM,aAAa,CAAC;AAKvH;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,UAAU,CAwBrF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAiBvE;AASD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,CAoChG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC5B;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,eAAe,EAAE,eAAe,CAAA;CAAE,CA4B9D"}
@@ -1,5 +1,6 @@
1
1
  import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
2
2
  import { FAILURE_CATEGORY, HTTP_FORBIDDEN, HTTP_NOT_FOUND, HTTP_UNAUTHORIZED, TOOL_STATUS } from '../const.js';
3
+ import { isActorRunLimitError } from './apify_errors.js';
3
4
  import { getHttpStatusCode } from './logging.js';
4
5
  import { buildActorFields } from './tools.js';
5
6
  /**
@@ -13,6 +14,10 @@ export function getToolStatusFromError(error, isAborted) {
13
14
  if (isAborted) {
14
15
  return TOOL_STATUS.ABORTED;
15
16
  }
17
+ // Account run-limit is a user billing condition even when it arrives wrapped as a 5xx.
18
+ if (isActorRunLimitError(error)) {
19
+ return TOOL_STATUS.SOFT_FAIL;
20
+ }
16
21
  const statusCode = getHttpStatusCode(error);
17
22
  // HTTP client errors (4xx) are treated as user errors
18
23
  if (statusCode !== undefined && statusCode >= 400 && statusCode < 500) {
@@ -29,6 +34,10 @@ export function classifyFailureCategory(error) {
29
34
  if (error instanceof McpError && error.code === ErrorCode.InvalidParams) {
30
35
  return FAILURE_CATEGORY.INVALID_INPUT;
31
36
  }
37
+ // Account run-limit is a user billing condition even when it arrives wrapped as a 5xx.
38
+ if (isActorRunLimitError(error)) {
39
+ return FAILURE_CATEGORY.INVALID_INPUT;
40
+ }
32
41
  const statusCode = getHttpStatusCode(error);
33
42
  if (statusCode === HTTP_UNAUTHORIZED || statusCode === HTTP_FORBIDDEN)
34
43
  return FAILURE_CATEGORY.AUTH;
@@ -1 +1 @@
1
- {"version":3,"file":"tool_status.js","sourceRoot":"","sources":["../../src/utils/tool_status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool_status.js","sourceRoot":"","sources":["../../src/utils/tool_status.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apify/actors-mcp-server",
3
- "version": "0.11.2-beta.0",
3
+ "version": "0.11.2-beta.1",
4
4
  "type": "module",
5
5
  "description": "Apify MCP Server",
6
6
  "mcpName": "com.apify/apify-mcp-server",