mandala-computer-mcp 0.5.0 → 0.7.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 (84) hide show
  1. package/README.md +277 -20
  2. package/dist/api.d.ts +73 -2
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +271 -22
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +17 -0
  8. package/dist/cli.js.map +1 -1
  9. package/dist/errors.d.ts +183 -5
  10. package/dist/errors.d.ts.map +1 -1
  11. package/dist/errors.js +377 -10
  12. package/dist/errors.js.map +1 -1
  13. package/dist/format.d.ts +90 -0
  14. package/dist/format.d.ts.map +1 -1
  15. package/dist/format.js +102 -2
  16. package/dist/format.js.map +1 -1
  17. package/dist/http.d.ts +42 -0
  18. package/dist/http.d.ts.map +1 -1
  19. package/dist/http.js +392 -6
  20. package/dist/http.js.map +1 -1
  21. package/dist/index.d.ts +4 -3
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +3 -3
  24. package/dist/index.js.map +1 -1
  25. package/dist/paths.d.ts +74 -3
  26. package/dist/paths.d.ts.map +1 -1
  27. package/dist/paths.js +89 -10
  28. package/dist/paths.js.map +1 -1
  29. package/dist/secret-errors.d.ts +59 -0
  30. package/dist/secret-errors.d.ts.map +1 -0
  31. package/dist/secret-errors.js +199 -0
  32. package/dist/secret-errors.js.map +1 -0
  33. package/dist/secret-store.d.ts +115 -0
  34. package/dist/secret-store.d.ts.map +1 -0
  35. package/dist/secret-store.js +105 -0
  36. package/dist/secret-store.js.map +1 -0
  37. package/dist/server.d.ts +1 -1
  38. package/dist/server.d.ts.map +1 -1
  39. package/dist/server.js +3 -1
  40. package/dist/server.js.map +1 -1
  41. package/dist/session.d.ts +6 -1
  42. package/dist/session.d.ts.map +1 -1
  43. package/dist/session.js +1 -1
  44. package/dist/session.js.map +1 -1
  45. package/dist/tool-filters.d.ts +4 -4
  46. package/dist/tool-filters.d.ts.map +1 -1
  47. package/dist/tool-filters.js +22 -2
  48. package/dist/tool-filters.js.map +1 -1
  49. package/dist/tools/account.d.ts +14 -0
  50. package/dist/tools/account.d.ts.map +1 -1
  51. package/dist/tools/account.js +118 -0
  52. package/dist/tools/account.js.map +1 -1
  53. package/dist/tools/agent.d.ts.map +1 -1
  54. package/dist/tools/agent.js +7 -2
  55. package/dist/tools/agent.js.map +1 -1
  56. package/dist/tools/computers.d.ts.map +1 -1
  57. package/dist/tools/computers.js +277 -57
  58. package/dist/tools/computers.js.map +1 -1
  59. package/dist/tools/guest.d.ts.map +1 -1
  60. package/dist/tools/guest.js +140 -22
  61. package/dist/tools/guest.js.map +1 -1
  62. package/dist/tools/input.d.ts +11 -0
  63. package/dist/tools/input.d.ts.map +1 -1
  64. package/dist/tools/input.js +277 -20
  65. package/dist/tools/input.js.map +1 -1
  66. package/dist/tools/operations.d.ts +44 -0
  67. package/dist/tools/operations.d.ts.map +1 -0
  68. package/dist/tools/operations.js +232 -0
  69. package/dist/tools/operations.js.map +1 -0
  70. package/dist/tools/secrets.d.ts +42 -13
  71. package/dist/tools/secrets.d.ts.map +1 -1
  72. package/dist/tools/secrets.js +306 -15
  73. package/dist/tools/secrets.js.map +1 -1
  74. package/dist/tools/snapshots.d.ts.map +1 -1
  75. package/dist/tools/snapshots.js +44 -15
  76. package/dist/tools/snapshots.js.map +1 -1
  77. package/dist/tools/ssh.d.ts.map +1 -1
  78. package/dist/tools/ssh.js +19 -2
  79. package/dist/tools/ssh.js.map +1 -1
  80. package/dist/tools/templates.js +1 -1
  81. package/dist/tools/templates.js.map +1 -1
  82. package/dist/tools/webhooks.js +1 -1
  83. package/dist/tools/webhooks.js.map +1 -1
  84. package/package.json +1 -1
package/dist/http.js CHANGED
@@ -5,9 +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';
10
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
+ }
11
59
  const DEFAULT_TTL_MS = 30 * 60 * 1000;
12
60
  /**
13
61
  * A ceiling on live sessions.
@@ -142,7 +190,138 @@ export async function runHttp(cfg) {
142
190
  // with a generic 500. Validate it before opening the listening socket, using
143
191
  // the same constructor and therefore the same rules as every real session.
144
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
+ };
145
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');
146
325
  // parseBody consumes every POST /mcp body. Every other route deliberately
147
326
  // ignores request bodies, so put those requests in flowing mode immediately:
148
327
  // leaving bytes unread can strand a keep-alive connection behind one wrong
@@ -548,6 +727,14 @@ export async function runHttp(cfg) {
548
727
  app.post('/mcp', parseBody, async (req, res) => {
549
728
  const sessionId = req.header('mcp-session-id');
550
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
+ }
551
738
  if (sessionId) {
552
739
  try {
553
740
  const live = sessions.get(sessionId);
@@ -557,10 +744,36 @@ export async function runHttp(cfg) {
557
744
  // session id travels in a plain header and is the sort of thing that ends
558
745
  // up in a proxy log; on its own it must not be a credential.
559
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
+ }
560
759
  return unauthorized(res, 'This session belongs to a different API key.', rpcId(req));
561
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
+ }
562
771
  const lease = res.locals.largeBodyLease;
563
- return await requestBodyLease.run(lease, () => serving(live, () => live.transport.handleRequest(req, res, req.body)));
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))));
564
777
  }
565
778
  finally {
566
779
  // A verified session is the only request allowed through the large
@@ -572,9 +785,14 @@ export async function runHttp(cfg) {
572
785
  // Sessionless requests always use the small parser. This no-op keeps the
573
786
  // ownership explicit if the parser policy changes later.
574
787
  releaseLargeBody(res);
575
- if (!isInitializeRequest(req.body)) {
576
- return badRequest(res, 'No session id, and this is not an initialize request.', rpcId(req));
577
- }
788
+ // Who is asking is settled before what they asked for. A sessionless
789
+ // request that is not an initialize is a protocol mistake (400), but a
790
+ // client with no credential, or one the platform refuses, has an auth
791
+ // problem first — and a 400 "No session id" sent it looking at its session
792
+ // handling when the fix was its key. So the key, the Host check and, hosted,
793
+ // the bearer probe all run before the initialize test; only the session cap
794
+ // and the build below are an initialize's alone.
795
+ const initialize = isInitializeRequest(req.body);
578
796
  if (!key) {
579
797
  return unauthorized(res, 'Send your Mandala API key as a bearer token: Authorization: Bearer com_…', rpcId(req));
580
798
  }
@@ -587,6 +805,48 @@ export async function runHttp(cfg) {
587
805
  const refused = dnsRebindingRefusal(req, hosts, allowedOrigins);
588
806
  if (refused)
589
807
  return rpcError(res, 403, -32000, refused, rpcId(req));
808
+ // Hosted: no session for a bearer the platform does not accept. Before the
809
+ // cap and the reservation, so a refused bearer never holds a slot.
810
+ if (challenge) {
811
+ // A spent budget does not close the address. Many clients can share one
812
+ // (a NAT, an office), and one bad neighbour must not lock out the rest:
813
+ // a bearer the platform already accepted passes outright, and a new one
814
+ // still gets a probe — but at most one per interval per spent address,
815
+ // taken when the probe starts, so the address costs the platform one probe per
816
+ // interval however hard it pushes, and a valid client there waits at
817
+ // most one interval. The process-wide cap on probes bounds the total.
818
+ const spent = !isAccepted(key) && overFailureBudget(req) !== undefined;
819
+ if (spent) {
820
+ const entry = failures.get(sourceOf(req));
821
+ const wait = entry?.lastProbeAt !== undefined ? entry.lastProbeAt + exhaustedInterval - Date.now() : 0;
822
+ if (wait > 0) {
823
+ res.set('Retry-After', String(Math.max(1, Math.ceil(wait / 1000))));
824
+ return rpcError(res, 429, -32002, 'Too many refused tokens from this address. Retry later with a valid token.', rpcId(req));
825
+ }
826
+ }
827
+ // The interval is spent only by a probe that starts: a request turned
828
+ // away because the process-wide cap is full reached nobody, and must not
829
+ // make the next client at this address wait out an interval for it.
830
+ const verdict = await checkBearer(key, spent
831
+ ? () => {
832
+ const entry = failures.get(sourceOf(req));
833
+ if (entry)
834
+ entry.lastProbeAt = Date.now();
835
+ }
836
+ : undefined);
837
+ if (verdict === 'refused') {
838
+ noteFailure(req);
839
+ return challenged(res, TOKEN_REFUSED, rpcId(req));
840
+ }
841
+ // Not an initialize, it is a 400 whatever the platform could say about
842
+ // the key short of refusing it.
843
+ if (verdict === 'unknown' && initialize) {
844
+ return unavailable(res, 'The platform could not confirm this token just now. Retry shortly.', rpcId(req));
845
+ }
846
+ }
847
+ if (!initialize) {
848
+ return badRequest(res, 'No session id, and this is not an initialize request.', rpcId(req));
849
+ }
590
850
  // Swept sessions free their slot on the timer; this is the backstop for the
591
851
  // case the timer cannot help with, which is arrivals faster than the TTL.
592
852
  if (sessions.size + pending >= maxSessions) {
@@ -618,6 +878,7 @@ export async function runHttp(cfg) {
618
878
  try {
619
879
  const t = new StreamableHTTPServerTransport({
620
880
  sessionIdGenerator: () => randomUUID(),
881
+ ...(cfg.sseKeepAliveMs !== undefined ? { keepAliveMs: cfg.sseKeepAliveMs } : {}),
621
882
  // On whenever there is a list to check against, which for a loopback
622
883
  // bind is always — see `allowedHosts`. A browser cannot be stopped from
623
884
  // resolving a name it controls to 127.0.0.1, so the Host header is the
@@ -635,6 +896,7 @@ export async function runHttp(cfg) {
635
896
  // Initialize is already in flight when the session first becomes
636
897
  // visible to the sweeper. Count it until handleRequest settles.
637
898
  active: 1,
899
+ refused: false,
638
900
  };
639
901
  sessions.set(id, live);
640
902
  let held = true;
@@ -680,6 +942,21 @@ export async function runHttp(cfg) {
680
942
  // every call until they run use_computer 404s, and the id of a machine
681
943
  // that is not theirs is named back to them by way of explanation.
682
944
  computerId: undefined,
945
+ platform: {
946
+ serviceSecret,
947
+ // Hosted only. Marks the session, so the NEXT request on this bearer
948
+ // is refused before dispatch, and turns the request in flight into a
949
+ // 401 if nothing of its answer has been sent yet.
950
+ onBearerRefused: challenge
951
+ ? () => {
952
+ const id = t.sessionId;
953
+ const live = id ? sessions.get(id) : undefined;
954
+ if (live)
955
+ live.refused = true;
956
+ heldAnswer.getStore()?.refuse();
957
+ }
958
+ : undefined,
959
+ },
683
960
  });
684
961
  mcp = server;
685
962
  await server.connect(t);
@@ -717,13 +994,22 @@ export async function runHttp(cfg) {
717
994
  // the POST does.
718
995
  const bySession = async (req, res) => {
719
996
  const sessionId = req.header('mcp-session-id');
997
+ const key = bearer(req);
998
+ if (challenge && !key)
999
+ return challenged(res, NO_TOKEN);
720
1000
  const live = sessionId ? sessions.get(sessionId) : undefined;
721
1001
  if (!live)
722
1002
  return notFound(res, 'Unknown session.');
723
- const key = bearer(req);
724
1003
  if (!key || !sameKey(live.keyDigest, key)) {
1004
+ // As on POST: hosted answers a different bearer as an unknown session.
1005
+ if (challenge)
1006
+ return notFound(res, 'Unknown session.');
725
1007
  return unauthorized(res, 'This session belongs to a different API key.');
726
1008
  }
1009
+ // The stream is refused on a token the platform has already refused; a
1010
+ // DELETE is still honoured, since the digest shows it is the holder.
1011
+ if (challenge && live.refused && req.method === 'GET')
1012
+ return challenged(res, TOKEN_REFUSED);
727
1013
  // The DELETE is a request and is held for; the GET is the notification
728
1014
  // stream and is only noted. See `serving`.
729
1015
  if (req.method === 'GET') {
@@ -794,7 +1080,13 @@ export async function runHttp(cfg) {
794
1080
  const addr = http.address();
795
1081
  const bound = typeof addr === 'object' && addr ? addr.port : cfg.port;
796
1082
  boundPort = bound;
797
- console.error(`mandala-computer-mcp on http://${cfg.host}:${bound}/mcp — callers authenticate with their own Mandala API key`);
1083
+ console.error(metadataUrl
1084
+ ? `mandala-computer-mcp on http://${cfg.host}:${bound}/mcp — OAuth: callers without a bearer are sent to ${metadataUrl}`
1085
+ : `mandala-computer-mcp on http://${cfg.host}:${bound}/mcp — callers authenticate with their own Mandala API key`);
1086
+ // Said, never shown: whether the secret is set is the useful fact.
1087
+ if (metadataUrl && !serviceSecret) {
1088
+ 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');
1089
+ }
798
1090
  // Said once, at the only moment anybody is reading. A bind that is not
799
1091
  // loopback cannot have its legitimate Host values guessed, so the check
800
1092
  // is off and the operator is the only one who can turn it on — and an
@@ -860,6 +1152,100 @@ export async function runHttp(cfg) {
860
1152
  http.on('close', teardown);
861
1153
  });
862
1154
  }
1155
+ const DEFAULT_BEARER_CHECK_TTL_MS = 60_000;
1156
+ const DEFAULT_MAX_FAILED_INITIALIZES = 20;
1157
+ const DEFAULT_EXHAUSTED_PROBE_INTERVAL_MS = 5_000;
1158
+ const FAILURE_WINDOW_MS = 60_000;
1159
+ const BEARER_CHECK_TIMEOUT_MS = 10_000;
1160
+ /** How many bearers this server will be asking the platform about at once. */
1161
+ const MAX_BEARER_CHECKS_IN_FLIGHT = 32;
1162
+ const MAX_ACCEPTED_BEARERS = 4096;
1163
+ const MAX_FAILURE_SOURCES = 10_000;
1164
+ /** Whether a POST body holds a JSON-RPC request, which is what opens a stream. */
1165
+ function carriesRequest(body) {
1166
+ const isRequest = (m) => typeof m === 'object' && m !== null && 'method' in m && 'id' in m;
1167
+ return Array.isArray(body) ? body.some(isRequest) : isRequest(body);
1168
+ }
1169
+ const NO_TOKEN = 'Authorization required. Authorize this client with Mandala (OAuth), or send a Mandala API key: Authorization: Bearer …';
1170
+ const TOKEN_REFUSED = 'The platform no longer accepts this access token. Refresh it, or authorize again.';
1171
+ /**
1172
+ * Hold a response's status line until its first byte of body (hosted mode).
1173
+ *
1174
+ * A Streamable HTTP POST answers 200 and opens its event stream the moment the
1175
+ * request is dispatched, long before a tool reaches the platform — so a token
1176
+ * the platform refuses could only ever come back as a tool error inside a 200,
1177
+ * which no MCP client treats as "refresh your token". Deferring `writeHead`
1178
+ * and `flushHeaders` until the first write lets that refusal become the 401
1179
+ * the client acts on instead: the platform's 401 is reported before the tool
1180
+ * has produced anything, so the first write finds the answer already refused.
1181
+ *
1182
+ * The first byte of anything — a result, a progress notification, the SDK's
1183
+ * keep-alive comment — commits the stream, and a refusal after that stays a
1184
+ * tool error. The session is marked either way, so the next request carrying
1185
+ * the refused bearer gets the 401 before it is dispatched.
1186
+ */
1187
+ function holdAnswer(res, answer401) {
1188
+ const target = res;
1189
+ const names = ['writeHead', 'flushHeaders', 'write', 'end'];
1190
+ const own = Object.fromEntries(names.map((n) => [n, target[n]]));
1191
+ const deferred = [];
1192
+ let state = 'holding';
1193
+ const restore = () => {
1194
+ for (const n of names)
1195
+ target[n] = own[n];
1196
+ };
1197
+ const release = () => {
1198
+ if (state !== 'holding')
1199
+ return;
1200
+ state = 'released';
1201
+ restore();
1202
+ for (const replay of deferred.splice(0))
1203
+ replay();
1204
+ };
1205
+ const refuse = () => {
1206
+ if (state !== 'holding')
1207
+ return;
1208
+ state = 'refused';
1209
+ restore();
1210
+ if (!res.headersSent && !res.writableEnded && !res.destroyed)
1211
+ answer401();
1212
+ // Whatever the transport still writes belongs to the answer that was
1213
+ // replaced, and writing after end would raise an unhandled 'error'.
1214
+ target.writeHead = () => res;
1215
+ target.flushHeaders = () => undefined;
1216
+ target.write = (...args) => {
1217
+ const cb = args.find((a) => typeof a === 'function');
1218
+ cb?.();
1219
+ return true;
1220
+ };
1221
+ target.end = (...args) => {
1222
+ const cb = args.find((a) => typeof a === 'function');
1223
+ cb?.();
1224
+ return res;
1225
+ };
1226
+ };
1227
+ target.writeHead = (...args) => {
1228
+ if (state !== 'holding')
1229
+ return target.writeHead.apply(res, args);
1230
+ deferred.push(() => own.writeHead.apply(res, args));
1231
+ return res;
1232
+ };
1233
+ target.flushHeaders = (...args) => {
1234
+ if (state !== 'holding')
1235
+ return target.flushHeaders.apply(res, args);
1236
+ deferred.push(() => own.flushHeaders.apply(res, args));
1237
+ return undefined;
1238
+ };
1239
+ target.write = (...args) => {
1240
+ release();
1241
+ return target.write.apply(res, args);
1242
+ };
1243
+ target.end = (...args) => {
1244
+ release();
1245
+ return target.end.apply(res, args);
1246
+ };
1247
+ return { refuse };
1248
+ }
863
1249
  /**
864
1250
  * Whether this request is allowed through the 96mb parser.
865
1251
  *
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,9 +3,10 @@
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, type APIErrorMetadata, AuthenticationError, CancelledError, ConflictError, ConnectivityError, ConnectivityInterruptedError, GatewayTimeoutError, isTransient, MandalaError, MethodNotAllowedError, 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
12
  export { runStdio, type StdioConfig } from './stdio.js';