@apify/actors-mcp-server 0.17.5-beta.9 → 0.18.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +2 -2
  2. package/dist/dev_server.d.ts +1 -5
  3. package/dist/dev_server.d.ts.map +1 -1
  4. package/dist/dev_server.js +106 -208
  5. package/dist/dev_server.js.map +1 -1
  6. package/dist/mcp/server.d.ts +1 -1
  7. package/dist/mcp/server.js +1 -1
  8. package/dist/test_kit/cases/actors.cases.js +62 -62
  9. package/dist/test_kit/cases/actors.cases.js.map +1 -1
  10. package/dist/test_kit/cases/apps.cases.d.ts.map +1 -1
  11. package/dist/test_kit/cases/apps.cases.js +24 -28
  12. package/dist/test_kit/cases/apps.cases.js.map +1 -1
  13. package/dist/test_kit/cases/payments.cases.js +13 -13
  14. package/dist/test_kit/cases/payments.cases.js.map +1 -1
  15. package/dist/test_kit/cases/registration.cases.d.ts.map +1 -1
  16. package/dist/test_kit/cases/registration.cases.js +58 -53
  17. package/dist/test_kit/cases/registration.cases.js.map +1 -1
  18. package/dist/test_kit/cases/schedules.cases.js +1 -1
  19. package/dist/test_kit/cases/storage.cases.js +26 -26
  20. package/dist/test_kit/cases/storage.cases.js.map +1 -1
  21. package/dist/test_kit/cases/tasks.cases.d.ts.map +1 -1
  22. package/dist/test_kit/cases/tasks.cases.js +3 -4
  23. package/dist/test_kit/cases/tasks.cases.js.map +1 -1
  24. package/dist/test_kit/cases/tools.cases.d.ts.map +1 -1
  25. package/dist/test_kit/cases/tools.cases.js +14 -14
  26. package/dist/test_kit/cases/tools.cases.js.map +1 -1
  27. package/dist/test_kit/helpers.d.ts.map +1 -1
  28. package/dist/test_kit/helpers.js +2 -2
  29. package/dist/test_kit/helpers.js.map +1 -1
  30. package/dist/test_kit/tsconfig.tsbuildinfo +1 -1
  31. package/dist/tools/actors/call_actor.js +2 -2
  32. package/dist/tools/actors/call_actor.js.map +1 -1
  33. package/dist/tools/actors/fetch_actor_details.js +2 -2
  34. package/dist/tools/actors/fetch_actor_details.js.map +1 -1
  35. package/dist/tools/api/apify_api_blocklist.d.ts +35 -0
  36. package/dist/tools/api/apify_api_blocklist.d.ts.map +1 -0
  37. package/dist/tools/api/apify_api_blocklist.js +114 -0
  38. package/dist/tools/api/apify_api_blocklist.js.map +1 -0
  39. package/dist/tools/api/apify_api_details.d.ts.map +1 -1
  40. package/dist/tools/api/apify_api_details.js +2 -1
  41. package/dist/tools/api/apify_api_details.js.map +1 -1
  42. package/dist/tools/api/apify_api_path.d.ts +9 -0
  43. package/dist/tools/api/apify_api_path.d.ts.map +1 -0
  44. package/dist/tools/api/apify_api_path.js +11 -0
  45. package/dist/tools/api/apify_api_path.js.map +1 -0
  46. package/dist/tools/api/apify_api_read.d.ts.map +1 -1
  47. package/dist/tools/api/apify_api_read.js +6 -5
  48. package/dist/tools/api/apify_api_read.js.map +1 -1
  49. package/dist/tools/api/apify_api_request.d.ts +2 -4
  50. package/dist/tools/api/apify_api_request.d.ts.map +1 -1
  51. package/dist/tools/api/apify_api_request.js +15 -11
  52. package/dist/tools/api/apify_api_request.js.map +1 -1
  53. package/dist/tools/api/apify_api_spec.d.ts +5 -3
  54. package/dist/tools/api/apify_api_spec.d.ts.map +1 -1
  55. package/dist/tools/api/apify_api_spec.js +6 -4
  56. package/dist/tools/api/apify_api_spec.js.map +1 -1
  57. package/dist/tools/api/apify_api_write.d.ts.map +1 -1
  58. package/dist/tools/api/apify_api_write.js +11 -6
  59. package/dist/tools/api/apify_api_write.js.map +1 -1
  60. package/dist/tsconfig.tsbuildinfo +1 -1
  61. package/dist/types.d.ts +1 -1
  62. package/dist/types.d.ts.map +1 -1
  63. package/manifest.json +1 -1
  64. package/package.json +1 -1
  65. package/server.json +1 -1
package/README.md CHANGED
@@ -301,8 +301,8 @@ Legend for the **Enabled by default** column:
301
301
  | `get-actor-version` | source | Get an Actor version's file listing with hashes and the content of the files you ask for. | |
302
302
  | `apify-api-search` | api | Search the Apify API reference for operations by keywords. Returns each one's method, path, and docs page. | |
303
303
  | `apify-api-details` | api | Get the parameters and request body schema of the Apify API operations on a path. | |
304
- | `apify-api-read` | api | Send a GET request to any Apify API path, such as `actor-runs` or `/v2/actor-runs`, like `apify api` in the Apify CLI. | |
305
- | `apify-api-write` | none (select by name: `tools=apify-api-write`) | Send a POST, PUT, PATCH, or DELETE request to any Apify API path, with a JSON body, like `apify api` in the Apify CLI. | |
304
+ | `apify-api-read` | api | Send a GET request to an Apify API path, such as `actor-runs` or `/v2/actor-runs`, like `apify api` in the Apify CLI. Read-only: it refuses the `method` query parameter and a GET to the synchronous run endpoints, which starts a paid run. | |
305
+ | `apify-api-write` | none (select by name: `tools=apify-api-write`) | Send a POST, PUT, PATCH, or DELETE request to any Apify API path, with a JSON body, like `apify api` in the Apify CLI. It refuses the `method` query parameter. | |
306
306
 
307
307
  > **Note:**
308
308
  >
@@ -24,11 +24,7 @@ export declare function extractInitializeMessage(body: unknown): {
24
24
  method: string;
25
25
  params?: unknown;
26
26
  } | undefined;
27
- /**
28
- * Type-safe extraction of `initialize` params for `buildMcpClientContext`/request-origin.
29
- * Malformed params parse to `undefined` (client context stays unset) rather than being cast
30
- * unchecked — the SDK validates the full request separately once it takes over below.
31
- */
27
+ /** Malformed params parse to `undefined`; the SDK validates the full request itself. */
32
28
  export declare function parseInitializeParams(params: unknown): InitializeRequestParams | undefined;
33
29
  export {};
34
30
  //# sourceMappingURL=dev_server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev_server.d.ts","sourceRoot":"","sources":["../src/dev_server.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAKlF,OAAO,OAAO,MAAM,SAAS,CAAC;AA+F9B,kGAAkG;AAClG,KAAK,kBAAkB,GAAG;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAIlF;AA4FD,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAsNlD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAMxG;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAG1F"}
1
+ {"version":3,"file":"dev_server.d.ts","sourceRoot":"","sources":["../src/dev_server.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAKlF,OAAO,OAAO,MAAM,SAAS,CAAC;AAoG9B,kGAAkG;AAClG,KAAK,kBAAkB,GAAG;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAIlF;AAqFD,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAwHlD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAMxG;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAG1F"}
@@ -16,7 +16,7 @@ import { localhostHostValidation, localhostOriginValidation, toNodeHandler, toWe
16
16
  import { InMemoryTaskStore } from '@modelcontextprotocol/sdk/experimental/tasks/stores/in-memory.js';
17
17
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
18
18
  import { InitializeRequestParamsSchema } from '@modelcontextprotocol/sdk/types.js';
19
- import { createMcpHandler, isLegacyRequest } from '@modelcontextprotocol/server';
19
+ import { createMcpHandler, isLegacyRequest, SUPPORTED_PROTOCOL_VERSIONS } from '@modelcontextprotocol/server';
20
20
  import express from 'express';
21
21
  import log from '@apify/log';
22
22
  import { parseBooleanOrNull } from '@apify/utilities';
@@ -25,7 +25,7 @@ import { buildMcpClientContext } from './mcp/client_context.js';
25
25
  import { ActorsMcpServer } from './mcp/server.js';
26
26
  import { createStatelessServer } from './mcp/stateless_server.js';
27
27
  import { resolvePaymentProvider } from './payments/index.js';
28
- import { sanitizeMezmoMessage } from './utils/logging.js';
28
+ import { sanitizeMezmoMessage, toPlainError } from './utils/logging.js';
29
29
  import { injectMcpSessionId } from './utils/mcp.js';
30
30
  import { getRequestOriginForClient } from './utils/mcp_clients.js';
31
31
  import { parseServerMode } from './utils/server_mode.js';
@@ -39,15 +39,8 @@ import { parseServerMode } from './utils/server_mode.js';
39
39
  // analytics. Still overridable by an explicit TELEMETRY_ENV (e.g. PROD) in the env.
40
40
  (_a = (_c = process.env).TELEMETRY_ENV) !== null && _a !== void 0 ? _a : (_c.TELEMETRY_ENV = 'DEV');
41
41
  /**
42
- * Extracts the Apify API token from the incoming request.
43
- *
44
- * Mirrors `apify-mcp-server-internal`'s `extractApiTokenFromRequest` so the
45
- * dev server behaves identically to production for auth/payment routing:
46
- * 1. `authorization: Bearer <token>` header
47
- * 2. `?token=<token>` query parameter
48
- *
49
- * Returns `undefined` if no valid token is present. The caller decides whether
50
- * a missing token is an error (no payment provider) or expected (payment mode).
42
+ * Mirrors `apify-mcp-server-internal`'s `extractApiTokenFromRequest`: the `Authorization: Bearer`
43
+ * header, then the `?token=` query parameter.
51
44
  */
52
45
  function extractApiTokenFromRequest(req) {
53
46
  var _a;
@@ -69,22 +62,14 @@ function extractApiTokenFromRequest(req) {
69
62
  return undefined;
70
63
  }
71
64
  }
65
+ function buildJsonRpcError(code, message) {
66
+ return { jsonrpc: '2.0', error: { code, message }, id: null };
67
+ }
72
68
  /** The 401 body both eras send for a missing token, JSON-RPC-shaped like production's. */
73
- const UNAUTHORIZED_RESPONSE_BODY = {
74
- jsonrpc: '2.0',
75
- error: {
76
- code: -32001,
77
- message: 'Unauthorized: Apify API token is missing. Pass it as `Authorization: Bearer <token>`, or set `?payment=<provider>` to use a third-party payment provider.',
78
- },
79
- id: null,
80
- };
69
+ const UNAUTHORIZED_RESPONSE_BODY = buildJsonRpcError(-32001, 'Unauthorized: Apify API token is missing. Pass it as `Authorization: Bearer <token>`, or set `?payment=<provider>` to use a third-party payment provider.');
81
70
  /**
82
- * `WWW-Authenticate` challenge sent with that 401 (RFC 6750 §3), so a client is told how to
83
- * authenticate and not merely that it failed. Same shape the SDK's `bearerAuthChallengeResponse`
84
- * emits for a missing header, hand-written because that helper needs an OAuth token verifier and a
85
- * protected-resource-metadata URL, and this server takes plain Apify API tokens with no PRM endpoint.
86
- * Limitation: no `resource_metadata` parameter, so the token source is discoverable only by a human
87
- * reading the description.
71
+ * `WWW-Authenticate` challenge sent with that 401 (RFC 6750 §3). Hand-written because the SDK's
72
+ * `bearerAuthChallengeResponse` answers with an OAuth error body, not the JSON-RPC body production sends.
88
73
  */
89
74
  const UNAUTHORIZED_CHALLENGE = 'Bearer error="invalid_token", error_description="Apify API token missing. Create one at https://console.apify.com/settings/integrations"';
90
75
  /**
@@ -101,6 +86,19 @@ function resolveRequestAuth(req, res, paymentProvider) {
101
86
  res.status(401).set('WWW-Authenticate', UNAUTHORIZED_CHALLENGE).json(UNAUTHORIZED_RESPONSE_BODY);
102
87
  return null;
103
88
  }
89
+ /** Server settings both eras read from URL params, falling back to env vars like production does. */
90
+ async function parseUrlParams(req) {
91
+ var _a, _b, _c;
92
+ const urlParams = new URL(req.url, `http://${req.headers.host}`).searchParams;
93
+ const uiParam = urlParams.get('ui');
94
+ return {
95
+ telemetryEnabled: (_b = (_a = parseBooleanOrNull(urlParams.get('telemetry-enabled'))) !== null && _a !== void 0 ? _a : parseBooleanOrNull(process.env.TELEMETRY_ENABLED)) !== null && _b !== void 0 ? _b : true,
96
+ serverMode: uiParam !== null ? parseServerMode(uiParam) : parseServerMode(process.env.UI_MODE),
97
+ paymentProvider: await resolvePaymentProvider(urlParams.get('payment')),
98
+ // Client attribution tag (e.g. ?client=cursor), for Segment.
99
+ clientParam: (_c = urlParams.get('client')) !== null && _c !== void 0 ? _c : undefined,
100
+ };
101
+ }
104
102
  /**
105
103
  * Whether the 2026-07-28 stateless path must answer this request instead of the stateful one.
106
104
  * Uses the SDK's own discriminator: `true` covers claim-less traffic (2025-era `initialize` and
@@ -112,40 +110,35 @@ export async function isStatelessRequest(req) {
112
110
  // lets the narrow shape above stand in for a full `IncomingMessage`.
113
111
  return !(await isLegacyRequest(await toWebRequest(req, req.body)));
114
112
  }
113
+ /**
114
+ * Whether a `GET`/`DELETE` came from a client on a revision that dropped the GET stream and
115
+ * protocol-level sessions, leaving `405` as the only answer. Those methods carry no body for era
116
+ * routing to read, so the version header decides; a request that still names a session keeps its
117
+ * stateful handling. Mirrors `apify-mcp-server-internal`'s `isSessionlessEraRequest`.
118
+ */
119
+ function isSessionlessEraRequest(req) {
120
+ const version = req.headers['mcp-protocol-version'];
121
+ if (typeof version !== 'string' || SUPPORTED_PROTOCOL_VERSIONS.includes(version))
122
+ return false;
123
+ return req.headers['mcp-session-id'] === undefined;
124
+ }
115
125
  /**
116
126
  * Serves one 2026-07-28 request: no session id, no handshake, nothing retained afterwards.
117
- * URL-parameter handling is deliberately a copy of the stateful branch's, so that branch stays
118
- * untouched by this change.
119
127
  *
120
128
  * The missing-token 401 is resolved inside the server factory, not up front: SEP-2243 requires
121
- * framing rejections (400/-32020) regardless of auth state, and the SDK entry runs its validation
122
- * ladder before invoking the factory.
123
- *
124
- * Dev-only shape: a facade is built per request, so `?actors=` re-fetches Actor metadata every time
125
- * (bar a `server/discover` probe, which loads no tools). A host may share one facade across requests
126
- * instead — snapshots are per-request either way.
129
+ * framing rejections (400/-32020) regardless of auth state, and the SDK runs that validation
130
+ * before invoking the factory. A server is built per request, so `?actors=` re-fetches Actor
131
+ * metadata every time.
127
132
  */
128
133
  async function serveStatelessRequest(req, res, taskStore) {
129
- var _a, _b, _c;
130
- const urlParams = new URL(req.url, `http://${req.headers.host}`).searchParams;
131
- const telemetryEnabled = (_b = (_a = parseBooleanOrNull(urlParams.get('telemetry-enabled'))) !== null && _a !== void 0 ? _a : parseBooleanOrNull(process.env.TELEMETRY_ENABLED)) !== null && _b !== void 0 ? _b : true;
132
- const uiParam = urlParams.get('ui');
133
- const serverMode = uiParam !== null ? parseServerMode(uiParam) : parseServerMode(process.env.UI_MODE);
134
- const paymentProvider = await resolvePaymentProvider(urlParams.get('payment'));
135
- const clientParam = (_c = urlParams.get('client')) !== null && _c !== void 0 ? _c : undefined;
134
+ const { telemetryEnabled, serverMode, paymentProvider, clientParam } = await parseUrlParams(req);
136
135
  // No token required in payment mode, mirroring `resolveRequestAuth`.
137
136
  const apifyToken = paymentProvider ? undefined : extractApiTokenFromRequest(req);
138
137
  let unauthorized = false;
139
138
  const handler = createMcpHandler(async ({ requestInfo }) => {
140
- // The SDK calls this factory before answering any modern method, `server/discover`
141
- // included — so gating it on auth would make a client need a token to learn which
142
- // revisions and capabilities this endpoint serves. Let discovery through, and skip the
143
- // Actor-metadata fetch for it: discovery reports capabilities and configuration-level
144
- // instructions, neither of which reads the tool set. The revision requires the method in
145
- // a header, cross-checked against the body before this factory runs, so it is
146
- // authoritative here.
139
+ // `server/discover` needs no token and no tools: it reports only capabilities and
140
+ // instructions. The SDK has already checked the `mcp-method` header against the body.
147
141
  const isDiscoverProbe = (requestInfo === null || requestInfo === void 0 ? void 0 : requestInfo.headers.get('mcp-method')) === 'server/discover';
148
- // Reached only after the validation ladder passed (see the doc comment above).
149
142
  if (!isDiscoverProbe && !paymentProvider && !apifyToken) {
150
143
  unauthorized = true;
151
144
  throw new Error('Apify API token missing on unauthenticated request');
@@ -160,8 +153,7 @@ async function serveStatelessRequest(req, res, taskStore) {
160
153
  token: apifyToken,
161
154
  clientParam,
162
155
  });
163
- // Client identity arrives per request in the `_meta` envelope (there is no initialize
164
- // handshake), so this fetch carries no request-origin tag.
156
+ // No initialize handshake, so this fetch carries no request-origin tag.
165
157
  if (!isDiscoverProbe) {
166
158
  await mcpServer.loadToolsFromUrl(req.url, new ApifyClient({ token: apifyToken }));
167
159
  }
@@ -197,33 +189,14 @@ async function serveStatelessRequest(req, res, taskStore) {
197
189
  }
198
190
  export function createExpressApp() {
199
191
  const app = express();
200
- const mcpServers = {};
201
- const transports = {};
192
+ const transports = new Map();
202
193
  const taskStore = new InMemoryTaskStore();
203
194
  const validateHost = localhostHostValidation();
204
195
  const validateOrigin = localhostOriginValidation();
205
- function respondWithError(res, error, logMessage, statusCode = 500) {
206
- if (statusCode >= 500) {
207
- // Server errors (>= 500) - log as exception
208
- log.exception(error instanceof Error ? error : new Error(String(error)), 'Error in request', {
209
- logMessage,
210
- statusCode,
211
- });
212
- }
213
- else {
214
- // Client errors (< 500) - log as softFail without stack trace
215
- const errorMessage = error instanceof Error ? error.message : String(error);
216
- log.softFail('Error in request', { logMessage, errMessage: errorMessage, statusCode });
217
- }
196
+ function respondWithError(res, error, logMessage) {
197
+ log.exception(toPlainError(error), 'Error in request', { logMessage, statusCode: 500 });
218
198
  if (!res.headersSent) {
219
- res.status(statusCode).json({
220
- jsonrpc: '2.0',
221
- error: {
222
- code: statusCode === 500 ? -32603 : -32000,
223
- message: statusCode === 500 ? 'Internal server error' : 'Bad Request',
224
- },
225
- id: null,
226
- });
199
+ res.status(500).json(buildJsonRpcError(-32603, 'Internal server error'));
227
200
  }
228
201
  }
229
202
  // DNS-rebinding protection, before parsing any body: reject non-local Host headers (a rebound
@@ -232,165 +205,95 @@ export function createExpressApp() {
232
205
  if (validateHost(req, res) && validateOrigin(req, res))
233
206
  next();
234
207
  });
235
- // express.json() middleware to parse JSON bodies, before the POST / route.
236
208
  app.use(express.json());
237
209
  app.post('/', async (req, res) => {
238
- var _a, _b, _c;
239
210
  log.info('Received MCP request:', req.body);
240
211
  try {
241
- // Both protocol eras are served on this one endpoint; everything the stateless path does
242
- // not claim falls through to the stateful path below, unchanged.
243
212
  if (await isStatelessRequest(req)) {
244
213
  await serveStatelessRequest(req, res, taskStore);
245
214
  return;
246
215
  }
247
- // Check for existing session ID
248
216
  const sessionId = req.headers['mcp-session-id'];
249
- const initializeMessage = extractInitializeMessage(req.body);
250
- let transport;
251
- if (sessionId && transports[sessionId]) {
252
- // Reuse existing transport
253
- transport = transports[sessionId];
254
- }
255
- else if (!sessionId && initializeMessage) {
256
- // Extract telemetry query parameters
257
- const urlParams = new URL(req.url, `http://${req.headers.host}`).searchParams;
258
- const telemetryEnabledParam = urlParams.get('telemetry-enabled');
259
- // URL param > env var > default (true)
260
- const telemetryEnabled = (_b = (_a = parseBooleanOrNull(telemetryEnabledParam)) !== null && _a !== void 0 ? _a : parseBooleanOrNull(process.env.TELEMETRY_ENABLED)) !== null && _b !== void 0 ? _b : true;
261
- const uiParam = urlParams.get('ui');
262
- const serverMode = uiParam !== null ? parseServerMode(uiParam) : parseServerMode(process.env.UI_MODE);
263
- // Resolve payment provider from URL parameter (e.g., ?payment=skyfire)
264
- const paymentProvider = await resolvePaymentProvider(urlParams.get('payment'));
265
- // Client attribution tag (e.g. ?client=cursor), for Segment — see mcp_url_client.
266
- const clientParam = (_c = urlParams.get('client')) !== null && _c !== void 0 ? _c : undefined;
267
- // Mirror production: no token required in payment mode, else require Bearer header
268
- const auth = resolveRequestAuth(req, res, paymentProvider);
269
- if (!auth)
217
+ if (sessionId) {
218
+ const transport = transports.get(sessionId);
219
+ if (!transport) {
220
+ res.status(404).json(buildJsonRpcError(-32001, 'Session not found'));
270
221
  return;
271
- const { apifyToken } = auth;
272
- const mcpServer = new ActorsMcpServer({
273
- taskStore,
274
- setupSigintHandler: false,
275
- transportType: 'http',
276
- telemetry: {
277
- enabled: telemetryEnabled,
278
- },
279
- serverMode,
280
- paymentProvider,
281
- token: apifyToken,
282
- clientParam,
283
- });
284
- // Client info is already available here — unlike stdio.ts, which loads tools
285
- // before initialization.
286
- const requestOrigin = getRequestOriginForClient(buildMcpClientContext(parseInitializeParams(initializeMessage.params)));
287
- const apifyClient = new ApifyClient({ token: apifyToken, requestOrigin });
288
- // Fetch actor metadata and queue mode-agnostic sources. Composed with
289
- // the final mode inside the initialize request handler.
290
- await mcpServer.loadToolsFromUrl(req.url, apifyClient);
291
- // SDK awaits onsessioninitialized before flushing InitializeResult, so registering
292
- // the maps here closes the (single-process, narrow) window where a follow-up
293
- // request could arrive before post-handleRequest map population runs.
294
- transport = new StreamableHTTPServerTransport({
295
- sessionIdGenerator: () => randomUUID(),
296
- enableJsonResponse: false, // Use SSE response mode
297
- onsessioninitialized: (newSessionId) => {
298
- transports[newSessionId] = transport;
299
- mcpServers[newSessionId] = mcpServer;
300
- },
301
- onsessionclosed: (closedSessionId) => {
302
- delete transports[closedSessionId];
303
- delete mcpServers[closedSessionId];
304
- },
305
- });
306
- await mcpServer.connect(transport);
222
+ }
223
+ if (req.body) {
224
+ req.body.params = injectMcpSessionId(req.body.params, sessionId);
225
+ }
307
226
  await transport.handleRequest(req, res, req.body);
308
- return; // Already handled
309
- }
310
- else if (!sessionId) {
311
- // Non-initialization requests without a session ID must be 400 Bad Request.
312
- res.status(400).json({
313
- jsonrpc: '2.0',
314
- error: {
315
- code: -32000,
316
- message: 'Bad Request: Mcp-Session-Id header is required',
317
- },
318
- id: null,
319
- });
320
227
  return;
321
228
  }
322
- else {
323
- // Invalid request - session ID is unknown.
324
- res.status(404).json({
325
- jsonrpc: '2.0',
326
- error: {
327
- code: -32001,
328
- message: 'Session not found',
329
- },
330
- id: null,
331
- });
229
+ const initializeMessage = extractInitializeMessage(req.body);
230
+ if (!initializeMessage) {
231
+ res.status(400).json(buildJsonRpcError(-32000, 'Bad Request: Mcp-Session-Id header is required'));
332
232
  return;
333
233
  }
334
- // Inject session ID into request params for the reused existing session
335
- if (sessionId && req.body) {
336
- req.body.params = injectMcpSessionId(req.body.params, sessionId);
337
- }
338
- // Handle the request with existing transport - no need to reconnect
234
+ const { telemetryEnabled, serverMode, paymentProvider, clientParam } = await parseUrlParams(req);
235
+ const auth = resolveRequestAuth(req, res, paymentProvider);
236
+ if (!auth)
237
+ return;
238
+ const { apifyToken } = auth;
239
+ const mcpServer = new ActorsMcpServer({
240
+ taskStore,
241
+ setupSigintHandler: false,
242
+ transportType: 'http',
243
+ telemetry: { enabled: telemetryEnabled },
244
+ serverMode,
245
+ paymentProvider,
246
+ token: apifyToken,
247
+ clientParam,
248
+ });
249
+ const requestOrigin = getRequestOriginForClient(buildMcpClientContext(parseInitializeParams(initializeMessage.params)));
250
+ // Tools are composed with the final server mode inside the initialize handler.
251
+ await mcpServer.loadToolsFromUrl(req.url, new ApifyClient({ token: apifyToken, requestOrigin }));
252
+ // The SDK awaits onsessioninitialized before sending InitializeResult, so the session is
253
+ // registered before any follow-up request can arrive.
254
+ const transport = new StreamableHTTPServerTransport({
255
+ sessionIdGenerator: () => randomUUID(),
256
+ enableJsonResponse: false,
257
+ onsessioninitialized: (newSessionId) => {
258
+ transports.set(newSessionId, transport);
259
+ },
260
+ onsessionclosed: (closedSessionId) => {
261
+ transports.delete(closedSessionId);
262
+ },
263
+ });
264
+ await mcpServer.connect(transport);
339
265
  await transport.handleRequest(req, res, req.body);
340
266
  }
341
267
  catch (error) {
342
268
  respondWithError(res, error, 'Error handling MCP request');
343
269
  }
344
270
  });
345
- // Handle GET requests
346
- // Clients open this to receive server-initiated notifications (e.g. notifications/tasks/status)
347
- // that are not tied to a specific POST request. Without this, session-level notifications
348
- // are silently dropped by the transport.
349
- app.get('/', async (req, res) => {
271
+ // GET opens the stream for server-initiated notifications not tied to a POST (e.g.
272
+ // notifications/tasks/status); without it the transport drops them. DELETE ends the session.
273
+ async function handleSessionRequest(req, res) {
274
+ if (isSessionlessEraRequest(req)) {
275
+ res.set('Allow', 'POST').status(405).json(buildJsonRpcError(-32000, 'Method not allowed.'));
276
+ return;
277
+ }
350
278
  const sessionId = req.headers['mcp-session-id'];
351
- const transport = transports[sessionId || ''];
279
+ const transport = sessionId ? transports.get(sessionId) : undefined;
352
280
  if (!transport) {
353
- log.softFail('Session not found for GET SSE stream', { mcpSessionId: sessionId, statusCode: 404 });
354
- res.status(404).send('Not Found: Session not found').end();
281
+ log.softFail('Session not found', { mth: req.method, mcpSessionId: sessionId, statusCode: 404 });
282
+ res.status(404).send('Not Found: Session not found');
355
283
  return;
356
284
  }
357
- log.info('MCP API', {
358
- mth: req.method,
359
- rt: '/',
360
- mcpSessionId: sessionId,
361
- });
285
+ log.info('MCP API', { mth: req.method, rt: '/', mcpSessionId: sessionId });
362
286
  try {
363
- await transport.handleRequest(req, res);
287
+ await transport.handleRequest(req, res, req.body);
364
288
  }
365
289
  catch (error) {
366
- respondWithError(res, error, 'Error handling GET SSE stream');
290
+ respondWithError(res, error, `Error handling ${req.method} request`);
367
291
  }
368
- });
369
- app.delete('/', async (req, res) => {
370
- const sessionId = req.headers['mcp-session-id'];
371
- const transport = transports[sessionId || ''];
372
- if (transport) {
373
- log.info('MCP API', {
374
- mth: req.method,
375
- rt: '/',
376
- mcpSessionId: sessionId,
377
- });
378
- try {
379
- await transport.handleRequest(req, res, req.body);
380
- }
381
- catch (error) {
382
- respondWithError(res, error, 'Error handling DELETE request');
383
- }
384
- return;
385
- }
386
- log.softFail('Session not found', { mcpSessionId: sessionId, statusCode: 404 });
387
- res.status(404).send('Not Found: Session not found').end();
388
- });
389
- // Catch-all for undefined routes
292
+ }
293
+ app.get('/', handleSessionRequest);
294
+ app.delete('/', handleSessionRequest);
390
295
  app.use((req, res) => {
391
- res.status(404)
392
- .json({ message: `There is nothing at route ${req.method} ${req.originalUrl}.` })
393
- .end();
296
+ res.status(404).json({ message: `There is nothing at route ${req.method} ${req.originalUrl}.` });
394
297
  });
395
298
  return app;
396
299
  }
@@ -403,16 +306,11 @@ export function extractInitializeMessage(body) {
403
306
  const messages = Array.isArray(body) ? body : [body];
404
307
  return messages.find((msg) => typeof msg === 'object' && msg !== null && msg.method === 'initialize');
405
308
  }
406
- /**
407
- * Type-safe extraction of `initialize` params for `buildMcpClientContext`/request-origin.
408
- * Malformed params parse to `undefined` (client context stays unset) rather than being cast
409
- * unchecked — the SDK validates the full request separately once it takes over below.
410
- */
309
+ /** Malformed params parse to `undefined`; the SDK validates the full request itself. */
411
310
  export function parseInitializeParams(params) {
412
311
  const result = InitializeRequestParamsSchema.safeParse(params);
413
312
  return result.success ? result.data : undefined;
414
313
  }
415
- // --- Entry point: start the server when run directly ---
416
314
  if (process.argv[1] === fileURLToPath(import.meta.url)) {
417
315
  const HOST = (_b = process.env.HOST) !== null && _b !== void 0 ? _b : 'http://localhost';
418
316
  const PORT = Number(process.env.PORT) || 3001;
@@ -1 +1 @@
1
- {"version":3,"file":"dev_server.js","sourceRoot":"","sources":["../src/dev_server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev_server.js","sourceRoot":"","sources":["../src/dev_server.ts"],"names":[],"mappings":"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"}
@@ -151,7 +151,7 @@ export declare class ActorsMcpServer implements LegacyMcpServerHost, StatelessMc
151
151
  */
152
152
  listActorToolNames(): string[];
153
153
  /**
154
- * Returns the unique Actor IDs registered as MCP servers (e.g., 'apify/actors-mcp-server').
154
+ * Returns the unique Actor IDs registered as MCP servers (e.g., 'apify/example-mcp-server').
155
155
  */
156
156
  private listActorMcpServerToolIds;
157
157
  /**
@@ -427,7 +427,7 @@ export class ActorsMcpServer {
427
427
  .map((tool) => tool.actorFullName);
428
428
  }
429
429
  /**
430
- * Returns the unique Actor IDs registered as MCP servers (e.g., 'apify/actors-mcp-server').
430
+ * Returns the unique Actor IDs registered as MCP servers (e.g., 'apify/example-mcp-server').
431
431
  */
432
432
  listActorMcpServerToolIds() {
433
433
  const ids = Array.from(this.tools.values())