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.
Files changed (128) hide show
  1. package/README.md +558 -29
  2. package/dist/api.d.ts +59 -1
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +404 -33
  5. package/dist/api.js.map +1 -1
  6. package/dist/artifacts.d.ts +63 -0
  7. package/dist/artifacts.d.ts.map +1 -0
  8. package/dist/artifacts.js +81 -0
  9. package/dist/artifacts.js.map +1 -0
  10. package/dist/cli.d.ts +4 -0
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +52 -21
  13. package/dist/cli.js.map +1 -1
  14. package/dist/credentials.d.ts +33 -0
  15. package/dist/credentials.d.ts.map +1 -0
  16. package/dist/credentials.js +395 -0
  17. package/dist/credentials.js.map +1 -0
  18. package/dist/errors.d.ts +122 -11
  19. package/dist/errors.d.ts.map +1 -1
  20. package/dist/errors.js +237 -41
  21. package/dist/errors.js.map +1 -1
  22. package/dist/executions.d.ts +43 -0
  23. package/dist/executions.d.ts.map +1 -0
  24. package/dist/executions.js +162 -0
  25. package/dist/executions.js.map +1 -0
  26. package/dist/format.d.ts +33 -8
  27. package/dist/format.d.ts.map +1 -1
  28. package/dist/format.js +107 -12
  29. package/dist/format.js.map +1 -1
  30. package/dist/http.d.ts +42 -0
  31. package/dist/http.d.ts.map +1 -1
  32. package/dist/http.js +383 -3
  33. package/dist/http.js.map +1 -1
  34. package/dist/index.d.ts +5 -4
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +3 -3
  37. package/dist/index.js.map +1 -1
  38. package/dist/paths.d.ts +50 -2
  39. package/dist/paths.d.ts.map +1 -1
  40. package/dist/paths.js +65 -5
  41. package/dist/paths.js.map +1 -1
  42. package/dist/results.d.ts +97 -0
  43. package/dist/results.d.ts.map +1 -0
  44. package/dist/results.js +263 -0
  45. package/dist/results.js.map +1 -0
  46. package/dist/secret-errors.d.ts +59 -0
  47. package/dist/secret-errors.d.ts.map +1 -0
  48. package/dist/secret-errors.js +199 -0
  49. package/dist/secret-errors.js.map +1 -0
  50. package/dist/secret-store.d.ts +115 -0
  51. package/dist/secret-store.d.ts.map +1 -0
  52. package/dist/secret-store.js +105 -0
  53. package/dist/secret-store.js.map +1 -0
  54. package/dist/server.d.ts +3 -2
  55. package/dist/server.d.ts.map +1 -1
  56. package/dist/server.js +60 -9
  57. package/dist/server.js.map +1 -1
  58. package/dist/session.d.ts +6 -1
  59. package/dist/session.d.ts.map +1 -1
  60. package/dist/session.js +1 -1
  61. package/dist/session.js.map +1 -1
  62. package/dist/stdio.d.ts +5 -1
  63. package/dist/stdio.d.ts.map +1 -1
  64. package/dist/stdio.js +10 -4
  65. package/dist/stdio.js.map +1 -1
  66. package/dist/tool-filters.d.ts +38 -0
  67. package/dist/tool-filters.d.ts.map +1 -0
  68. package/dist/tool-filters.js +137 -0
  69. package/dist/tool-filters.js.map +1 -0
  70. package/dist/tools/account.d.ts +3 -0
  71. package/dist/tools/account.d.ts.map +1 -0
  72. package/dist/tools/account.js +122 -0
  73. package/dist/tools/account.js.map +1 -0
  74. package/dist/tools/activities.d.ts +3 -0
  75. package/dist/tools/activities.d.ts.map +1 -0
  76. package/dist/tools/activities.js +140 -0
  77. package/dist/tools/activities.js.map +1 -0
  78. package/dist/tools/agent.d.ts.map +1 -1
  79. package/dist/tools/agent.js +21 -9
  80. package/dist/tools/agent.js.map +1 -1
  81. package/dist/tools/artifacts.d.ts +3 -0
  82. package/dist/tools/artifacts.d.ts.map +1 -0
  83. package/dist/tools/artifacts.js +97 -0
  84. package/dist/tools/artifacts.js.map +1 -0
  85. package/dist/tools/chat.d.ts +6 -0
  86. package/dist/tools/chat.d.ts.map +1 -0
  87. package/dist/tools/chat.js +192 -0
  88. package/dist/tools/chat.js.map +1 -0
  89. package/dist/tools/computers.d.ts.map +1 -1
  90. package/dist/tools/computers.js +28 -16
  91. package/dist/tools/computers.js.map +1 -1
  92. package/dist/tools/directory.d.ts +13 -0
  93. package/dist/tools/directory.d.ts.map +1 -0
  94. package/dist/tools/directory.js +88 -0
  95. package/dist/tools/directory.js.map +1 -0
  96. package/dist/tools/executions.d.ts +3 -0
  97. package/dist/tools/executions.d.ts.map +1 -0
  98. package/dist/tools/executions.js +87 -0
  99. package/dist/tools/executions.js.map +1 -0
  100. package/dist/tools/guest.d.ts.map +1 -1
  101. package/dist/tools/guest.js +184 -35
  102. package/dist/tools/guest.js.map +1 -1
  103. package/dist/tools/input.d.ts +2 -0
  104. package/dist/tools/input.d.ts.map +1 -1
  105. package/dist/tools/input.js +31 -5
  106. package/dist/tools/input.js.map +1 -1
  107. package/dist/tools/results.d.ts +30 -0
  108. package/dist/tools/results.d.ts.map +1 -0
  109. package/dist/tools/results.js +106 -0
  110. package/dist/tools/results.js.map +1 -0
  111. package/dist/tools/secrets.d.ts +78 -0
  112. package/dist/tools/secrets.d.ts.map +1 -0
  113. package/dist/tools/secrets.js +448 -0
  114. package/dist/tools/secrets.js.map +1 -0
  115. package/dist/tools/signals.d.ts +3 -0
  116. package/dist/tools/signals.d.ts.map +1 -0
  117. package/dist/tools/signals.js +116 -0
  118. package/dist/tools/signals.js.map +1 -0
  119. package/dist/tools/snapshots.d.ts.map +1 -1
  120. package/dist/tools/snapshots.js +52 -10
  121. package/dist/tools/snapshots.js.map +1 -1
  122. package/dist/tools/ssh.d.ts +3 -0
  123. package/dist/tools/ssh.d.ts.map +1 -0
  124. package/dist/tools/ssh.js +186 -0
  125. package/dist/tools/ssh.js.map +1 -0
  126. package/dist/tools/webhooks.js +1 -1
  127. package/dist/tools/webhooks.js.map +1 -1
  128. 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
- 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))));
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(`mandala-computer-mcp on http://${cfg.host}:${bound}/mcp — callers authenticate with their own Mandala API key`);
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,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,KAAK,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACrD,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,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
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"}