@mcp-ts/sdk 2.4.4 → 2.5.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 (89) hide show
  1. package/dist/adapters/agui-adapter.d.mts +3 -3
  2. package/dist/adapters/agui-adapter.d.ts +3 -3
  3. package/dist/adapters/agui-adapter.js.map +1 -1
  4. package/dist/adapters/agui-adapter.mjs.map +1 -1
  5. package/dist/adapters/agui-middleware.d.mts +3 -3
  6. package/dist/adapters/agui-middleware.d.ts +3 -3
  7. package/dist/adapters/agui-middleware.js.map +1 -1
  8. package/dist/adapters/agui-middleware.mjs.map +1 -1
  9. package/dist/adapters/ai-adapter.d.mts +3 -3
  10. package/dist/adapters/ai-adapter.d.ts +3 -3
  11. package/dist/adapters/ai-adapter.js.map +1 -1
  12. package/dist/adapters/ai-adapter.mjs.map +1 -1
  13. package/dist/adapters/langchain-adapter.d.mts +3 -3
  14. package/dist/adapters/langchain-adapter.d.ts +3 -3
  15. package/dist/adapters/langchain-adapter.js +2 -2
  16. package/dist/adapters/langchain-adapter.js.map +1 -1
  17. package/dist/adapters/langchain-adapter.mjs +2 -2
  18. package/dist/adapters/langchain-adapter.mjs.map +1 -1
  19. package/dist/adapters/mastra-adapter.d.mts +2 -2
  20. package/dist/adapters/mastra-adapter.d.ts +2 -2
  21. package/dist/adapters/mastra-adapter.js +2 -2
  22. package/dist/adapters/mastra-adapter.js.map +1 -1
  23. package/dist/adapters/mastra-adapter.mjs +2 -2
  24. package/dist/adapters/mastra-adapter.mjs.map +1 -1
  25. package/dist/client/index.d.mts +2 -2
  26. package/dist/client/index.d.ts +2 -2
  27. package/dist/client/index.js +6 -0
  28. package/dist/client/index.js.map +1 -1
  29. package/dist/client/index.mjs +6 -0
  30. package/dist/client/index.mjs.map +1 -1
  31. package/dist/client/react.d.mts +15 -4
  32. package/dist/client/react.d.ts +15 -4
  33. package/dist/client/react.js +36 -6
  34. package/dist/client/react.js.map +1 -1
  35. package/dist/client/react.mjs +36 -6
  36. package/dist/client/react.mjs.map +1 -1
  37. package/dist/client/vue.d.mts +4 -4
  38. package/dist/client/vue.d.ts +4 -4
  39. package/dist/client/vue.js +6 -0
  40. package/dist/client/vue.js.map +1 -1
  41. package/dist/client/vue.mjs +6 -0
  42. package/dist/client/vue.mjs.map +1 -1
  43. package/dist/{index-CkM3p0eE.d.mts → index-CTURVnom.d.mts} +5 -1
  44. package/dist/{index-CZk2gu2E.d.ts → index-sVcqrhf7.d.ts} +5 -1
  45. package/dist/index.d.mts +4 -4
  46. package/dist/index.d.ts +4 -4
  47. package/dist/index.js +374 -130
  48. package/dist/index.js.map +1 -1
  49. package/dist/index.mjs +370 -130
  50. package/dist/index.mjs.map +1 -1
  51. package/dist/{multi-session-client-ChQrBZhF.d.mts → multi-session-client-CSPSHHla.d.ts} +14 -2
  52. package/dist/{multi-session-client-QOOPdEVp.d.ts → multi-session-client-DMZGVABI.d.mts} +14 -2
  53. package/dist/server/index.d.mts +13 -4
  54. package/dist/server/index.d.ts +13 -4
  55. package/dist/server/index.js +368 -130
  56. package/dist/server/index.js.map +1 -1
  57. package/dist/server/index.mjs +364 -130
  58. package/dist/server/index.mjs.map +1 -1
  59. package/dist/shared/index.d.mts +4 -4
  60. package/dist/shared/index.d.ts +4 -4
  61. package/dist/shared/index.js +2 -6
  62. package/dist/shared/index.js.map +1 -1
  63. package/dist/shared/index.mjs +2 -6
  64. package/dist/shared/index.mjs.map +1 -1
  65. package/dist/{tool-router-DQ-HrD7W.d.ts → tool-router-CS9l0w4a.d.ts} +1 -1
  66. package/dist/{tool-router-CGs3IDOJ.d.mts → tool-router-CVLBaCwH.d.mts} +1 -1
  67. package/dist/{types-Bf-7GOLW.d.mts → types-DK_NGWd4.d.mts} +37 -3
  68. package/dist/{types-Bf-7GOLW.d.ts → types-DK_NGWd4.d.ts} +37 -3
  69. package/migrations/neon/20260513010000_install_mcp_sessions.sql +1 -0
  70. package/migrations/supabase/20260330195700_install_mcp_sessions.sql +1 -0
  71. package/package.json +1 -1
  72. package/src/adapters/agui-adapter.ts +6 -2
  73. package/src/adapters/ai-adapter.ts +3 -1
  74. package/src/adapters/langchain-adapter.ts +5 -3
  75. package/src/adapters/mastra-adapter.ts +5 -3
  76. package/src/client/core/sse-client.ts +17 -0
  77. package/src/client/react/use-mcp.ts +63 -0
  78. package/src/server/handlers/sse-handler.ts +117 -10
  79. package/src/server/mcp/multi-session-client.ts +7 -3
  80. package/src/server/mcp/oauth-client.ts +78 -55
  81. package/src/server/mcp/tool-policy-gateway.ts +90 -0
  82. package/src/server/storage/index.ts +1 -1
  83. package/src/server/storage/neon-backend.ts +65 -60
  84. package/src/server/storage/session-lifecycle.ts +5 -0
  85. package/src/server/storage/supabase-backend.ts +27 -15
  86. package/src/server/storage/tool-policy.ts +89 -0
  87. package/src/server/storage/types.ts +11 -0
  88. package/src/shared/types.ts +48 -1
  89. package/src/shared/utils.ts +16 -14
@@ -37,6 +37,12 @@ var SSEClient = class {
37
37
  async disconnectFromServer(sessionId) {
38
38
  return this.sendRequest("disconnect", { sessionId });
39
39
  }
40
+ async setToolPolicy(sessionId, toolPolicy) {
41
+ return this.sendRequest("setToolPolicy", { sessionId, toolPolicy });
42
+ }
43
+ async getToolPolicy(sessionId) {
44
+ return this.sendRequest("getToolPolicy", { sessionId });
45
+ }
40
46
  async listTools(sessionId) {
41
47
  return this.sendRequest("listTools", { sessionId });
42
48
  }
@@ -423,6 +429,7 @@ function useMcp(options) {
423
429
  state: getInitialConnectionState(s.status),
424
430
  createdAt: new Date(s.createdAt),
425
431
  updatedAt: new Date(s.updatedAt ?? s.createdAt),
432
+ toolPolicy: s.toolPolicy,
426
433
  tools: []
427
434
  }))
428
435
  );
@@ -530,6 +537,29 @@ function useMcp(options) {
530
537
  }
531
538
  return await clientRef.current.listTools(sessionId);
532
539
  }, []);
540
+ const updateToolPolicy = useCallback(async (sessionId, toolPolicy) => {
541
+ if (!clientRef.current) {
542
+ throw new Error("SSE client not initialized");
543
+ }
544
+ const result = await clientRef.current.setToolPolicy(sessionId, toolPolicy);
545
+ if (isMountedRef.current) {
546
+ setConnections((prev) => prev.map(
547
+ (connection) => connection.sessionId === sessionId ? {
548
+ ...connection,
549
+ toolPolicy: result.toolPolicy,
550
+ tools: result.tools,
551
+ updatedAt: /* @__PURE__ */ new Date()
552
+ } : connection
553
+ ));
554
+ }
555
+ return result;
556
+ }, []);
557
+ const getToolAccess = useCallback(async (sessionId) => {
558
+ if (!clientRef.current) {
559
+ throw new Error("SSE client not initialized");
560
+ }
561
+ return await clientRef.current.getToolPolicy(sessionId);
562
+ }, []);
533
563
  const listPrompts = useCallback(async (sessionId) => {
534
564
  if (!clientRef.current) {
535
565
  throw new Error("SSE client not initialized");
@@ -598,6 +628,8 @@ function useMcp(options) {
598
628
  resumeAuth,
599
629
  callTool,
600
630
  listTools,
631
+ updateToolPolicy,
632
+ getToolAccess,
601
633
  listPrompts,
602
634
  getPrompt,
603
635
  listResources,
@@ -622,6 +654,8 @@ function useMcp(options) {
622
654
  resumeAuth,
623
655
  callTool,
624
656
  listTools,
657
+ updateToolPolicy,
658
+ getToolAccess,
625
659
  listPrompts,
626
660
  getPrompt,
627
661
  listResources,
@@ -632,12 +666,8 @@ function useMcp(options) {
632
666
  }
633
667
  var OAUTH_STATE_SEPARATOR = ".";
634
668
  customAlphabet(
635
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
636
- 1
637
- );
638
- customAlphabet(
639
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
640
- 11
669
+ "abcdefghijklmnopqrstuvwxyz0123456789",
670
+ 12
641
671
  );
642
672
  function parseOAuthState(state) {
643
673
  const separatorIndex = state.indexOf(OAUTH_STATE_SEPARATOR);