@apify/actors-mcp-server 0.15.4-beta.3 → 0.15.4-beta.5

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.
@@ -0,0 +1,16 @@
1
+ import type { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
+ /** Closed outcome union for {@link withRemoteMcpClient}. */
3
+ export type RemoteMcpCallOutcome<T> = {
4
+ outcome: 'connect-failed';
5
+ } | {
6
+ outcome: 'aborted';
7
+ } | {
8
+ outcome: 'error';
9
+ error: unknown;
10
+ } | {
11
+ outcome: 'success';
12
+ value: T;
13
+ };
14
+ /** Connect, run the callback with the live client, always close. */
15
+ export declare function withRemoteMcpClient<T>(serverUrl: string, apifyToken: string, mcpSessionId: string | undefined, signal: AbortSignal, run: (client: Client) => Promise<T>): Promise<RemoteMcpCallOutcome<T>>;
16
+ //# sourceMappingURL=remote_tool_call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote_tool_call.d.ts","sourceRoot":"","sources":["../../src/mcp/remote_tool_call.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAIxE,4DAA4D;AAC5D,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAC5B;IAAE,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC7B;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,GACtB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACpC;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAEvC,oEAAoE;AACpE,wBAAsB,mBAAmB,CAAC,CAAC,EACvC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACpC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAgBlC"}
@@ -0,0 +1,24 @@
1
+ import { connectMCPClient } from './client.js';
2
+ /** Connect, run the callback with the live client, always close. */
3
+ export async function withRemoteMcpClient(serverUrl, apifyToken, mcpSessionId, signal, run) {
4
+ let client = null;
5
+ try {
6
+ client = await connectMCPClient(serverUrl, apifyToken, mcpSessionId);
7
+ if (!client)
8
+ return { outcome: 'connect-failed' };
9
+ return { outcome: 'success', value: await run(client) };
10
+ }
11
+ catch (error) {
12
+ if (signal.aborted) {
13
+ // Yield a macrotask so the SDK's fire-and-forget notifications/cancelled flushes before close() aborts it.
14
+ await new Promise((resolve) => setImmediate(resolve));
15
+ return { outcome: 'aborted' };
16
+ }
17
+ return { outcome: 'error', error };
18
+ }
19
+ finally {
20
+ if (client)
21
+ await client.close();
22
+ }
23
+ }
24
+ //# sourceMappingURL=remote_tool_call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote_tool_call.js","sourceRoot":"","sources":["../../src/mcp/remote_tool_call.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAS/C,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,SAAiB,EACjB,UAAkB,EAClB,YAAgC,EAChC,MAAmB,EACnB,GAAmC;IAEnC,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,2GAA2G;YAC3G,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACtD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;YAAS,CAAC;QACP,IAAI,MAAM;YAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool_dispatch.d.ts","sourceRoot":"","sources":["../../src/mcp/tool_dispatch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAM7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAMlE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC3C,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,eAAe,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAC1D,0BAA0B,EAAE,OAAO,CAAC;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,gBAAgB,EAAE,CAAC,YAAY,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,OAAO,EAAE,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,uFAAuF;IACvF,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAGlB,UAAU,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC3E,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,eAAe,EAAE,eAAe,CAAA;CAAE,CAAC,CAiOzG"}
1
+ {"version":3,"file":"tool_dispatch.d.ts","sourceRoot":"","sources":["../../src/mcp/tool_dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAM7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAOlE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC3C,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,eAAe,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAC1D,0BAA0B,EAAE,OAAO,CAAC;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,gBAAgB,EAAE,CAAC,YAAY,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,OAAO,EAAE,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,uFAAuF;IACvF,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAGlB,UAAU,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC3E,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,UAAU,EAAE,UAAU,CAAC;IAAC,eAAe,EAAE,eAAe,CAAA;CAAE,CAAC,CAwOzG"}
@@ -9,8 +9,8 @@ import { logHttpError } from '../utils/logging.js';
9
9
  import { respondErrorNoTelemetry } from '../utils/mcp.js';
10
10
  import { applyToolTelemetry, buildExecutionDiagnostics } from '../utils/tool_status.js';
11
11
  import { buildActorFields } from '../utils/tools.js';
12
- import { connectMCPClient } from './client.js';
13
12
  import { EXTERNAL_TOOL_CALL_TIMEOUT_MSEC } from './const.js';
13
+ import { withRemoteMcpClient } from './remote_tool_call.js';
14
14
  /**
15
15
  * Runs a validated tool call through the single tool-type dispatch switch and returns the raw
16
16
  * result plus derived telemetry. The exhaustive switch turns a future 4th TOOL_TYPE into a compile
@@ -32,7 +32,7 @@ import { EXTERNAL_TOOL_CALL_TIMEOUT_MSEC } from './const.js';
32
32
  * side-channel for ACTOR_MCP connect failures; shells without a transport may pass a no-op.
33
33
  */
34
34
  export async function dispatchToolCall(params) {
35
- var _a, _b, _c;
35
+ var _a, _b;
36
36
  const { tool, toolArgs, logSafeArgs, apifyToken, apifyClient, mcpSessionId, progressToken, progressTracker, shouldForwardNotifications, signal, sendNotification, emitLog, actorStore, paymentProvider, tools, actorName, actorId, taskMode, logContext, } = params;
37
37
  let result = {};
38
38
  let toolStatus = TOOL_STATUS.SUCCEEDED;
@@ -74,40 +74,22 @@ export async function dispatchToolCall(params) {
74
74
  // means the outer completeTask stores it via the 'completed' path (isError body) —
75
75
  // deliberately matching sync's own soft-fail semantics, unlike ACTOR/INTERNAL, whose
76
76
  // thrown errors land in the task caller's 'failed' path.
77
- let client = null;
78
- try {
79
- client = await connectMCPClient(tool.serverUrl, apifyToken, mcpSessionId);
80
- if (!client) {
81
- const msg = dedent `
82
- Failed to connect to MCP server at "${tool.serverUrl}".
83
- Please verify the server URL is correct and accessible, and ensure you have a valid Apify token with appropriate permissions.
84
- `;
85
- log.softFail(msg, { mcpSessionId, failureCategory: FAILURE_CATEGORY.INTERNAL_ERROR });
86
- await emitLog({ level: 'error', data: msg });
87
- toolStatus = TOOL_STATUS.SOFT_FAIL;
88
- callDiagnostics = { ...callDiagnostics, failure_category: FAILURE_CATEGORY.INTERNAL_ERROR };
89
- result = respondErrorNoTelemetry(msg);
90
- break;
91
- }
92
- // Only set up notification handlers if progressToken is provided by the client.
93
- // Gated off for tasks (shouldForwardNotifications=false): the originating request is
94
- // already answered, so forwarding against its progressToken would misroute.
95
- if (shouldForwardNotifications && progressToken !== undefined && progressToken !== null) {
96
- // Set up notification handlers for the client
77
+ // Gated off for tasks (shouldForwardNotifications=false): the originating request is
78
+ // already answered, so forwarding against its progressToken would misroute.
79
+ const shouldForward = shouldForwardNotifications && progressToken !== undefined && progressToken !== null;
80
+ const outcome = await withRemoteMcpClient(tool.serverUrl, apifyToken, mcpSessionId, signal, async (client) => {
81
+ var _a;
82
+ if (shouldForward) {
97
83
  for (const schema of ServerNotificationSchema.options) {
98
84
  const method = schema.shape.method.value;
99
85
  // Forward notifications from the proxy client to the server
100
86
  client.setNotificationHandler(schema, async (notification) => {
101
- log.debug('Sending MCP notification', {
102
- method,
103
- mcpSessionId,
104
- notification,
105
- });
87
+ log.debug('Sending MCP notification', { method, mcpSessionId, notification });
106
88
  await sendNotification(notification);
107
89
  });
108
90
  }
109
91
  }
110
- log.info(`Calling Actor-MCP${(_b = logContext === null || logContext === void 0 ? void 0 : logContext.messageSuffix) !== null && _b !== void 0 ? _b : ''}`, {
92
+ log.info(`Calling Actor-MCP${(_a = logContext === null || logContext === void 0 ? void 0 : logContext.messageSuffix) !== null && _a !== void 0 ? _a : ''}`, {
111
93
  ...logContext === null || logContext === void 0 ? void 0 : logContext.fields,
112
94
  toolName: tool.name,
113
95
  actorMcpToolName: tool.originToolName,
@@ -115,62 +97,74 @@ export async function dispatchToolCall(params) {
115
97
  mcpSessionId,
116
98
  input: logSafeArgs,
117
99
  });
118
- const res = await client.callTool({
100
+ return client.callTool({
119
101
  name: tool.originToolName,
120
102
  arguments: toolArgs,
121
103
  // Without forwarding there is no route back for remote progress — don't
122
104
  // hand the remote a token nobody listens to.
123
- ...(shouldForwardNotifications ? { _meta: { progressToken } } : {}),
124
- }, CallToolResultSchema, {
125
- timeout: EXTERNAL_TOOL_CALL_TIMEOUT_MSEC,
126
- signal,
127
- });
128
- // TODO: actor-mcp responses are opaque — isError could be a user input problem
129
- // (e.g. invalid query) or a genuine server failure. We can't distinguish without
130
- // parsing the error text. Defaulting to INTERNAL_ERROR for now; revisit when
131
- // actor-mcp gets deeper telemetry treatment.
132
- if ('isError' in res && res.isError) {
105
+ ...(shouldForward ? { _meta: { progressToken } } : {}),
106
+ }, CallToolResultSchema, { timeout: EXTERNAL_TOOL_CALL_TIMEOUT_MSEC, signal });
107
+ });
108
+ switch (outcome.outcome) {
109
+ case 'connect-failed': {
110
+ const msg = dedent `
111
+ Failed to connect to MCP server at "${tool.serverUrl}".
112
+ Please verify the server URL is correct and accessible, and ensure you have a valid Apify token with appropriate permissions.
113
+ `;
114
+ log.softFail(msg, { mcpSessionId, failureCategory: FAILURE_CATEGORY.INTERNAL_ERROR });
115
+ await emitLog({ level: 'error', data: msg });
133
116
  toolStatus = TOOL_STATUS.SOFT_FAIL;
134
- callDiagnostics = {
135
- failure_category: FAILURE_CATEGORY.INTERNAL_ERROR,
136
- ...buildActorFields(actorName, actorId),
137
- };
117
+ callDiagnostics = { ...callDiagnostics, failure_category: FAILURE_CATEGORY.INTERNAL_ERROR };
118
+ result = respondErrorNoTelemetry(msg);
119
+ break;
138
120
  }
139
- result = { ...res };
140
- }
141
- catch (error) {
142
- if (signal.aborted) {
143
- // Yield a macrotask first: the SDK sends notifications/cancelled fire-and-forget on
144
- // the transport's AbortController, which the finally's close() would abort.
145
- await new Promise((resolve) => setImmediate(resolve));
146
- // Same as the ACTOR branch below: a cancelled request gets no response, and a
147
- // cancel is not a failure — so no error body, no failure_* fields, no error log.
121
+ case 'aborted': {
122
+ // Cancel isn't failure: no response body, no failure_* fields, no error log (mirrors ACTOR below).
148
123
  toolStatus = TOOL_STATUS.ABORTED;
149
124
  result = {};
150
125
  break;
151
126
  }
152
- ({ toolStatus, callDiagnostics } = buildExecutionDiagnostics({
153
- error,
154
- isAborted: Boolean(signal.aborted),
155
- actorName,
156
- actorId,
157
- }));
158
- logHttpError(error, `Failed to call MCP tool '${tool.originToolName}' on Actor '${tool.actorId}'`, {
159
- actorId: tool.actorId,
160
- toolName: tool.originToolName,
161
- failureCategory: callDiagnostics.failure_category,
162
- });
163
- result = respondErrorNoTelemetry(`Failed to call MCP tool '${tool.originToolName}' on Actor '${tool.actorId}': ${remoteMcpFailureDetail(error)}`);
164
- }
165
- finally {
166
- if (client)
167
- await client.close();
127
+ case 'error': {
128
+ ({ toolStatus, callDiagnostics } = buildExecutionDiagnostics({
129
+ error: outcome.error,
130
+ isAborted: false,
131
+ actorName,
132
+ actorId,
133
+ }));
134
+ logHttpError(outcome.error, `Failed to call MCP tool '${tool.originToolName}' on Actor '${tool.actorId}'`, {
135
+ actorId: tool.actorId,
136
+ toolName: tool.originToolName,
137
+ failureCategory: callDiagnostics.failure_category,
138
+ });
139
+ result = respondErrorNoTelemetry(`Failed to call MCP tool '${tool.originToolName}' on Actor '${tool.actorId}': ${remoteMcpFailureDetail(outcome.error)}`);
140
+ break;
141
+ }
142
+ case 'success': {
143
+ // TODO: actor-mcp responses are opaque — isError could be a user input problem
144
+ // (e.g. invalid query) or a genuine server failure. We can't distinguish without
145
+ // parsing the error text. Defaulting to INTERNAL_ERROR for now; revisit when
146
+ // actor-mcp gets deeper telemetry treatment.
147
+ if ('isError' in outcome.value && outcome.value.isError) {
148
+ toolStatus = TOOL_STATUS.SOFT_FAIL;
149
+ callDiagnostics = {
150
+ failure_category: FAILURE_CATEGORY.INTERNAL_ERROR,
151
+ ...buildActorFields(actorName, actorId),
152
+ };
153
+ }
154
+ result = { ...outcome.value };
155
+ break;
156
+ }
157
+ default:
158
+ // Exhaustiveness guard mirroring the outer TOOL_TYPE switch: a new outcome
159
+ // variant makes `outcome` non-`never` here and fails `satisfies never` at
160
+ // compile time. Unreachable at runtime — RemoteMcpCallOutcome is a closed union.
161
+ throw new Error(`Unknown outcome "${outcome.outcome}"`);
168
162
  }
169
163
  break;
170
164
  }
171
165
  case TOOL_TYPE.ACTOR: {
172
166
  try {
173
- log.info(`Calling Actor${(_c = logContext === null || logContext === void 0 ? void 0 : logContext.messageSuffix) !== null && _c !== void 0 ? _c : ''}`, {
167
+ log.info(`Calling Actor${(_b = logContext === null || logContext === void 0 ? void 0 : logContext.messageSuffix) !== null && _b !== void 0 ? _b : ''}`, {
174
168
  ...logContext === null || logContext === void 0 ? void 0 : logContext.fields,
175
169
  toolName: tool.name,
176
170
  actorName: tool.actorFullName,
@@ -1 +1 @@
1
- {"version":3,"file":"tool_dispatch.js","sourceRoot":"","sources":["../../src/mcp/tool_dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool_dispatch.js","sourceRoot":"","sources":["../../src/mcp/tool_dispatch.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,6 @@ import type { Implementation } from '@modelcontextprotocol/sdk/types.js';
2
2
  import type { ServerCard } from './types.js';
3
3
  /** Returns the `serverInfo` (MCP `Implementation`) advertised in the initialize response. */
4
4
  export declare function getServerInfo(): Implementation;
5
- /** Returns the MCP server card object per SEP-1649. */
5
+ /** Returns the MCP server card object. See {@link ServerCard} for why it is a hybrid shape. */
6
6
  export declare function getServerCard(): ServerCard;
7
7
  //# sourceMappingURL=server_card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server_card.d.ts","sourceRoot":"","sources":["../src/server_card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAWzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,6FAA6F;AAC7F,wBAAgB,aAAa,IAAI,cAAc,CAe9C;AAED,uDAAuD;AACvD,wBAAgB,aAAa,IAAI,UAAU,CA0B1C"}
1
+ {"version":3,"file":"server_card.d.ts","sourceRoot":"","sources":["../src/server_card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAYzE,OAAO,KAAK,EAAE,UAAU,EAA0D,MAAM,YAAY,CAAC;AAgCrG,6FAA6F;AAC7F,wBAAgB,aAAa,IAAI,cAAc,CAS9C;AAkBD,+FAA+F;AAC/F,wBAAgB,aAAa,IAAI,UAAU,CAoC1C"}
@@ -1,8 +1,27 @@
1
1
  import { LATEST_PROTOCOL_VERSION } from '@modelcontextprotocol/sdk/types.js';
2
- import { APIFY_DOCS_MCP_URL, APIFY_FAVICON_URL, APIFY_LOGO_URL, APIFY_MCP_URL, SERVER_NAME, SERVER_TITLE, } from './const.js';
2
+ import { APIFY_DOCS_MCP_URL, APIFY_FAVICON_URL, APIFY_LOGO_URL, APIFY_MCP_URL, HELPER_TOOLS, SERVER_NAME, SERVER_TITLE, } from './const.js';
3
+ import { SERVER_MODE } from './types.js';
3
4
  import { readJsonFile } from './utils/generic.js';
5
+ import { getToolsForServerMode } from './utils/tools_loader.js';
4
6
  import { getPackageVersion } from './utils/version.js';
7
+ /**
8
+ * The registry-shaped half of the server card lives in `server.json`, which is already the
9
+ * source of truth for registry publishing and is version-bumped by the release workflow.
10
+ * Reading it here keeps the card from drifting out of sync with what we publish.
11
+ */
5
12
  const serverJson = readJsonFile(import.meta.url, '../server.json');
13
+ /**
14
+ * Server icon, shared by the initialize response and the server card so the two cannot diverge.
15
+ * PNG rather than the `.ico` favicon: the registry schema restricts `icons[].mimeType` to
16
+ * png/jpeg/jpg/svg+xml/webp.
17
+ */
18
+ const SERVER_ICONS = [
19
+ {
20
+ src: APIFY_LOGO_URL,
21
+ mimeType: 'image/png',
22
+ sizes: ['180x180'],
23
+ },
24
+ ];
6
25
  /** Returns the `serverInfo` (MCP `Implementation`) advertised in the initialize response. */
7
26
  export function getServerInfo() {
8
27
  return {
@@ -10,28 +29,44 @@ export function getServerInfo() {
10
29
  title: SERVER_TITLE,
11
30
  version: getPackageVersion(),
12
31
  description: serverJson.description,
13
- websiteUrl: APIFY_MCP_URL,
14
- icons: [
15
- {
16
- src: APIFY_LOGO_URL,
17
- mimeType: 'image/png',
18
- sizes: ['180x180'],
19
- },
20
- ],
32
+ websiteUrl: APIFY_DOCS_MCP_URL,
33
+ icons: [...SERVER_ICONS],
21
34
  };
22
35
  }
23
- /** Returns the MCP server card object per SEP-1649. */
36
+ /**
37
+ * Summarises the tools a default session serves. `getDefaultTools()` under-reports — it omits
38
+ * what `call-actor` pulls in — and `report-problem` is client-gated at serve time, so a static
39
+ * card cannot carry it. Each tool's plain `description` is by contract the session-less render.
40
+ */
41
+ function getServerCardTools() {
42
+ return getToolsForServerMode({}, [], SERVER_MODE.DEFAULT)
43
+ .filter((tool) => tool.name !== HELPER_TOOLS.PROBLEM_REPORT)
44
+ .map((tool) => ({
45
+ name: tool.name,
46
+ title: tool.title,
47
+ description: tool.description,
48
+ annotations: tool.annotations,
49
+ }));
50
+ }
51
+ /** Returns the MCP server card object. See {@link ServerCard} for why it is a hybrid shape. */
24
52
  export function getServerCard() {
25
53
  return {
26
- $schema: 'https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json',
27
- version: '1.0',
54
+ $schema: serverJson.$schema,
55
+ name: serverJson.name,
56
+ title: SERVER_TITLE,
57
+ description: serverJson.description,
58
+ version: getPackageVersion(),
59
+ websiteUrl: APIFY_DOCS_MCP_URL,
60
+ repository: serverJson.repository,
61
+ icons: [...SERVER_ICONS],
62
+ remotes: serverJson.remotes,
63
+ serverUrl: APIFY_MCP_URL,
28
64
  protocolVersion: LATEST_PROTOCOL_VERSION,
29
65
  serverInfo: {
30
66
  name: SERVER_NAME,
31
67
  title: SERVER_TITLE,
32
68
  version: getPackageVersion(),
33
69
  },
34
- description: serverJson.description,
35
70
  iconUrl: APIFY_FAVICON_URL,
36
71
  documentationUrl: APIFY_DOCS_MCP_URL,
37
72
  transport: {
@@ -45,7 +80,7 @@ export function getServerCard() {
45
80
  required: true,
46
81
  schemes: ['bearer', 'oauth2'],
47
82
  },
48
- tools: 'dynamic',
83
+ tools: getServerCardTools(),
49
84
  };
50
85
  }
51
86
  //# sourceMappingURL=server_card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server_card.js","sourceRoot":"","sources":["../src/server_card.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,OAAO,EACH,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,YAAY,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,GAAG,YAAY,CAA0B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAE5F,6FAA6F;AAC7F,MAAM,UAAU,aAAa;IACzB,OAAO;QACH,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,iBAAiB,EAAG;QAC7B,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,UAAU,EAAE,aAAa;QACzB,KAAK,EAAE;YACH;gBACI,GAAG,EAAE,cAAc;gBACnB,QAAQ,EAAE,WAAW;gBACrB,KAAK,EAAE,CAAC,SAAS,CAAC;aACrB;SACJ;KACJ,CAAC;AACN,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,aAAa;IACzB,OAAO;QACH,OAAO,EAAE,wEAAwE;QACjF,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,uBAAuB;QACxC,UAAU,EAAE;YACR,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,iBAAiB,EAAG;SAChC;QACD,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,OAAO,EAAE,iBAAiB;QAC1B,gBAAgB,EAAE,kBAAkB;QACpC,SAAS,EAAE;YACP,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,GAAG;SAChB;QACD,YAAY,EAAE;YACV,KAAK,EAAE,EAAE;SACZ;QACD,cAAc,EAAE;YACZ,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;SAChC;QACD,KAAK,EAAE,SAAS;KACnB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"server_card.js","sourceRoot":"","sources":["../src/server_card.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,OAAO,EACH,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,UAAU,GAAG,YAAY,CAM5B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAEtC;;;;GAIG;AACH,MAAM,YAAY,GAAwB;IACtC;QACI,GAAG,EAAE,cAAc;QACnB,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE,CAAC,SAAS,CAAC;KACrB;CACJ,CAAC;AAEF,6FAA6F;AAC7F,MAAM,UAAU,aAAa;IACzB,OAAO;QACH,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,iBAAiB,EAAG;QAC7B,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,UAAU,EAAE,kBAAkB;QAC9B,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC;KAC3B,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB;IACvB,OAAO,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC;SACpD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,cAAc,CAAC;SAC3D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACZ,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;KAChC,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,aAAa;IACzB,OAAO;QACH,OAAO,EAAE,UAAU,CAAC,OAAO;QAE3B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,OAAO,EAAE,iBAAiB,EAAG;QAC7B,UAAU,EAAE,kBAAkB;QAC9B,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC;QACxB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,SAAS,EAAE,aAAa;QAExB,eAAe,EAAE,uBAAuB;QACxC,UAAU,EAAE;YACR,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,iBAAiB,EAAG;SAChC;QACD,OAAO,EAAE,iBAAiB;QAC1B,gBAAgB,EAAE,kBAAkB;QACpC,SAAS,EAAE;YACP,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,GAAG;SAChB;QACD,YAAY,EAAE;YACV,KAAK,EAAE,EAAE;SACZ;QACD,cAAc,EAAE;YACZ,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;SAChC;QAED,KAAK,EAAE,kBAAkB,EAAE;KAC9B,CAAC;AACN,CAAC"}