mcp-use 1.11.0-canary.3 → 1.11.0-canary.4

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 (41) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/{chunk-BONN23WU.js → chunk-A4WWKMPI.js} +2 -2
  3. package/dist/{chunk-DKLRVWPJ.js → chunk-APOF62EA.js} +3 -8
  4. package/dist/{chunk-KZL3RCT6.js → chunk-BE23AOUV.js} +1419 -88
  5. package/dist/{chunk-TZ7SHSRY.js → chunk-K6YNB2Z3.js} +1 -1
  6. package/dist/{chunk-WFPXUU4A.js → chunk-LHRGDQ5C.js} +1 -1
  7. package/dist/{chunk-FDWI2WVM.js → chunk-OIXS25J5.js} +4 -89
  8. package/dist/chunk-QH52FRP3.js +101 -0
  9. package/dist/chunk-TCLI6SPF.js +12 -0
  10. package/dist/{chunk-YIZWQ5PM.js → chunk-XXCHNDUF.js} +1 -1
  11. package/dist/index.cjs +4731 -4438
  12. package/dist/index.js +26 -1035
  13. package/dist/src/agents/index.cjs +2872 -157
  14. package/dist/src/agents/index.d.ts +2 -0
  15. package/dist/src/agents/index.d.ts.map +1 -1
  16. package/dist/src/agents/index.js +6 -4
  17. package/dist/src/agents/mcp_agent.d.ts +59 -37
  18. package/dist/src/agents/mcp_agent.d.ts.map +1 -1
  19. package/dist/src/agents/remote.d.ts +25 -0
  20. package/dist/src/agents/remote.d.ts.map +1 -1
  21. package/dist/src/agents/types.d.ts +76 -0
  22. package/dist/src/agents/types.d.ts.map +1 -1
  23. package/dist/src/agents/utils/index.d.ts +1 -0
  24. package/dist/src/agents/utils/index.d.ts.map +1 -1
  25. package/dist/src/agents/utils/llm_provider.d.ts +53 -0
  26. package/dist/src/agents/utils/llm_provider.d.ts.map +1 -0
  27. package/dist/src/browser.cjs +1534 -112
  28. package/dist/src/browser.js +18 -7
  29. package/dist/src/client/prompts.js +4 -3
  30. package/dist/src/react/index.cjs +1 -1
  31. package/dist/src/react/index.js +5 -4
  32. package/dist/src/server/endpoints/mount-mcp.d.ts.map +1 -1
  33. package/dist/src/server/index.cjs +91 -64
  34. package/dist/src/server/index.js +93 -66
  35. package/dist/src/server/mcp-server.d.ts.map +1 -1
  36. package/dist/src/server/types/common.d.ts +26 -0
  37. package/dist/src/server/types/common.d.ts.map +1 -1
  38. package/dist/src/version.d.ts +1 -1
  39. package/dist/{tool-execution-helpers-HNASWGXY.js → tool-execution-helpers-MZUMRG5S.js} +2 -2
  40. package/package.json +5 -4
  41. /package/dist/{chunk-EW4MJSHA.js → chunk-H4BZVTGK.js} +0 -0
@@ -2,34 +2,41 @@ import {
2
2
  createReadableStreamFromGenerator,
3
3
  streamEventsToAISDK,
4
4
  streamEventsToAISDKWithTools
5
- } from "../chunk-EW4MJSHA.js";
5
+ } from "../chunk-H4BZVTGK.js";
6
6
  import {
7
7
  BaseAdapter,
8
8
  LangChainAdapter,
9
9
  MCPAgent,
10
10
  ObservabilityManager,
11
- RemoteAgent
12
- } from "../chunk-KZL3RCT6.js";
11
+ RemoteAgent,
12
+ createLLMFromString,
13
+ getSupportedProviders,
14
+ isValidLLMString,
15
+ parseLLMString
16
+ } from "../chunk-BE23AOUV.js";
13
17
  import "../chunk-JRGQRPTN.js";
18
+ import "../chunk-APOF62EA.js";
19
+ import {
20
+ BrowserMCPClient
21
+ } from "../chunk-QH52FRP3.js";
14
22
  import {
15
- BrowserMCPClient,
16
23
  HttpConnector,
17
24
  MCPSession
18
- } from "../chunk-FDWI2WVM.js";
25
+ } from "../chunk-OIXS25J5.js";
19
26
  import {
20
27
  BrowserOAuthClientProvider,
21
28
  onMcpAuthorization
22
29
  } from "../chunk-J75I2C26.js";
23
30
  import {
24
31
  BaseConnector
25
- } from "../chunk-YIZWQ5PM.js";
32
+ } from "../chunk-XXCHNDUF.js";
26
33
  import {
27
34
  Tel,
28
35
  Telemetry,
29
36
  VERSION,
30
37
  getPackageVersion,
31
38
  setTelemetrySource
32
- } from "../chunk-TZ7SHSRY.js";
39
+ } from "../chunk-K6YNB2Z3.js";
33
40
  import {
34
41
  Logger,
35
42
  logger
@@ -51,10 +58,14 @@ export {
51
58
  Tel,
52
59
  Telemetry,
53
60
  VERSION,
61
+ createLLMFromString,
54
62
  createReadableStreamFromGenerator,
55
63
  getPackageVersion,
64
+ getSupportedProviders,
65
+ isValidLLMString,
56
66
  logger,
57
67
  onMcpAuthorization,
68
+ parseLLMString,
58
69
  setTelemetrySource as setBrowserTelemetrySource,
59
70
  setTelemetrySource,
60
71
  streamEventsToAISDK,
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  PROMPTS
3
- } from "../../chunk-DKLRVWPJ.js";
4
- import "../../chunk-YIZWQ5PM.js";
5
- import "../../chunk-TZ7SHSRY.js";
3
+ } from "../../chunk-TCLI6SPF.js";
4
+ import "../../chunk-APOF62EA.js";
5
+ import "../../chunk-XXCHNDUF.js";
6
+ import "../../chunk-K6YNB2Z3.js";
6
7
  import "../../chunk-FRUZDWXH.js";
7
8
  import "../../chunk-3GQAWCBQ.js";
8
9
  export {
@@ -876,7 +876,7 @@ function generateUUID() {
876
876
  __name(generateUUID, "generateUUID");
877
877
 
878
878
  // src/version.ts
879
- var VERSION = "1.11.0-canary.3";
879
+ var VERSION = "1.11.0-canary.4";
880
880
  function getPackageVersion() {
881
881
  return VERSION;
882
882
  }
@@ -9,17 +9,18 @@ import {
9
9
  useWidgetProps,
10
10
  useWidgetState,
11
11
  useWidgetTheme
12
- } from "../../chunk-BONN23WU.js";
13
- import "../../chunk-FDWI2WVM.js";
12
+ } from "../../chunk-A4WWKMPI.js";
13
+ import "../../chunk-QH52FRP3.js";
14
+ import "../../chunk-OIXS25J5.js";
14
15
  import {
15
16
  onMcpAuthorization
16
17
  } from "../../chunk-J75I2C26.js";
17
- import "../../chunk-YIZWQ5PM.js";
18
+ import "../../chunk-XXCHNDUF.js";
18
19
  import {
19
20
  Tel,
20
21
  Telemetry,
21
22
  setTelemetrySource
22
- } from "../../chunk-TZ7SHSRY.js";
23
+ } from "../../chunk-K6YNB2Z3.js";
23
24
  import "../../chunk-FRUZDWXH.js";
24
25
  import "../../chunk-3GQAWCBQ.js";
25
26
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"mount-mcp.d.ts","sourceRoot":"","sources":["../../../../src/server/endpoints/mount-mcp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAW,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,QAAQ,EACb,iBAAiB,EAAE;IACjB,mBAAmB,EAAE,MAAM,OAAO,iDAAiD,EAAE,SAAS,CAAC;IAC/F,2BAA2B,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D,EAAE,2DAA2D;AAC9D,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAClC,MAAM,EAAE,YAAY,EACpB,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;CAAE,CAAC,CAyHxE"}
1
+ {"version":3,"file":"mount-mcp.d.ts","sourceRoot":"","sources":["../../../../src/server/endpoints/mount-mcp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAW,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,QAAQ,EACb,iBAAiB,EAAE;IACjB,mBAAmB,EAAE,MAAM,OAAO,iDAAiD,EAAE,SAAS,CAAC;IAC/F,2BAA2B,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D,EAAE,2DAA2D;AAC9D,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAClC,MAAM,EAAE,YAAY,EACpB,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;CAAE,CAAC,CA4IxE"}
@@ -761,7 +761,7 @@ var VERSION;
761
761
  var init_version = __esm({
762
762
  "src/version.ts"() {
763
763
  "use strict";
764
- VERSION = "1.11.0-canary.3";
764
+ VERSION = "1.11.0-canary.4";
765
765
  __name(getPackageVersion, "getPackageVersion");
766
766
  }
767
767
  });
@@ -4678,7 +4678,7 @@ async function mountMcp(app, mcpServerInstance, sessions, config, isProductionMo
4678
4678
  const idleTimeoutMs = config.sessionIdleTimeoutMs ?? 3e5;
4679
4679
  const transports = /* @__PURE__ */ new Map();
4680
4680
  let idleCleanupInterval;
4681
- if (idleTimeoutMs > 0) {
4681
+ if (!config.stateless && idleTimeoutMs > 0) {
4682
4682
  idleCleanupInterval = startIdleCleanup(
4683
4683
  sessions,
4684
4684
  idleTimeoutMs,
@@ -4687,73 +4687,90 @@ async function mountMcp(app, mcpServerInstance, sessions, config, isProductionMo
4687
4687
  );
4688
4688
  }
4689
4689
  const handleRequest = /* @__PURE__ */ __name(async (c) => {
4690
- const sessionId = c.req.header("mcp-session-id");
4691
- if (c.req.method === "HEAD") {
4692
- if (sessionId && sessions.has(sessionId)) {
4693
- sessions.get(sessionId).lastAccessedAt = Date.now();
4694
- }
4695
- return new Response(null, { status: 200 });
4696
- }
4697
- if (sessionId && transports.has(sessionId)) {
4698
- const transport2 = transports.get(sessionId);
4699
- if (sessions.has(sessionId)) {
4700
- const session = sessions.get(sessionId);
4701
- session.lastAccessedAt = Date.now();
4702
- session.context = c;
4703
- session.honoContext = c;
4704
- }
4705
- return transport2.handleRequest(c.req.raw);
4706
- }
4707
- const server = mcpServerInstance.getServerForSession();
4708
- const transport = new FetchStreamableHTTPServerTransport({
4709
- sessionIdGenerator: /* @__PURE__ */ __name(() => generateUUID(), "sessionIdGenerator"),
4710
- onsessioninitialized: /* @__PURE__ */ __name((sid) => {
4711
- console.log(`[MCP] Session initialized: ${sid}`);
4712
- transports.set(sid, transport);
4713
- sessions.set(sid, {
4714
- transport,
4715
- server,
4716
- lastAccessedAt: Date.now(),
4717
- context: c,
4718
- honoContext: c
4719
- });
4720
- server.server.oninitialized = () => {
4721
- const clientCapabilities = server.server.getClientCapabilities();
4722
- const clientInfo = server.server.getClientInfo?.() || {};
4723
- const protocolVersion = server.server.getProtocolVersion?.() || "unknown";
4724
- if (clientCapabilities && sessions.has(sid)) {
4725
- const session = sessions.get(sid);
4726
- session.clientCapabilities = clientCapabilities;
4727
- console.log(
4728
- `[MCP] Captured client capabilities for session ${sid}:`,
4729
- Object.keys(clientCapabilities)
4690
+ if (config.stateless) {
4691
+ const server = mcpServerInstance.getServerForSession();
4692
+ const transport = new FetchStreamableHTTPServerTransport({
4693
+ sessionIdGenerator: void 0
4694
+ // No session tracking
4695
+ });
4696
+ try {
4697
+ await server.connect(transport);
4698
+ return await transport.handleRequest(c.req.raw);
4699
+ } catch (error2) {
4700
+ console.error("[MCP] Stateless request error:", error2);
4701
+ transport.close();
4702
+ server.close();
4703
+ throw error2;
4704
+ }
4705
+ } else {
4706
+ const sessionId = c.req.header("mcp-session-id");
4707
+ if (c.req.method === "HEAD") {
4708
+ if (sessionId && sessions.has(sessionId)) {
4709
+ sessions.get(sessionId).lastAccessedAt = Date.now();
4710
+ }
4711
+ return new Response(null, { status: 200 });
4712
+ }
4713
+ if (sessionId && transports.has(sessionId)) {
4714
+ const transport2 = transports.get(sessionId);
4715
+ if (sessions.has(sessionId)) {
4716
+ const session = sessions.get(sessionId);
4717
+ session.lastAccessedAt = Date.now();
4718
+ session.context = c;
4719
+ session.honoContext = c;
4720
+ }
4721
+ return transport2.handleRequest(c.req.raw);
4722
+ }
4723
+ const server = mcpServerInstance.getServerForSession();
4724
+ const transport = new FetchStreamableHTTPServerTransport({
4725
+ sessionIdGenerator: /* @__PURE__ */ __name(() => generateUUID(), "sessionIdGenerator"),
4726
+ onsessioninitialized: /* @__PURE__ */ __name((sid) => {
4727
+ console.log(`[MCP] Session initialized: ${sid}`);
4728
+ transports.set(sid, transport);
4729
+ sessions.set(sid, {
4730
+ transport,
4731
+ server,
4732
+ lastAccessedAt: Date.now(),
4733
+ context: c,
4734
+ honoContext: c
4735
+ });
4736
+ server.server.oninitialized = () => {
4737
+ const clientCapabilities = server.server.getClientCapabilities();
4738
+ const clientInfo = server.server.getClientInfo?.() || {};
4739
+ const protocolVersion = server.server.getProtocolVersion?.() || "unknown";
4740
+ if (clientCapabilities && sessions.has(sid)) {
4741
+ const session = sessions.get(sid);
4742
+ session.clientCapabilities = clientCapabilities;
4743
+ console.log(
4744
+ `[MCP] Captured client capabilities for session ${sid}:`,
4745
+ Object.keys(clientCapabilities)
4746
+ );
4747
+ }
4748
+ Telemetry.getInstance().trackServerInitialize({
4749
+ protocolVersion: String(protocolVersion),
4750
+ clientInfo: clientInfo || {},
4751
+ clientCapabilities: clientCapabilities || {},
4752
+ sessionId: sid
4753
+ }).catch(
4754
+ (e) => console.debug(`Failed to track server initialize: ${e}`)
4730
4755
  );
4731
- }
4732
- Telemetry.getInstance().trackServerInitialize({
4733
- protocolVersion: String(protocolVersion),
4734
- clientInfo: clientInfo || {},
4735
- clientCapabilities: clientCapabilities || {},
4736
- sessionId: sid
4737
- }).catch(
4738
- (e) => console.debug(`Failed to track server initialize: ${e}`)
4739
- );
4740
- };
4741
- }, "onsessioninitialized"),
4742
- onsessionclosed: /* @__PURE__ */ __name((sid) => {
4743
- console.log(`[MCP] Session closed: ${sid}`);
4744
- transports.delete(sid);
4745
- sessions.delete(sid);
4746
- mcpServerInstance.cleanupSessionSubscriptions?.(sid);
4747
- }, "onsessionclosed")
4748
- });
4749
- await server.connect(transport);
4750
- return transport.handleRequest(c.req.raw);
4756
+ };
4757
+ }, "onsessioninitialized"),
4758
+ onsessionclosed: /* @__PURE__ */ __name((sid) => {
4759
+ console.log(`[MCP] Session closed: ${sid}`);
4760
+ transports.delete(sid);
4761
+ sessions.delete(sid);
4762
+ mcpServerInstance.cleanupSessionSubscriptions?.(sid);
4763
+ }, "onsessionclosed")
4764
+ });
4765
+ await server.connect(transport);
4766
+ return transport.handleRequest(c.req.raw);
4767
+ }
4751
4768
  }, "handleRequest");
4752
4769
  for (const endpoint of ["/mcp", "/sse"]) {
4753
4770
  app.on(["GET", "POST", "DELETE", "HEAD"], endpoint, handleRequest);
4754
4771
  }
4755
4772
  console.log(
4756
- `[MCP] Server mounted at /mcp and /sse (using FetchStreamableHTTPServerTransport - Web Standard APIs)`
4773
+ `[MCP] Server mounted at /mcp and /sse (${config.stateless ? "stateless" : "stateful"} mode)`
4757
4774
  );
4758
4775
  return { mcpMounted: true, idleCleanupInterval };
4759
4776
  }
@@ -5119,6 +5136,12 @@ var MCPServerClass = class {
5119
5136
  */
5120
5137
  constructor(config) {
5121
5138
  this.config = config;
5139
+ if (this.config.stateless === void 0) {
5140
+ this.config.stateless = isDeno;
5141
+ if (this.config.stateless) {
5142
+ console.log("[MCP] Deno detected - using stateless mode (no sessions)");
5143
+ }
5144
+ }
5122
5145
  this.serverHost = config.host || "localhost";
5123
5146
  this.serverBaseUrl = config.baseUrl;
5124
5147
  this.nativeServer = new import_mcp2.McpServer(
@@ -5777,9 +5800,13 @@ var MCPServerClass = class {
5777
5800
  const fetchHandler = this.app.fetch.bind(this.app);
5778
5801
  if (options?.provider === "supabase") {
5779
5802
  return async (req) => {
5803
+ const corsHeaders = getDenoCorsHeaders();
5804
+ if (req.method === "OPTIONS") {
5805
+ return new Response("ok", { headers: corsHeaders });
5806
+ }
5780
5807
  const rewrittenReq = rewriteSupabaseRequest(req);
5781
5808
  const result = await fetchHandler(rewrittenReq);
5782
- return result;
5809
+ return applyDenoCorsHeaders(result);
5783
5810
  };
5784
5811
  }
5785
5812
  return async (req) => {
@@ -7,7 +7,7 @@ import {
7
7
  createEnhancedContext,
8
8
  findSessionContext,
9
9
  isValidLogLevel
10
- } from "../../chunk-WFPXUU4A.js";
10
+ } from "../../chunk-LHRGDQ5C.js";
11
11
  import {
12
12
  convertToolResultToResourceResult
13
13
  } from "../../chunk-362PI25Z.js";
@@ -25,7 +25,7 @@ import {
25
25
  getPackageVersion,
26
26
  isDeno,
27
27
  pathHelpers
28
- } from "../../chunk-TZ7SHSRY.js";
28
+ } from "../../chunk-K6YNB2Z3.js";
29
29
  import "../../chunk-FRUZDWXH.js";
30
30
  import {
31
31
  __name
@@ -2091,7 +2091,7 @@ function registerResource(resourceDefinition, callback) {
2091
2091
  const explicitMimeType = resourceDefinition.mimeType;
2092
2092
  const wrappedCallback = /* @__PURE__ */ __name(async () => {
2093
2093
  const { getRequestContext: getRequestContext2, runWithContext: runWithContext2 } = await import("../../context-storage-NA4MHWOZ.js");
2094
- const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-HNASWGXY.js");
2094
+ const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-MZUMRG5S.js");
2095
2095
  const initialRequestContext = getRequestContext2();
2096
2096
  const sessions = this.sessions || /* @__PURE__ */ new Map();
2097
2097
  const { requestContext } = findSessionContext2(
@@ -2169,7 +2169,7 @@ function registerResourceTemplate(resourceTemplateDefinition, callback) {
2169
2169
  async (uri) => {
2170
2170
  const params = this.parseTemplateUri(uriTemplate, uri.toString());
2171
2171
  const { getRequestContext: getRequestContext2, runWithContext: runWithContext2 } = await import("../../context-storage-NA4MHWOZ.js");
2172
- const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-HNASWGXY.js");
2172
+ const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-MZUMRG5S.js");
2173
2173
  const initialRequestContext = getRequestContext2();
2174
2174
  const sessions = this.sessions || /* @__PURE__ */ new Map();
2175
2175
  const { requestContext } = findSessionContext2(
@@ -2224,7 +2224,7 @@ function registerPrompt(promptDefinition, callback) {
2224
2224
  }
2225
2225
  const wrappedCallback = /* @__PURE__ */ __name(async (params, extra) => {
2226
2226
  const { getRequestContext: getRequestContext2, runWithContext: runWithContext2 } = await import("../../context-storage-NA4MHWOZ.js");
2227
- const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-HNASWGXY.js");
2227
+ const { findSessionContext: findSessionContext2 } = await import("../../tool-execution-helpers-MZUMRG5S.js");
2228
2228
  const initialRequestContext = getRequestContext2();
2229
2229
  const sessions = this.sessions || /* @__PURE__ */ new Map();
2230
2230
  const { requestContext } = findSessionContext2(
@@ -2539,7 +2539,7 @@ async function mountMcp(app, mcpServerInstance, sessions, config, isProductionMo
2539
2539
  const idleTimeoutMs = config.sessionIdleTimeoutMs ?? 3e5;
2540
2540
  const transports = /* @__PURE__ */ new Map();
2541
2541
  let idleCleanupInterval;
2542
- if (idleTimeoutMs > 0) {
2542
+ if (!config.stateless && idleTimeoutMs > 0) {
2543
2543
  idleCleanupInterval = startIdleCleanup(
2544
2544
  sessions,
2545
2545
  idleTimeoutMs,
@@ -2548,73 +2548,90 @@ async function mountMcp(app, mcpServerInstance, sessions, config, isProductionMo
2548
2548
  );
2549
2549
  }
2550
2550
  const handleRequest = /* @__PURE__ */ __name(async (c) => {
2551
- const sessionId = c.req.header("mcp-session-id");
2552
- if (c.req.method === "HEAD") {
2553
- if (sessionId && sessions.has(sessionId)) {
2554
- sessions.get(sessionId).lastAccessedAt = Date.now();
2551
+ if (config.stateless) {
2552
+ const server = mcpServerInstance.getServerForSession();
2553
+ const transport = new FetchStreamableHTTPServerTransport({
2554
+ sessionIdGenerator: void 0
2555
+ // No session tracking
2556
+ });
2557
+ try {
2558
+ await server.connect(transport);
2559
+ return await transport.handleRequest(c.req.raw);
2560
+ } catch (error2) {
2561
+ console.error("[MCP] Stateless request error:", error2);
2562
+ transport.close();
2563
+ server.close();
2564
+ throw error2;
2555
2565
  }
2556
- return new Response(null, { status: 200 });
2557
- }
2558
- if (sessionId && transports.has(sessionId)) {
2559
- const transport2 = transports.get(sessionId);
2560
- if (sessions.has(sessionId)) {
2561
- const session = sessions.get(sessionId);
2562
- session.lastAccessedAt = Date.now();
2563
- session.context = c;
2564
- session.honoContext = c;
2566
+ } else {
2567
+ const sessionId = c.req.header("mcp-session-id");
2568
+ if (c.req.method === "HEAD") {
2569
+ if (sessionId && sessions.has(sessionId)) {
2570
+ sessions.get(sessionId).lastAccessedAt = Date.now();
2571
+ }
2572
+ return new Response(null, { status: 200 });
2565
2573
  }
2566
- return transport2.handleRequest(c.req.raw);
2567
- }
2568
- const server = mcpServerInstance.getServerForSession();
2569
- const transport = new FetchStreamableHTTPServerTransport({
2570
- sessionIdGenerator: /* @__PURE__ */ __name(() => generateUUID(), "sessionIdGenerator"),
2571
- onsessioninitialized: /* @__PURE__ */ __name((sid) => {
2572
- console.log(`[MCP] Session initialized: ${sid}`);
2573
- transports.set(sid, transport);
2574
- sessions.set(sid, {
2575
- transport,
2576
- server,
2577
- lastAccessedAt: Date.now(),
2578
- context: c,
2579
- honoContext: c
2580
- });
2581
- server.server.oninitialized = () => {
2582
- const clientCapabilities = server.server.getClientCapabilities();
2583
- const clientInfo = server.server.getClientInfo?.() || {};
2584
- const protocolVersion = server.server.getProtocolVersion?.() || "unknown";
2585
- if (clientCapabilities && sessions.has(sid)) {
2586
- const session = sessions.get(sid);
2587
- session.clientCapabilities = clientCapabilities;
2588
- console.log(
2589
- `[MCP] Captured client capabilities for session ${sid}:`,
2590
- Object.keys(clientCapabilities)
2574
+ if (sessionId && transports.has(sessionId)) {
2575
+ const transport2 = transports.get(sessionId);
2576
+ if (sessions.has(sessionId)) {
2577
+ const session = sessions.get(sessionId);
2578
+ session.lastAccessedAt = Date.now();
2579
+ session.context = c;
2580
+ session.honoContext = c;
2581
+ }
2582
+ return transport2.handleRequest(c.req.raw);
2583
+ }
2584
+ const server = mcpServerInstance.getServerForSession();
2585
+ const transport = new FetchStreamableHTTPServerTransport({
2586
+ sessionIdGenerator: /* @__PURE__ */ __name(() => generateUUID(), "sessionIdGenerator"),
2587
+ onsessioninitialized: /* @__PURE__ */ __name((sid) => {
2588
+ console.log(`[MCP] Session initialized: ${sid}`);
2589
+ transports.set(sid, transport);
2590
+ sessions.set(sid, {
2591
+ transport,
2592
+ server,
2593
+ lastAccessedAt: Date.now(),
2594
+ context: c,
2595
+ honoContext: c
2596
+ });
2597
+ server.server.oninitialized = () => {
2598
+ const clientCapabilities = server.server.getClientCapabilities();
2599
+ const clientInfo = server.server.getClientInfo?.() || {};
2600
+ const protocolVersion = server.server.getProtocolVersion?.() || "unknown";
2601
+ if (clientCapabilities && sessions.has(sid)) {
2602
+ const session = sessions.get(sid);
2603
+ session.clientCapabilities = clientCapabilities;
2604
+ console.log(
2605
+ `[MCP] Captured client capabilities for session ${sid}:`,
2606
+ Object.keys(clientCapabilities)
2607
+ );
2608
+ }
2609
+ Telemetry.getInstance().trackServerInitialize({
2610
+ protocolVersion: String(protocolVersion),
2611
+ clientInfo: clientInfo || {},
2612
+ clientCapabilities: clientCapabilities || {},
2613
+ sessionId: sid
2614
+ }).catch(
2615
+ (e) => console.debug(`Failed to track server initialize: ${e}`)
2591
2616
  );
2592
- }
2593
- Telemetry.getInstance().trackServerInitialize({
2594
- protocolVersion: String(protocolVersion),
2595
- clientInfo: clientInfo || {},
2596
- clientCapabilities: clientCapabilities || {},
2597
- sessionId: sid
2598
- }).catch(
2599
- (e) => console.debug(`Failed to track server initialize: ${e}`)
2600
- );
2601
- };
2602
- }, "onsessioninitialized"),
2603
- onsessionclosed: /* @__PURE__ */ __name((sid) => {
2604
- console.log(`[MCP] Session closed: ${sid}`);
2605
- transports.delete(sid);
2606
- sessions.delete(sid);
2607
- mcpServerInstance.cleanupSessionSubscriptions?.(sid);
2608
- }, "onsessionclosed")
2609
- });
2610
- await server.connect(transport);
2611
- return transport.handleRequest(c.req.raw);
2617
+ };
2618
+ }, "onsessioninitialized"),
2619
+ onsessionclosed: /* @__PURE__ */ __name((sid) => {
2620
+ console.log(`[MCP] Session closed: ${sid}`);
2621
+ transports.delete(sid);
2622
+ sessions.delete(sid);
2623
+ mcpServerInstance.cleanupSessionSubscriptions?.(sid);
2624
+ }, "onsessionclosed")
2625
+ });
2626
+ await server.connect(transport);
2627
+ return transport.handleRequest(c.req.raw);
2628
+ }
2612
2629
  }, "handleRequest");
2613
2630
  for (const endpoint of ["/mcp", "/sse"]) {
2614
2631
  app.on(["GET", "POST", "DELETE", "HEAD"], endpoint, handleRequest);
2615
2632
  }
2616
2633
  console.log(
2617
- `[MCP] Server mounted at /mcp and /sse (using FetchStreamableHTTPServerTransport - Web Standard APIs)`
2634
+ `[MCP] Server mounted at /mcp and /sse (${config.stateless ? "stateless" : "stateful"} mode)`
2618
2635
  );
2619
2636
  return { mcpMounted: true, idleCleanupInterval };
2620
2637
  }
@@ -2980,6 +2997,12 @@ var MCPServerClass = class {
2980
2997
  */
2981
2998
  constructor(config) {
2982
2999
  this.config = config;
3000
+ if (this.config.stateless === void 0) {
3001
+ this.config.stateless = isDeno;
3002
+ if (this.config.stateless) {
3003
+ console.log("[MCP] Deno detected - using stateless mode (no sessions)");
3004
+ }
3005
+ }
2983
3006
  this.serverHost = config.host || "localhost";
2984
3007
  this.serverBaseUrl = config.baseUrl;
2985
3008
  this.nativeServer = new OfficialMcpServer(
@@ -3638,9 +3661,13 @@ var MCPServerClass = class {
3638
3661
  const fetchHandler = this.app.fetch.bind(this.app);
3639
3662
  if (options?.provider === "supabase") {
3640
3663
  return async (req) => {
3664
+ const corsHeaders = getDenoCorsHeaders();
3665
+ if (req.method === "OPTIONS") {
3666
+ return new Response("ok", { headers: corsHeaders });
3667
+ }
3641
3668
  const rewrittenReq = rewriteSupabaseRequest(req);
3642
3669
  const result = await fetchHandler(rewrittenReq);
3643
- return result;
3670
+ return applyDenoCorsHeaders(result);
3644
3671
  };
3645
3672
  }
3646
3673
  return async (req) => {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -101,6 +101,32 @@ export interface ServerConfig {
101
101
  * ```
102
102
  */
103
103
  autoCreateSessionOnInvalidId?: boolean;
104
+ /**
105
+ * Enable stateless mode (no session tracking)
106
+ * - Default: true for Deno (edge runtimes), false for Node.js
107
+ * - Set to true to force stateless mode
108
+ * - Set to false to force stateful mode (with sessions)
109
+ *
110
+ * Stateless mode is required for edge functions where instances don't persist.
111
+ * Stateful mode supports sessions, resumability, and notifications.
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * // Auto-detected (Deno = stateless, Node.js = stateful)
116
+ * const server = new MCPServer({
117
+ * name: 'my-server',
118
+ * version: '1.0.0'
119
+ * });
120
+ *
121
+ * // Force stateless mode (e.g., for Node.js edge functions)
122
+ * const server = new MCPServer({
123
+ * name: 'my-server',
124
+ * version: '1.0.0',
125
+ * stateless: true
126
+ * });
127
+ * ```
128
+ */
129
+ stateless?: boolean;
104
130
  /**
105
131
  * OAuth authentication configuration
106
132
  *
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/server/types/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI;KACzC,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAC5D,CAAC,CAAC,CAAC,CAAC,EACJ,SAAS,CACV;CACF,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC3D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,GACjD,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACtC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAExB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IACpC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/server/types/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI;KACzC,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAC5D,CAAC,CAAC,CAAC,CAAC,EACJ,SAAS,CACV;CACF,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC3D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,GACjD,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACtC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAExB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IACpC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "1.11.0-canary.3";
1
+ export declare const VERSION = "1.11.0-canary.4";
2
2
  /**
3
3
  * Get the package version.
4
4
  * The version is embedded at build time via scripts/generate-version.mjs
@@ -10,9 +10,9 @@ import {
10
10
  sendProgressNotification,
11
11
  shouldLogMessage,
12
12
  withTimeout
13
- } from "./chunk-WFPXUU4A.js";
13
+ } from "./chunk-LHRGDQ5C.js";
14
14
  import "./chunk-KUEVOU4M.js";
15
- import "./chunk-TZ7SHSRY.js";
15
+ import "./chunk-K6YNB2Z3.js";
16
16
  import "./chunk-FRUZDWXH.js";
17
17
  import "./chunk-3GQAWCBQ.js";
18
18
  export {