@modelcontextprotocol/sdk 1.12.2 → 1.13.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 (140) hide show
  1. package/README.md +342 -24
  2. package/dist/cjs/client/auth.d.ts +14 -3
  3. package/dist/cjs/client/auth.d.ts.map +1 -1
  4. package/dist/cjs/client/auth.js +29 -4
  5. package/dist/cjs/client/auth.js.map +1 -1
  6. package/dist/cjs/client/index.d.ts +308 -26
  7. package/dist/cjs/client/index.d.ts.map +1 -1
  8. package/dist/cjs/client/index.js +9 -0
  9. package/dist/cjs/client/index.js.map +1 -1
  10. package/dist/cjs/client/sse.d.ts +2 -0
  11. package/dist/cjs/client/sse.d.ts.map +1 -1
  12. package/dist/cjs/client/sse.js +13 -5
  13. package/dist/cjs/client/sse.js.map +1 -1
  14. package/dist/cjs/client/streamableHttp.d.ts +3 -0
  15. package/dist/cjs/client/streamableHttp.d.ts.map +1 -1
  16. package/dist/cjs/client/streamableHttp.js +9 -0
  17. package/dist/cjs/client/streamableHttp.js.map +1 -1
  18. package/dist/cjs/examples/client/simpleStreamableHttp.js +261 -5
  19. package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -1
  20. package/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts +8 -4
  21. package/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
  22. package/dist/cjs/examples/server/demoInMemoryOAuthProvider.js +22 -7
  23. package/dist/cjs/examples/server/demoInMemoryOAuthProvider.js.map +1 -1
  24. package/dist/cjs/examples/server/simpleStreamableHttp.js +245 -10
  25. package/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -1
  26. package/dist/cjs/server/auth/handlers/authorize.d.ts.map +1 -1
  27. package/dist/cjs/server/auth/handlers/authorize.js +3 -1
  28. package/dist/cjs/server/auth/handlers/authorize.js.map +1 -1
  29. package/dist/cjs/server/auth/handlers/token.d.ts.map +1 -1
  30. package/dist/cjs/server/auth/handlers/token.js +6 -4
  31. package/dist/cjs/server/auth/handlers/token.js.map +1 -1
  32. package/dist/cjs/server/auth/provider.d.ts +3 -2
  33. package/dist/cjs/server/auth/provider.d.ts.map +1 -1
  34. package/dist/cjs/server/auth/providers/proxyProvider.d.ts +2 -2
  35. package/dist/cjs/server/auth/providers/proxyProvider.d.ts.map +1 -1
  36. package/dist/cjs/server/auth/providers/proxyProvider.js +10 -2
  37. package/dist/cjs/server/auth/providers/proxyProvider.js.map +1 -1
  38. package/dist/cjs/server/auth/types.d.ts +5 -0
  39. package/dist/cjs/server/auth/types.d.ts.map +1 -1
  40. package/dist/cjs/server/completable.d.ts +3 -1
  41. package/dist/cjs/server/completable.d.ts.map +1 -1
  42. package/dist/cjs/server/completable.js.map +1 -1
  43. package/dist/cjs/server/index.d.ts +14 -1
  44. package/dist/cjs/server/index.d.ts.map +1 -1
  45. package/dist/cjs/server/index.js +36 -5
  46. package/dist/cjs/server/index.js.map +1 -1
  47. package/dist/cjs/server/mcp.d.ts +28 -1
  48. package/dist/cjs/server/mcp.d.ts.map +1 -1
  49. package/dist/cjs/server/mcp.js +147 -84
  50. package/dist/cjs/server/mcp.js.map +1 -1
  51. package/dist/cjs/server/sse.d.ts.map +1 -1
  52. package/dist/cjs/server/sse.js.map +1 -1
  53. package/dist/cjs/server/streamableHttp.d.ts +2 -1
  54. package/dist/cjs/server/streamableHttp.d.ts.map +1 -1
  55. package/dist/cjs/server/streamableHttp.js +36 -5
  56. package/dist/cjs/server/streamableHttp.js.map +1 -1
  57. package/dist/cjs/shared/auth-utils.d.ts +10 -0
  58. package/dist/cjs/shared/auth-utils.d.ts.map +1 -0
  59. package/dist/cjs/shared/auth-utils.js +17 -0
  60. package/dist/cjs/shared/auth-utils.js.map +1 -0
  61. package/dist/cjs/shared/metadataUtils.d.ts +12 -0
  62. package/dist/cjs/shared/metadataUtils.d.ts.map +1 -0
  63. package/dist/cjs/shared/metadataUtils.js +29 -0
  64. package/dist/cjs/shared/metadataUtils.js.map +1 -0
  65. package/dist/cjs/shared/transport.d.ts +4 -0
  66. package/dist/cjs/shared/transport.d.ts.map +1 -1
  67. package/dist/cjs/types.d.ts +16263 -2158
  68. package/dist/cjs/types.d.ts.map +1 -1
  69. package/dist/cjs/types.js +220 -59
  70. package/dist/cjs/types.js.map +1 -1
  71. package/dist/esm/client/auth.d.ts +14 -3
  72. package/dist/esm/client/auth.d.ts.map +1 -1
  73. package/dist/esm/client/auth.js +29 -4
  74. package/dist/esm/client/auth.js.map +1 -1
  75. package/dist/esm/client/index.d.ts +308 -26
  76. package/dist/esm/client/index.d.ts.map +1 -1
  77. package/dist/esm/client/index.js +9 -0
  78. package/dist/esm/client/index.js.map +1 -1
  79. package/dist/esm/client/sse.d.ts +2 -0
  80. package/dist/esm/client/sse.d.ts.map +1 -1
  81. package/dist/esm/client/sse.js +13 -5
  82. package/dist/esm/client/sse.js.map +1 -1
  83. package/dist/esm/client/streamableHttp.d.ts +3 -0
  84. package/dist/esm/client/streamableHttp.d.ts.map +1 -1
  85. package/dist/esm/client/streamableHttp.js +9 -0
  86. package/dist/esm/client/streamableHttp.js.map +1 -1
  87. package/dist/esm/examples/client/simpleStreamableHttp.js +259 -6
  88. package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -1
  89. package/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts +8 -4
  90. package/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
  91. package/dist/esm/examples/server/demoInMemoryOAuthProvider.js +22 -7
  92. package/dist/esm/examples/server/demoInMemoryOAuthProvider.js.map +1 -1
  93. package/dist/esm/examples/server/simpleStreamableHttp.js +245 -10
  94. package/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -1
  95. package/dist/esm/server/auth/handlers/authorize.d.ts.map +1 -1
  96. package/dist/esm/server/auth/handlers/authorize.js +3 -1
  97. package/dist/esm/server/auth/handlers/authorize.js.map +1 -1
  98. package/dist/esm/server/auth/handlers/token.d.ts.map +1 -1
  99. package/dist/esm/server/auth/handlers/token.js +6 -4
  100. package/dist/esm/server/auth/handlers/token.js.map +1 -1
  101. package/dist/esm/server/auth/provider.d.ts +3 -2
  102. package/dist/esm/server/auth/provider.d.ts.map +1 -1
  103. package/dist/esm/server/auth/providers/proxyProvider.d.ts +2 -2
  104. package/dist/esm/server/auth/providers/proxyProvider.d.ts.map +1 -1
  105. package/dist/esm/server/auth/providers/proxyProvider.js +10 -2
  106. package/dist/esm/server/auth/providers/proxyProvider.js.map +1 -1
  107. package/dist/esm/server/auth/types.d.ts +5 -0
  108. package/dist/esm/server/auth/types.d.ts.map +1 -1
  109. package/dist/esm/server/completable.d.ts +3 -1
  110. package/dist/esm/server/completable.d.ts.map +1 -1
  111. package/dist/esm/server/completable.js.map +1 -1
  112. package/dist/esm/server/index.d.ts +14 -1
  113. package/dist/esm/server/index.d.ts.map +1 -1
  114. package/dist/esm/server/index.js +34 -6
  115. package/dist/esm/server/index.js.map +1 -1
  116. package/dist/esm/server/mcp.d.ts +28 -1
  117. package/dist/esm/server/mcp.d.ts.map +1 -1
  118. package/dist/esm/server/mcp.js +147 -84
  119. package/dist/esm/server/mcp.js.map +1 -1
  120. package/dist/esm/server/sse.d.ts.map +1 -1
  121. package/dist/esm/server/sse.js.map +1 -1
  122. package/dist/esm/server/streamableHttp.d.ts +2 -1
  123. package/dist/esm/server/streamableHttp.d.ts.map +1 -1
  124. package/dist/esm/server/streamableHttp.js +37 -6
  125. package/dist/esm/server/streamableHttp.js.map +1 -1
  126. package/dist/esm/shared/auth-utils.d.ts +10 -0
  127. package/dist/esm/shared/auth-utils.d.ts.map +1 -0
  128. package/dist/esm/shared/auth-utils.js +14 -0
  129. package/dist/esm/shared/auth-utils.js.map +1 -0
  130. package/dist/esm/shared/metadataUtils.d.ts +12 -0
  131. package/dist/esm/shared/metadataUtils.d.ts.map +1 -0
  132. package/dist/esm/shared/metadataUtils.js +26 -0
  133. package/dist/esm/shared/metadataUtils.js.map +1 -0
  134. package/dist/esm/shared/transport.d.ts +4 -0
  135. package/dist/esm/shared/transport.d.ts.map +1 -1
  136. package/dist/esm/types.d.ts +16263 -2158
  137. package/dist/esm/types.d.ts.map +1 -1
  138. package/dist/esm/types.js +217 -57
  139. package/dist/esm/types.js.map +1 -1
  140. package/package.json +1 -1
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Utilities for handling OAuth resource URIs.
3
+ */
4
+ /**
5
+ * Converts a server URL to a resource URL by removing the fragment.
6
+ * RFC 8707 section 2 states that resource URIs "MUST NOT include a fragment component".
7
+ * Keeps everything else unchanged (scheme, domain, port, path, query).
8
+ */
9
+ export function resourceUrlFromServerUrl(url) {
10
+ const resourceURL = new URL(url.href);
11
+ resourceURL.hash = ''; // Remove fragment
12
+ return resourceURL;
13
+ }
14
+ //# sourceMappingURL=auth-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-utils.js","sourceRoot":"","sources":["../../../src/shared/auth-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAQ;IAC/C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,kBAAkB;IACzC,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { BaseMetadata } from "../types.js";
2
+ /**
3
+ * Utilities for working with BaseMetadata objects.
4
+ */
5
+ /**
6
+ * Gets the display name for an object with BaseMetadata.
7
+ * For tools, the precedence is: title → annotations.title → name
8
+ * For other objects: title → name
9
+ * This implements the spec requirement: "if no title is provided, name should be used for display purposes"
10
+ */
11
+ export declare function getDisplayName(metadata: BaseMetadata): string;
12
+ //# sourceMappingURL=metadataUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadataUtils.d.ts","sourceRoot":"","sources":["../../../src/shared/metadataUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAgB7D"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Utilities for working with BaseMetadata objects.
3
+ */
4
+ /**
5
+ * Gets the display name for an object with BaseMetadata.
6
+ * For tools, the precedence is: title → annotations.title → name
7
+ * For other objects: title → name
8
+ * This implements the spec requirement: "if no title is provided, name should be used for display purposes"
9
+ */
10
+ export function getDisplayName(metadata) {
11
+ var _a;
12
+ // First check for title (not undefined and not empty string)
13
+ if (metadata.title !== undefined && metadata.title !== '') {
14
+ return metadata.title;
15
+ }
16
+ // Then check for annotations.title (only present in Tool objects)
17
+ if ('annotations' in metadata) {
18
+ const metadataWithAnnotations = metadata;
19
+ if ((_a = metadataWithAnnotations.annotations) === null || _a === void 0 ? void 0 : _a.title) {
20
+ return metadataWithAnnotations.annotations.title;
21
+ }
22
+ }
23
+ // Finally fall back to name
24
+ return metadata.name;
25
+ }
26
+ //# sourceMappingURL=metadataUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadataUtils.js","sourceRoot":"","sources":["../../../src/shared/metadataUtils.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAAsB;;IACnD,6DAA6D;IAC7D,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1D,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,kEAAkE;IAClE,IAAI,aAAa,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,uBAAuB,GAAG,QAA+D,CAAC;QAChG,IAAI,MAAA,uBAAuB,CAAC,WAAW,0CAAE,KAAK,EAAE,CAAC;YAC/C,OAAO,uBAAuB,CAAC,WAAW,CAAC,KAAK,CAAC;QACnD,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC"}
@@ -68,5 +68,9 @@ export interface Transport {
68
68
  * The session ID generated for this connection.
69
69
  */
70
70
  sessionId?: string;
71
+ /**
72
+ * Sets the protocol version used for the connection (called when the initialize response is received).
73
+ */
74
+ setProtocolVersion?: (version: string) => void;
71
75
  }
72
76
  //# sourceMappingURL=transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/shared/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAE7B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,CAAA;AACD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;OAMG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,KAAK,IAAI,CAAC;IAE/E;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/shared/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAE7B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,CAAA;AACD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;OAMG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,KAAK,IAAI,CAAC;IAE/E;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD"}