mandala-computer-mcp 0.4.0 → 0.6.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 +558 -29
- package/dist/api.d.ts +59 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +404 -33
- package/dist/api.js.map +1 -1
- package/dist/artifacts.d.ts +63 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +81 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +52 -21
- package/dist/cli.js.map +1 -1
- package/dist/credentials.d.ts +33 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +395 -0
- package/dist/credentials.js.map +1 -0
- package/dist/errors.d.ts +122 -11
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +237 -41
- package/dist/errors.js.map +1 -1
- package/dist/executions.d.ts +43 -0
- package/dist/executions.d.ts.map +1 -0
- package/dist/executions.js +162 -0
- package/dist/executions.js.map +1 -0
- package/dist/format.d.ts +33 -8
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +107 -12
- package/dist/format.js.map +1 -1
- package/dist/http.d.ts +42 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +383 -3
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/paths.d.ts +50 -2
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +65 -5
- package/dist/paths.js.map +1 -1
- package/dist/results.d.ts +97 -0
- package/dist/results.d.ts.map +1 -0
- package/dist/results.js +263 -0
- package/dist/results.js.map +1 -0
- package/dist/secret-errors.d.ts +59 -0
- package/dist/secret-errors.d.ts.map +1 -0
- package/dist/secret-errors.js +199 -0
- package/dist/secret-errors.js.map +1 -0
- package/dist/secret-store.d.ts +115 -0
- package/dist/secret-store.d.ts.map +1 -0
- package/dist/secret-store.js +105 -0
- package/dist/secret-store.js.map +1 -0
- package/dist/server.d.ts +3 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +60 -9
- package/dist/server.js.map +1 -1
- package/dist/session.d.ts +6 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +1 -1
- package/dist/session.js.map +1 -1
- package/dist/stdio.d.ts +5 -1
- package/dist/stdio.d.ts.map +1 -1
- package/dist/stdio.js +10 -4
- package/dist/stdio.js.map +1 -1
- package/dist/tool-filters.d.ts +38 -0
- package/dist/tool-filters.d.ts.map +1 -0
- package/dist/tool-filters.js +137 -0
- package/dist/tool-filters.js.map +1 -0
- package/dist/tools/account.d.ts +3 -0
- package/dist/tools/account.d.ts.map +1 -0
- package/dist/tools/account.js +122 -0
- package/dist/tools/account.js.map +1 -0
- package/dist/tools/activities.d.ts +3 -0
- package/dist/tools/activities.d.ts.map +1 -0
- package/dist/tools/activities.js +140 -0
- package/dist/tools/activities.js.map +1 -0
- package/dist/tools/agent.d.ts.map +1 -1
- package/dist/tools/agent.js +21 -9
- package/dist/tools/agent.js.map +1 -1
- package/dist/tools/artifacts.d.ts +3 -0
- package/dist/tools/artifacts.d.ts.map +1 -0
- package/dist/tools/artifacts.js +97 -0
- package/dist/tools/artifacts.js.map +1 -0
- package/dist/tools/chat.d.ts +6 -0
- package/dist/tools/chat.d.ts.map +1 -0
- package/dist/tools/chat.js +192 -0
- package/dist/tools/chat.js.map +1 -0
- package/dist/tools/computers.d.ts.map +1 -1
- package/dist/tools/computers.js +28 -16
- package/dist/tools/computers.js.map +1 -1
- package/dist/tools/directory.d.ts +13 -0
- package/dist/tools/directory.d.ts.map +1 -0
- package/dist/tools/directory.js +88 -0
- package/dist/tools/directory.js.map +1 -0
- package/dist/tools/executions.d.ts +3 -0
- package/dist/tools/executions.d.ts.map +1 -0
- package/dist/tools/executions.js +87 -0
- package/dist/tools/executions.js.map +1 -0
- package/dist/tools/guest.d.ts.map +1 -1
- package/dist/tools/guest.js +184 -35
- package/dist/tools/guest.js.map +1 -1
- package/dist/tools/input.d.ts +2 -0
- package/dist/tools/input.d.ts.map +1 -1
- package/dist/tools/input.js +31 -5
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/results.d.ts +30 -0
- package/dist/tools/results.d.ts.map +1 -0
- package/dist/tools/results.js +106 -0
- package/dist/tools/results.js.map +1 -0
- package/dist/tools/secrets.d.ts +78 -0
- package/dist/tools/secrets.d.ts.map +1 -0
- package/dist/tools/secrets.js +448 -0
- package/dist/tools/secrets.js.map +1 -0
- package/dist/tools/signals.d.ts +3 -0
- package/dist/tools/signals.d.ts.map +1 -0
- package/dist/tools/signals.js +116 -0
- package/dist/tools/signals.js.map +1 -0
- package/dist/tools/snapshots.d.ts.map +1 -1
- package/dist/tools/snapshots.js +52 -10
- package/dist/tools/snapshots.js.map +1 -1
- package/dist/tools/ssh.d.ts +3 -0
- package/dist/tools/ssh.d.ts.map +1 -0
- package/dist/tools/ssh.js +186 -0
- package/dist/tools/ssh.js.map +1 -0
- package/dist/tools/webhooks.js +1 -1
- package/dist/tools/webhooks.js.map +1 -1
- package/package.json +1 -1
package/dist/http.js
CHANGED
|
@@ -5,8 +5,57 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/
|
|
|
5
5
|
import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
6
6
|
import express, {} from 'express';
|
|
7
7
|
import { Api, MODEL_KEY_HEADER } from './api.js';
|
|
8
|
+
import { APIError } from './errors.js';
|
|
8
9
|
import { MeteredBody } from './http-body.js';
|
|
10
|
+
import { SSH_KEYS } from './paths.js';
|
|
9
11
|
import { createServer, SERVER_NAME, SERVER_VERSION } from './server.js';
|
|
12
|
+
import { toolFilter } from './tool-filters.js';
|
|
13
|
+
/** The OAuth scope the hosted resource asks for. */
|
|
14
|
+
export const MCP_SCOPE = 'mcp:tools';
|
|
15
|
+
/**
|
|
16
|
+
* The `WWW-Authenticate` value of every OAuth refusal this server makes.
|
|
17
|
+
*
|
|
18
|
+
* The same header whether no bearer was sent or the platform refused one: RFC
|
|
19
|
+
* 9728 §5.1 has a client find the authorization server through
|
|
20
|
+
* `resource_metadata`, and the MCP authorization spec has it refresh or
|
|
21
|
+
* re-authorize on any 401 that carries it.
|
|
22
|
+
*/
|
|
23
|
+
export function bearerChallenge(resourceMetadataUrl) {
|
|
24
|
+
return `Bearer resource_metadata="${resourceMetadataUrl}", scope="${MCP_SCOPE}"`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The metadata URL, or a refusal naming the setting.
|
|
28
|
+
*
|
|
29
|
+
* It goes inside a quoted-string in a response header, so a quote, a backslash
|
|
30
|
+
* or a control character would change what the header says — refused rather
|
|
31
|
+
* than escaped, since no real URL needs one.
|
|
32
|
+
*/
|
|
33
|
+
function checkedMetadataUrl(raw) {
|
|
34
|
+
let parsed;
|
|
35
|
+
try {
|
|
36
|
+
parsed = new URL(raw);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
throw new Error('MANDALA_MCP_RESOURCE_METADATA_URL is not a URL. Set it to the absolute https URL of ' +
|
|
40
|
+
'this resource’s OAuth metadata, e.g. https://app.mandala.computer/.well-known/oauth-protected-resource/mcp');
|
|
41
|
+
}
|
|
42
|
+
if (parsed.protocol !== 'https:' && parsed.protocol !== 'http:') {
|
|
43
|
+
throw new Error('MANDALA_MCP_RESOURCE_METADATA_URL must be an http(s) URL.');
|
|
44
|
+
}
|
|
45
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: refusing them is the point.
|
|
46
|
+
if (/["\\\u0000-\u001f\u007f\s]/.test(raw)) {
|
|
47
|
+
throw new Error('MANDALA_MCP_RESOURCE_METADATA_URL contains a quote, backslash, space or control character.');
|
|
48
|
+
}
|
|
49
|
+
return raw;
|
|
50
|
+
}
|
|
51
|
+
/** Visible ASCII only: anything else cannot be a header value, and says so here. */
|
|
52
|
+
function checkedServiceSecret(raw) {
|
|
53
|
+
if (!/^[\x21-\x7e]+$/.test(raw)) {
|
|
54
|
+
// The value is deliberately not echoed.
|
|
55
|
+
throw new Error('MANDALA_MCP_SERVICE_SECRET must be printable ASCII with no spaces; it is sent as a header.');
|
|
56
|
+
}
|
|
57
|
+
return raw;
|
|
58
|
+
}
|
|
10
59
|
const DEFAULT_TTL_MS = 30 * 60 * 1000;
|
|
11
60
|
/**
|
|
12
61
|
* A ceiling on live sessions.
|
|
@@ -133,12 +182,146 @@ function dnsRebindingRefusal(req, hosts, origins) {
|
|
|
133
182
|
* desktop, which it otherwise would be.
|
|
134
183
|
*/
|
|
135
184
|
export async function runHttp(cfg) {
|
|
185
|
+
// Embedders bypass the CLI's environment parser. Reject invalid filters
|
|
186
|
+
// before allocating HTTP resources, using the same rules as each session.
|
|
187
|
+
toolFilter(cfg);
|
|
136
188
|
// HTTP does not construct an Api until the first initialize, which made a
|
|
137
189
|
// bad MANDALA_BASE_URL look like a working bind and then fail that caller
|
|
138
190
|
// with a generic 500. Validate it before opening the listening socket, using
|
|
139
191
|
// the same constructor and therefore the same rules as every real session.
|
|
140
192
|
new Api('startup-validation-only', cfg.baseUrl);
|
|
193
|
+
// The hosted install's two settings, checked before the bind for the same
|
|
194
|
+
// reason. `challenge` being set IS hosted mode: every OAuth-specific answer
|
|
195
|
+
// below is gated on it, so a server started without the metadata URL behaves
|
|
196
|
+
// exactly as it did before OPL-4982.
|
|
197
|
+
const metadataUrl = cfg.resourceMetadataUrl !== undefined ? checkedMetadataUrl(cfg.resourceMetadataUrl) : undefined;
|
|
198
|
+
const serviceSecret = cfg.serviceSecret !== undefined ? checkedServiceSecret(cfg.serviceSecret) : undefined;
|
|
199
|
+
const challenge = metadataUrl ? bearerChallenge(metadataUrl) : undefined;
|
|
200
|
+
/** The POST being answered, so a refused bearer can turn it into a 401. */
|
|
201
|
+
const heldAnswer = new AsyncLocalStorage();
|
|
202
|
+
// ---- Checking a bearer with the platform (hosted mode) -----------------
|
|
203
|
+
//
|
|
204
|
+
// Initialize makes no platform request, so without this an invented bearer
|
|
205
|
+
// bought a whole session: 256 of them filled the cap and every real client
|
|
206
|
+
// was 503'd until the sweep. And a POST's event stream is committed by the
|
|
207
|
+
// SDK's keep-alive after 15 s, after which a refused token can only end that
|
|
208
|
+
// call as a tool error. So in hosted mode a bearer is checked before a
|
|
209
|
+
// session is created for it, and before a POST carrying a request is
|
|
210
|
+
// dispatched — the latter cached briefly, keyed by the token's digest and
|
|
211
|
+
// never by the token.
|
|
212
|
+
const checkTtl = cfg.bearerCheckTtlMs ?? DEFAULT_BEARER_CHECK_TTL_MS;
|
|
213
|
+
const accepted = new Map();
|
|
214
|
+
let checksInFlight = 0;
|
|
215
|
+
/** Whether the platform accepted this bearer within the cache window. */
|
|
216
|
+
const isAccepted = (key) => {
|
|
217
|
+
const until = accepted.get(digest(key).toString('hex'));
|
|
218
|
+
return until !== undefined && until > Date.now();
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* `ok`: the probe answered 2xx, and only that — the one answer that says the
|
|
222
|
+
* platform authenticated this credential AND let it act. `refused`: a 401.
|
|
223
|
+
* `unknown`: anything else — a 403 (a suspended account or a lost
|
|
224
|
+
* membership), a 404 (the route moved), a 429, a 5xx, a timeout, or this
|
|
225
|
+
* server already asking about as many bearers as it will at once. Only `ok`
|
|
226
|
+
* is cached.
|
|
227
|
+
*/
|
|
228
|
+
// `onStart` runs only when a probe really starts — never for a cached answer
|
|
229
|
+
// or a full cap — and synchronously, before the first await, so a caller's
|
|
230
|
+
// bookkeeping and its check against it cannot interleave with another's.
|
|
231
|
+
const checkBearer = async (key, onStart) => {
|
|
232
|
+
const id = digest(key).toString('hex');
|
|
233
|
+
if (isAccepted(key))
|
|
234
|
+
return 'ok';
|
|
235
|
+
if (checksInFlight >= MAX_BEARER_CHECKS_IN_FLIGHT)
|
|
236
|
+
return 'unknown';
|
|
237
|
+
checksInFlight++;
|
|
238
|
+
onStart?.();
|
|
239
|
+
try {
|
|
240
|
+
const api = new Api(key, cfg.baseUrl, AbortSignal.timeout(BEARER_CHECK_TIMEOUT_MS), {
|
|
241
|
+
serviceSecret,
|
|
242
|
+
});
|
|
243
|
+
// `GET ssh-keys`, chosen because it is the cheapest read that every
|
|
244
|
+
// valid credential is answered 2xx on. The platform's route table
|
|
245
|
+
// gives it the lowest role there is (viewer), a workspace-scoped key is
|
|
246
|
+
// refused only the key WRITES, and the handler lists the caller's own
|
|
247
|
+
// keys from the control plane without asking any host — so no role a
|
|
248
|
+
// grant can carry, and no host being down, turns it into a refusal.
|
|
249
|
+
// `account` is the alternative and costs two fleet inventories. The one
|
|
250
|
+
// valid credential it does not admit is a suspended account's (403),
|
|
251
|
+
// which is answered as unconfirmed. It takes no parameters, so none are
|
|
252
|
+
// sent.
|
|
253
|
+
await api.json('GET', SSH_KEYS);
|
|
254
|
+
}
|
|
255
|
+
catch (err) {
|
|
256
|
+
return err instanceof APIError && err.status === 401 ? 'refused' : 'unknown';
|
|
257
|
+
}
|
|
258
|
+
finally {
|
|
259
|
+
checksInFlight--;
|
|
260
|
+
}
|
|
261
|
+
const now = Date.now();
|
|
262
|
+
if (accepted.size >= MAX_ACCEPTED_BEARERS) {
|
|
263
|
+
for (const [k, t] of accepted)
|
|
264
|
+
if (t <= now)
|
|
265
|
+
accepted.delete(k);
|
|
266
|
+
// Still full: drop the oldest, which Map iteration yields first.
|
|
267
|
+
if (accepted.size >= MAX_ACCEPTED_BEARERS) {
|
|
268
|
+
accepted.delete(accepted.keys().next().value);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
accepted.set(id, now + checkTtl);
|
|
272
|
+
return 'ok';
|
|
273
|
+
};
|
|
274
|
+
// Refused initializes per source, in fixed one-minute windows. Kept apart
|
|
275
|
+
// from the session cap so a flood of invented tokens is turned away before
|
|
276
|
+
// it asks the platform anything, rather than by starving the pool.
|
|
277
|
+
const maxFailed = cfg.maxFailedInitializes ?? DEFAULT_MAX_FAILED_INITIALIZES;
|
|
278
|
+
// `lastProbeAt` lives on the window's entry, so the window's reset restores
|
|
279
|
+
// the normal budget and forgets the spent-address clock in one step.
|
|
280
|
+
const failures = new Map();
|
|
281
|
+
const exhaustedInterval = cfg.exhaustedProbeIntervalMs ?? DEFAULT_EXHAUSTED_PROBE_INTERVAL_MS;
|
|
282
|
+
const sourceOf = (req) => req.ip ?? req.socket.remoteAddress ?? 'unknown';
|
|
283
|
+
const overFailureBudget = (req) => {
|
|
284
|
+
const entry = failures.get(sourceOf(req));
|
|
285
|
+
if (!entry)
|
|
286
|
+
return undefined;
|
|
287
|
+
const now = Date.now();
|
|
288
|
+
if (entry.resetAt <= now) {
|
|
289
|
+
failures.delete(sourceOf(req));
|
|
290
|
+
return undefined;
|
|
291
|
+
}
|
|
292
|
+
return entry.count >= maxFailed ? Math.ceil((entry.resetAt - now) / 1000) : undefined;
|
|
293
|
+
};
|
|
294
|
+
const noteFailure = (req) => {
|
|
295
|
+
const source = sourceOf(req);
|
|
296
|
+
const now = Date.now();
|
|
297
|
+
const entry = failures.get(source);
|
|
298
|
+
if (entry && entry.resetAt > now) {
|
|
299
|
+
entry.count++;
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
if (failures.size >= MAX_FAILURE_SOURCES) {
|
|
303
|
+
for (const [k, e] of failures)
|
|
304
|
+
if (e.resetAt <= now)
|
|
305
|
+
failures.delete(k);
|
|
306
|
+
if (failures.size >= MAX_FAILURE_SOURCES) {
|
|
307
|
+
failures.delete(failures.keys().next().value);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
failures.set(source, { count: 1, resetAt: now + FAILURE_WINDOW_MS });
|
|
311
|
+
};
|
|
312
|
+
/** A 401 an OAuth client acts on: authorize, or refresh and try again. */
|
|
313
|
+
const challenged = (res, message, id = null) => {
|
|
314
|
+
if (challenge)
|
|
315
|
+
res.set('WWW-Authenticate', challenge);
|
|
316
|
+
unauthorized(res, message, id);
|
|
317
|
+
};
|
|
141
318
|
const app = express();
|
|
319
|
+
// Hosted mode sits behind a proxy on this machine, and the refused-
|
|
320
|
+
// initialize budget is per source: without this every caller would be the
|
|
321
|
+
// proxy's one loopback address, sharing one budget. Only a loopback peer's
|
|
322
|
+
// X-Forwarded-For is believed, so a direct caller cannot choose its source.
|
|
323
|
+
if (challenge)
|
|
324
|
+
app.set('trust proxy', 'loopback');
|
|
142
325
|
// parseBody consumes every POST /mcp body. Every other route deliberately
|
|
143
326
|
// ignores request bodies, so put those requests in flowing mode immediately:
|
|
144
327
|
// leaving bytes unread can strand a keep-alive connection behind one wrong
|
|
@@ -544,6 +727,14 @@ export async function runHttp(cfg) {
|
|
|
544
727
|
app.post('/mcp', parseBody, async (req, res) => {
|
|
545
728
|
const sessionId = req.header('mcp-session-id');
|
|
546
729
|
const key = bearer(req);
|
|
730
|
+
// Hosted: EVERY request needs a bearer, initialize and tools/list included.
|
|
731
|
+
// Orgo answers those two anonymously; refusing them is simpler, costs a
|
|
732
|
+
// client nothing (it authorizes on the first 401 whichever request that
|
|
733
|
+
// is), and means no McpServer is ever built for a caller with no credential.
|
|
734
|
+
if (challenge && !key) {
|
|
735
|
+
releaseLargeBody(res);
|
|
736
|
+
return challenged(res, NO_TOKEN, rpcId(req));
|
|
737
|
+
}
|
|
547
738
|
if (sessionId) {
|
|
548
739
|
try {
|
|
549
740
|
const live = sessions.get(sessionId);
|
|
@@ -553,10 +744,36 @@ export async function runHttp(cfg) {
|
|
|
553
744
|
// session id travels in a plain header and is the sort of thing that ends
|
|
554
745
|
// up in a proxy log; on its own it must not be a credential.
|
|
555
746
|
if (!key || !sameKey(live.keyDigest, key)) {
|
|
747
|
+
// Hosted: a different bearer is most often the SAME client after a
|
|
748
|
+
// token refresh, and nothing this server can see proves that — an
|
|
749
|
+
// access token is opaque, and the refresh token never comes here. So
|
|
750
|
+
// the session is not rebound, which would hand its bound computer,
|
|
751
|
+
// buffered events and retained results to whoever holds any valid
|
|
752
|
+
// credential and the session id. It is answered as unknown instead,
|
|
753
|
+
// which is the MCP spec's signal to initialize a new session; the new
|
|
754
|
+
// bearer gets a new session, and this one is left to the idle sweep
|
|
755
|
+
// (closing it here would let anyone with the id end it).
|
|
756
|
+
if (challenge) {
|
|
757
|
+
return notFound(res, 'Unknown session. Initialize a new one.', rpcId(req));
|
|
758
|
+
}
|
|
556
759
|
return unauthorized(res, 'This session belongs to a different API key.', rpcId(req));
|
|
557
760
|
}
|
|
761
|
+
if (challenge && live.refused)
|
|
762
|
+
return challenged(res, TOKEN_REFUSED, rpcId(req));
|
|
763
|
+
// Checked before a request is dispatched, while the answer can still
|
|
764
|
+
// be a 401 whatever the call goes on to do. A platform that cannot say
|
|
765
|
+
// is not a refusal: the call goes ahead, and a real refusal during it
|
|
766
|
+
// still reaches the client through the held answer or the mark.
|
|
767
|
+
if (challenge && carriesRequest(req.body) && (await checkBearer(key)) === 'refused') {
|
|
768
|
+
live.refused = true;
|
|
769
|
+
return challenged(res, TOKEN_REFUSED, rpcId(req));
|
|
770
|
+
}
|
|
558
771
|
const lease = res.locals.largeBodyLease;
|
|
559
|
-
|
|
772
|
+
const id = rpcId(req);
|
|
773
|
+
const held = challenge
|
|
774
|
+
? holdAnswer(res, () => challenged(res, TOKEN_REFUSED, id))
|
|
775
|
+
: undefined;
|
|
776
|
+
return await heldAnswer.run(held, () => requestBodyLease.run(lease, () => serving(live, () => live.transport.handleRequest(req, res, req.body))));
|
|
560
777
|
}
|
|
561
778
|
finally {
|
|
562
779
|
// A verified session is the only request allowed through the large
|
|
@@ -583,6 +800,43 @@ export async function runHttp(cfg) {
|
|
|
583
800
|
const refused = dnsRebindingRefusal(req, hosts, allowedOrigins);
|
|
584
801
|
if (refused)
|
|
585
802
|
return rpcError(res, 403, -32000, refused, rpcId(req));
|
|
803
|
+
// Hosted: no session for a bearer the platform does not accept. Before the
|
|
804
|
+
// cap and the reservation, so a refused bearer never holds a slot.
|
|
805
|
+
if (challenge) {
|
|
806
|
+
// A spent budget does not close the address. Many clients can share one
|
|
807
|
+
// (a NAT, an office), and one bad neighbour must not lock out the rest:
|
|
808
|
+
// a bearer the platform already accepted passes outright, and a new one
|
|
809
|
+
// still gets a probe — but at most one per interval per spent address,
|
|
810
|
+
// taken when the probe starts, so the address costs the platform one probe per
|
|
811
|
+
// interval however hard it pushes, and a valid client there waits at
|
|
812
|
+
// most one interval. The process-wide cap on probes bounds the total.
|
|
813
|
+
const spent = !isAccepted(key) && overFailureBudget(req) !== undefined;
|
|
814
|
+
if (spent) {
|
|
815
|
+
const entry = failures.get(sourceOf(req));
|
|
816
|
+
const wait = entry?.lastProbeAt !== undefined ? entry.lastProbeAt + exhaustedInterval - Date.now() : 0;
|
|
817
|
+
if (wait > 0) {
|
|
818
|
+
res.set('Retry-After', String(Math.max(1, Math.ceil(wait / 1000))));
|
|
819
|
+
return rpcError(res, 429, -32002, 'Too many refused initializes from this address. Retry later with a valid token.', rpcId(req));
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
// The interval is spent only by a probe that starts: a request turned
|
|
823
|
+
// away because the process-wide cap is full reached nobody, and must not
|
|
824
|
+
// make the next client at this address wait out an interval for it.
|
|
825
|
+
const verdict = await checkBearer(key, spent
|
|
826
|
+
? () => {
|
|
827
|
+
const entry = failures.get(sourceOf(req));
|
|
828
|
+
if (entry)
|
|
829
|
+
entry.lastProbeAt = Date.now();
|
|
830
|
+
}
|
|
831
|
+
: undefined);
|
|
832
|
+
if (verdict === 'refused') {
|
|
833
|
+
noteFailure(req);
|
|
834
|
+
return challenged(res, TOKEN_REFUSED, rpcId(req));
|
|
835
|
+
}
|
|
836
|
+
if (verdict === 'unknown') {
|
|
837
|
+
return unavailable(res, 'The platform could not confirm this token just now. Retry shortly.', rpcId(req));
|
|
838
|
+
}
|
|
839
|
+
}
|
|
586
840
|
// Swept sessions free their slot on the timer; this is the backstop for the
|
|
587
841
|
// case the timer cannot help with, which is arrivals faster than the TTL.
|
|
588
842
|
if (sessions.size + pending >= maxSessions) {
|
|
@@ -614,6 +868,7 @@ export async function runHttp(cfg) {
|
|
|
614
868
|
try {
|
|
615
869
|
const t = new StreamableHTTPServerTransport({
|
|
616
870
|
sessionIdGenerator: () => randomUUID(),
|
|
871
|
+
...(cfg.sseKeepAliveMs !== undefined ? { keepAliveMs: cfg.sseKeepAliveMs } : {}),
|
|
617
872
|
// On whenever there is a list to check against, which for a loopback
|
|
618
873
|
// bind is always — see `allowedHosts`. A browser cannot be stopped from
|
|
619
874
|
// resolving a name it controls to 127.0.0.1, so the Host header is the
|
|
@@ -631,6 +886,7 @@ export async function runHttp(cfg) {
|
|
|
631
886
|
// Initialize is already in flight when the session first becomes
|
|
632
887
|
// visible to the sweeper. Count it until handleRequest settles.
|
|
633
888
|
active: 1,
|
|
889
|
+
refused: false,
|
|
634
890
|
};
|
|
635
891
|
sessions.set(id, live);
|
|
636
892
|
let held = true;
|
|
@@ -676,6 +932,21 @@ export async function runHttp(cfg) {
|
|
|
676
932
|
// every call until they run use_computer 404s, and the id of a machine
|
|
677
933
|
// that is not theirs is named back to them by way of explanation.
|
|
678
934
|
computerId: undefined,
|
|
935
|
+
platform: {
|
|
936
|
+
serviceSecret,
|
|
937
|
+
// Hosted only. Marks the session, so the NEXT request on this bearer
|
|
938
|
+
// is refused before dispatch, and turns the request in flight into a
|
|
939
|
+
// 401 if nothing of its answer has been sent yet.
|
|
940
|
+
onBearerRefused: challenge
|
|
941
|
+
? () => {
|
|
942
|
+
const id = t.sessionId;
|
|
943
|
+
const live = id ? sessions.get(id) : undefined;
|
|
944
|
+
if (live)
|
|
945
|
+
live.refused = true;
|
|
946
|
+
heldAnswer.getStore()?.refuse();
|
|
947
|
+
}
|
|
948
|
+
: undefined,
|
|
949
|
+
},
|
|
679
950
|
});
|
|
680
951
|
mcp = server;
|
|
681
952
|
await server.connect(t);
|
|
@@ -713,13 +984,22 @@ export async function runHttp(cfg) {
|
|
|
713
984
|
// the POST does.
|
|
714
985
|
const bySession = async (req, res) => {
|
|
715
986
|
const sessionId = req.header('mcp-session-id');
|
|
987
|
+
const key = bearer(req);
|
|
988
|
+
if (challenge && !key)
|
|
989
|
+
return challenged(res, NO_TOKEN);
|
|
716
990
|
const live = sessionId ? sessions.get(sessionId) : undefined;
|
|
717
991
|
if (!live)
|
|
718
992
|
return notFound(res, 'Unknown session.');
|
|
719
|
-
const key = bearer(req);
|
|
720
993
|
if (!key || !sameKey(live.keyDigest, key)) {
|
|
994
|
+
// As on POST: hosted answers a different bearer as an unknown session.
|
|
995
|
+
if (challenge)
|
|
996
|
+
return notFound(res, 'Unknown session.');
|
|
721
997
|
return unauthorized(res, 'This session belongs to a different API key.');
|
|
722
998
|
}
|
|
999
|
+
// The stream is refused on a token the platform has already refused; a
|
|
1000
|
+
// DELETE is still honoured, since the digest shows it is the holder.
|
|
1001
|
+
if (challenge && live.refused && req.method === 'GET')
|
|
1002
|
+
return challenged(res, TOKEN_REFUSED);
|
|
723
1003
|
// The DELETE is a request and is held for; the GET is the notification
|
|
724
1004
|
// stream and is only noted. See `serving`.
|
|
725
1005
|
if (req.method === 'GET') {
|
|
@@ -790,7 +1070,13 @@ export async function runHttp(cfg) {
|
|
|
790
1070
|
const addr = http.address();
|
|
791
1071
|
const bound = typeof addr === 'object' && addr ? addr.port : cfg.port;
|
|
792
1072
|
boundPort = bound;
|
|
793
|
-
console.error(
|
|
1073
|
+
console.error(metadataUrl
|
|
1074
|
+
? `mandala-computer-mcp on http://${cfg.host}:${bound}/mcp — OAuth: callers without a bearer are sent to ${metadataUrl}`
|
|
1075
|
+
: `mandala-computer-mcp on http://${cfg.host}:${bound}/mcp — callers authenticate with their own Mandala API key`);
|
|
1076
|
+
// Said, never shown: whether the secret is set is the useful fact.
|
|
1077
|
+
if (metadataUrl && !serviceSecret) {
|
|
1078
|
+
console.error(' MANDALA_MCP_SERVICE_SECRET is not set — the platform accepts OAuth access tokens only with it, so every tool call will be refused');
|
|
1079
|
+
}
|
|
794
1080
|
// Said once, at the only moment anybody is reading. A bind that is not
|
|
795
1081
|
// loopback cannot have its legitimate Host values guessed, so the check
|
|
796
1082
|
// is off and the operator is the only one who can turn it on — and an
|
|
@@ -856,6 +1142,100 @@ export async function runHttp(cfg) {
|
|
|
856
1142
|
http.on('close', teardown);
|
|
857
1143
|
});
|
|
858
1144
|
}
|
|
1145
|
+
const DEFAULT_BEARER_CHECK_TTL_MS = 60_000;
|
|
1146
|
+
const DEFAULT_MAX_FAILED_INITIALIZES = 20;
|
|
1147
|
+
const DEFAULT_EXHAUSTED_PROBE_INTERVAL_MS = 5_000;
|
|
1148
|
+
const FAILURE_WINDOW_MS = 60_000;
|
|
1149
|
+
const BEARER_CHECK_TIMEOUT_MS = 10_000;
|
|
1150
|
+
/** How many bearers this server will be asking the platform about at once. */
|
|
1151
|
+
const MAX_BEARER_CHECKS_IN_FLIGHT = 32;
|
|
1152
|
+
const MAX_ACCEPTED_BEARERS = 4096;
|
|
1153
|
+
const MAX_FAILURE_SOURCES = 10_000;
|
|
1154
|
+
/** Whether a POST body holds a JSON-RPC request, which is what opens a stream. */
|
|
1155
|
+
function carriesRequest(body) {
|
|
1156
|
+
const isRequest = (m) => typeof m === 'object' && m !== null && 'method' in m && 'id' in m;
|
|
1157
|
+
return Array.isArray(body) ? body.some(isRequest) : isRequest(body);
|
|
1158
|
+
}
|
|
1159
|
+
const NO_TOKEN = 'Authorization required. Authorize this client with Mandala (OAuth), or send a Mandala API key: Authorization: Bearer …';
|
|
1160
|
+
const TOKEN_REFUSED = 'The platform no longer accepts this access token. Refresh it, or authorize again.';
|
|
1161
|
+
/**
|
|
1162
|
+
* Hold a response's status line until its first byte of body (hosted mode).
|
|
1163
|
+
*
|
|
1164
|
+
* A Streamable HTTP POST answers 200 and opens its event stream the moment the
|
|
1165
|
+
* request is dispatched, long before a tool reaches the platform — so a token
|
|
1166
|
+
* the platform refuses could only ever come back as a tool error inside a 200,
|
|
1167
|
+
* which no MCP client treats as "refresh your token". Deferring `writeHead`
|
|
1168
|
+
* and `flushHeaders` until the first write lets that refusal become the 401
|
|
1169
|
+
* the client acts on instead: the platform's 401 is reported before the tool
|
|
1170
|
+
* has produced anything, so the first write finds the answer already refused.
|
|
1171
|
+
*
|
|
1172
|
+
* The first byte of anything — a result, a progress notification, the SDK's
|
|
1173
|
+
* keep-alive comment — commits the stream, and a refusal after that stays a
|
|
1174
|
+
* tool error. The session is marked either way, so the next request carrying
|
|
1175
|
+
* the refused bearer gets the 401 before it is dispatched.
|
|
1176
|
+
*/
|
|
1177
|
+
function holdAnswer(res, answer401) {
|
|
1178
|
+
const target = res;
|
|
1179
|
+
const names = ['writeHead', 'flushHeaders', 'write', 'end'];
|
|
1180
|
+
const own = Object.fromEntries(names.map((n) => [n, target[n]]));
|
|
1181
|
+
const deferred = [];
|
|
1182
|
+
let state = 'holding';
|
|
1183
|
+
const restore = () => {
|
|
1184
|
+
for (const n of names)
|
|
1185
|
+
target[n] = own[n];
|
|
1186
|
+
};
|
|
1187
|
+
const release = () => {
|
|
1188
|
+
if (state !== 'holding')
|
|
1189
|
+
return;
|
|
1190
|
+
state = 'released';
|
|
1191
|
+
restore();
|
|
1192
|
+
for (const replay of deferred.splice(0))
|
|
1193
|
+
replay();
|
|
1194
|
+
};
|
|
1195
|
+
const refuse = () => {
|
|
1196
|
+
if (state !== 'holding')
|
|
1197
|
+
return;
|
|
1198
|
+
state = 'refused';
|
|
1199
|
+
restore();
|
|
1200
|
+
if (!res.headersSent && !res.writableEnded && !res.destroyed)
|
|
1201
|
+
answer401();
|
|
1202
|
+
// Whatever the transport still writes belongs to the answer that was
|
|
1203
|
+
// replaced, and writing after end would raise an unhandled 'error'.
|
|
1204
|
+
target.writeHead = () => res;
|
|
1205
|
+
target.flushHeaders = () => undefined;
|
|
1206
|
+
target.write = (...args) => {
|
|
1207
|
+
const cb = args.find((a) => typeof a === 'function');
|
|
1208
|
+
cb?.();
|
|
1209
|
+
return true;
|
|
1210
|
+
};
|
|
1211
|
+
target.end = (...args) => {
|
|
1212
|
+
const cb = args.find((a) => typeof a === 'function');
|
|
1213
|
+
cb?.();
|
|
1214
|
+
return res;
|
|
1215
|
+
};
|
|
1216
|
+
};
|
|
1217
|
+
target.writeHead = (...args) => {
|
|
1218
|
+
if (state !== 'holding')
|
|
1219
|
+
return target.writeHead.apply(res, args);
|
|
1220
|
+
deferred.push(() => own.writeHead.apply(res, args));
|
|
1221
|
+
return res;
|
|
1222
|
+
};
|
|
1223
|
+
target.flushHeaders = (...args) => {
|
|
1224
|
+
if (state !== 'holding')
|
|
1225
|
+
return target.flushHeaders.apply(res, args);
|
|
1226
|
+
deferred.push(() => own.flushHeaders.apply(res, args));
|
|
1227
|
+
return undefined;
|
|
1228
|
+
};
|
|
1229
|
+
target.write = (...args) => {
|
|
1230
|
+
release();
|
|
1231
|
+
return target.write.apply(res, args);
|
|
1232
|
+
};
|
|
1233
|
+
target.end = (...args) => {
|
|
1234
|
+
release();
|
|
1235
|
+
return target.end.apply(res, args);
|
|
1236
|
+
};
|
|
1237
|
+
return { refuse };
|
|
1238
|
+
}
|
|
859
1239
|
/**
|
|
860
1240
|
* Whether this request is allowed through the 96mb parser.
|
|
861
1241
|
*
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
* spawning it — a host application that already knows who the user is can build
|
|
4
4
|
* a server on their key without going through the CLI.
|
|
5
5
|
*/
|
|
6
|
-
export { Api, DEFAULT_BASE_URL, MODEL_KEY_HEADER } from './api.js';
|
|
7
|
-
export { APIError, AuthenticationError, CancelledError, ConflictError, ConnectivityError, ConnectivityInterruptedError, GatewayTimeoutError, isTransient, MandalaError, MoveRequiredError, NotFoundError, OriginResponseError, OriginTLSError, OriginUnreachableError, PermissionDeniedError, PlanLimitError, RangeNotSatisfiableError, RateLimitError, type ReasonKind, RedirectError, reasonKind, UnavailableError, } from './errors.js';
|
|
8
|
-
export { type HttpConfig, runHttp } from './http.js';
|
|
6
|
+
export { Api, type ApiOptions, DEFAULT_BASE_URL, MODEL_KEY_HEADER, SERVICE_HEADER, } from './api.js';
|
|
7
|
+
export { APIError, type APIErrorMetadata, AuthenticationError, CancelledError, ConflictError, ConnectivityError, ConnectivityInterruptedError, CreateOnlyConflictError, FileExistsError, GatewayTimeoutError, isTransient, MandalaError, MethodNotAllowedError, MoveRequiredError, NotFoundError, OriginResponseError, OriginTLSError, OriginUnreachableError, PermissionDeniedError, PlanLimitError, RangeNotSatisfiableError, RateLimitError, type ReasonKind, RedirectError, reasonKind, UnavailableError, } from './errors.js';
|
|
8
|
+
export { bearerChallenge, type HttpConfig, runHttp } from './http.js';
|
|
9
|
+
export type { Secret, SecretLimits, SecretList, SecretStore } from './secret-store.js';
|
|
9
10
|
export { createServer, SERVER_NAME, SERVER_VERSION, type ServerConfig } from './server.js';
|
|
10
11
|
export { Session, type SessionConfig } from './session.js';
|
|
11
|
-
export { runStdio } from './stdio.js';
|
|
12
|
+
export { runStdio, type StdioConfig } from './stdio.js';
|
|
12
13
|
export type { ToolOptions } from './tools/types.js';
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,GAAG,EACH,KAAK,UAAU,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,QAAQ,EACR,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,4BAA4B,EAC5B,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,KAAK,UAAU,EACf,aAAa,EACb,UAAU,EACV,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACtE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|