@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.
- package/README.md +2 -2
- package/dist/dev_server.d.ts +1 -5
- package/dist/dev_server.d.ts.map +1 -1
- package/dist/dev_server.js +106 -208
- package/dist/dev_server.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/test_kit/cases/actors.cases.js +62 -62
- package/dist/test_kit/cases/actors.cases.js.map +1 -1
- package/dist/test_kit/cases/apps.cases.d.ts.map +1 -1
- package/dist/test_kit/cases/apps.cases.js +24 -28
- package/dist/test_kit/cases/apps.cases.js.map +1 -1
- package/dist/test_kit/cases/payments.cases.js +13 -13
- package/dist/test_kit/cases/payments.cases.js.map +1 -1
- package/dist/test_kit/cases/registration.cases.d.ts.map +1 -1
- package/dist/test_kit/cases/registration.cases.js +58 -53
- package/dist/test_kit/cases/registration.cases.js.map +1 -1
- package/dist/test_kit/cases/schedules.cases.js +1 -1
- package/dist/test_kit/cases/storage.cases.js +26 -26
- package/dist/test_kit/cases/storage.cases.js.map +1 -1
- package/dist/test_kit/cases/tasks.cases.d.ts.map +1 -1
- package/dist/test_kit/cases/tasks.cases.js +3 -4
- package/dist/test_kit/cases/tasks.cases.js.map +1 -1
- package/dist/test_kit/cases/tools.cases.d.ts.map +1 -1
- package/dist/test_kit/cases/tools.cases.js +14 -14
- package/dist/test_kit/cases/tools.cases.js.map +1 -1
- package/dist/test_kit/helpers.d.ts.map +1 -1
- package/dist/test_kit/helpers.js +2 -2
- package/dist/test_kit/helpers.js.map +1 -1
- package/dist/test_kit/tsconfig.tsbuildinfo +1 -1
- package/dist/tools/actors/call_actor.js +2 -2
- package/dist/tools/actors/call_actor.js.map +1 -1
- package/dist/tools/actors/fetch_actor_details.js +2 -2
- package/dist/tools/actors/fetch_actor_details.js.map +1 -1
- package/dist/tools/api/apify_api_blocklist.d.ts +35 -0
- package/dist/tools/api/apify_api_blocklist.d.ts.map +1 -0
- package/dist/tools/api/apify_api_blocklist.js +114 -0
- package/dist/tools/api/apify_api_blocklist.js.map +1 -0
- package/dist/tools/api/apify_api_details.d.ts.map +1 -1
- package/dist/tools/api/apify_api_details.js +2 -1
- package/dist/tools/api/apify_api_details.js.map +1 -1
- package/dist/tools/api/apify_api_path.d.ts +9 -0
- package/dist/tools/api/apify_api_path.d.ts.map +1 -0
- package/dist/tools/api/apify_api_path.js +11 -0
- package/dist/tools/api/apify_api_path.js.map +1 -0
- package/dist/tools/api/apify_api_read.d.ts.map +1 -1
- package/dist/tools/api/apify_api_read.js +6 -5
- package/dist/tools/api/apify_api_read.js.map +1 -1
- package/dist/tools/api/apify_api_request.d.ts +2 -4
- package/dist/tools/api/apify_api_request.d.ts.map +1 -1
- package/dist/tools/api/apify_api_request.js +15 -11
- package/dist/tools/api/apify_api_request.js.map +1 -1
- package/dist/tools/api/apify_api_spec.d.ts +5 -3
- package/dist/tools/api/apify_api_spec.d.ts.map +1 -1
- package/dist/tools/api/apify_api_spec.js +6 -4
- package/dist/tools/api/apify_api_spec.js.map +1 -1
- package/dist/tools/api/apify_api_write.d.ts.map +1 -1
- package/dist/tools/api/apify_api_write.js +11 -6
- package/dist/tools/api/apify_api_write.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
- 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
|
|
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
|
>
|
package/dist/dev_server.d.ts
CHANGED
|
@@ -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
|
package/dist/dev_server.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/dev_server.js
CHANGED
|
@@ -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
|
-
*
|
|
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)
|
|
83
|
-
*
|
|
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
|
|
122
|
-
*
|
|
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
|
-
|
|
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
|
-
//
|
|
141
|
-
//
|
|
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
|
-
//
|
|
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
|
|
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
|
|
206
|
-
|
|
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(
|
|
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
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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
|
-
|
|
323
|
-
|
|
324
|
-
res.status(
|
|
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
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
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
|
-
//
|
|
346
|
-
//
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
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
|
|
279
|
+
const transport = sessionId ? transports.get(sessionId) : undefined;
|
|
352
280
|
if (!transport) {
|
|
353
|
-
log.softFail('Session not found
|
|
354
|
-
res.status(404).send('Not Found: Session not found')
|
|
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,
|
|
290
|
+
respondWithError(res, error, `Error handling ${req.method} request`);
|
|
367
291
|
}
|
|
368
|
-
}
|
|
369
|
-
app.
|
|
370
|
-
|
|
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;
|
package/dist/dev_server.js.map
CHANGED
|
@@ -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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"}
|
package/dist/mcp/server.d.ts
CHANGED
|
@@ -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/
|
|
154
|
+
* Returns the unique Actor IDs registered as MCP servers (e.g., 'apify/example-mcp-server').
|
|
155
155
|
*/
|
|
156
156
|
private listActorMcpServerToolIds;
|
|
157
157
|
/**
|
package/dist/mcp/server.js
CHANGED
|
@@ -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/
|
|
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())
|