mcp-server-framework 1.0.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 (673) hide show
  1. package/CHANGELOG.md +174 -0
  2. package/LICENSE-GPL.md +219 -0
  3. package/LICENSE.md +187 -0
  4. package/README.md +439 -0
  5. package/build/config/config-cache.d.ts +120 -0
  6. package/build/config/config-cache.d.ts.map +1 -0
  7. package/build/config/config-cache.js +310 -0
  8. package/build/config/config-cache.js.map +1 -0
  9. package/build/config/env.d.ts +476 -0
  10. package/build/config/env.d.ts.map +1 -0
  11. package/build/config/env.js +441 -0
  12. package/build/config/env.js.map +1 -0
  13. package/build/config/extensions.d.ts +107 -0
  14. package/build/config/extensions.d.ts.map +1 -0
  15. package/build/config/extensions.js +152 -0
  16. package/build/config/extensions.js.map +1 -0
  17. package/build/config/file/index.d.ts +8 -0
  18. package/build/config/file/index.d.ts.map +1 -0
  19. package/build/config/file/index.js +10 -0
  20. package/build/config/file/index.js.map +1 -0
  21. package/build/config/file/loader.d.ts +31 -0
  22. package/build/config/file/loader.d.ts.map +1 -0
  23. package/build/config/file/loader.js +313 -0
  24. package/build/config/file/loader.js.map +1 -0
  25. package/build/config/file/schema.d.ts +583 -0
  26. package/build/config/file/schema.d.ts.map +1 -0
  27. package/build/config/file/schema.js +388 -0
  28. package/build/config/file/schema.js.map +1 -0
  29. package/build/config/index.d.ts +15 -0
  30. package/build/config/index.d.ts.map +1 -0
  31. package/build/config/index.js +27 -0
  32. package/build/config/index.js.map +1 -0
  33. package/build/config/startup-warnings.d.ts +46 -0
  34. package/build/config/startup-warnings.d.ts.map +1 -0
  35. package/build/config/startup-warnings.js +61 -0
  36. package/build/config/startup-warnings.js.map +1 -0
  37. package/build/connection/connection-state.d.ts +196 -0
  38. package/build/connection/connection-state.d.ts.map +1 -0
  39. package/build/connection/connection-state.js +426 -0
  40. package/build/connection/connection-state.js.map +1 -0
  41. package/build/connection/core/base.d.ts +43 -0
  42. package/build/connection/core/base.d.ts.map +1 -0
  43. package/build/connection/core/base.js +82 -0
  44. package/build/connection/core/base.js.map +1 -0
  45. package/build/connection/core/constants.d.ts +121 -0
  46. package/build/connection/core/constants.d.ts.map +1 -0
  47. package/build/connection/core/constants.js +151 -0
  48. package/build/connection/core/constants.js.map +1 -0
  49. package/build/connection/core/index.d.ts +13 -0
  50. package/build/connection/core/index.d.ts.map +1 -0
  51. package/build/connection/core/index.js +14 -0
  52. package/build/connection/core/index.js.map +1 -0
  53. package/build/connection/core/types.d.ts +102 -0
  54. package/build/connection/core/types.d.ts.map +1 -0
  55. package/build/connection/core/types.js +31 -0
  56. package/build/connection/core/types.js.map +1 -0
  57. package/build/connection/index.d.ts +19 -0
  58. package/build/connection/index.d.ts.map +1 -0
  59. package/build/connection/index.js +22 -0
  60. package/build/connection/index.js.map +1 -0
  61. package/build/connection/types.d.ts +125 -0
  62. package/build/connection/types.d.ts.map +1 -0
  63. package/build/connection/types.js +39 -0
  64. package/build/connection/types.js.map +1 -0
  65. package/build/errors/categories/auth.d.ts +59 -0
  66. package/build/errors/categories/auth.d.ts.map +1 -0
  67. package/build/errors/categories/auth.js +111 -0
  68. package/build/errors/categories/auth.js.map +1 -0
  69. package/build/errors/categories/connection.d.ts +70 -0
  70. package/build/errors/categories/connection.d.ts.map +1 -0
  71. package/build/errors/categories/connection.js +120 -0
  72. package/build/errors/categories/connection.js.map +1 -0
  73. package/build/errors/categories/index.d.ts +14 -0
  74. package/build/errors/categories/index.d.ts.map +1 -0
  75. package/build/errors/categories/index.js +20 -0
  76. package/build/errors/categories/index.js.map +1 -0
  77. package/build/errors/categories/operation.d.ts +83 -0
  78. package/build/errors/categories/operation.d.ts.map +1 -0
  79. package/build/errors/categories/operation.js +149 -0
  80. package/build/errors/categories/operation.js.map +1 -0
  81. package/build/errors/categories/protocol.d.ts +68 -0
  82. package/build/errors/categories/protocol.d.ts.map +1 -0
  83. package/build/errors/categories/protocol.js +135 -0
  84. package/build/errors/categories/protocol.js.map +1 -0
  85. package/build/errors/categories/session.d.ts +50 -0
  86. package/build/errors/categories/session.d.ts.map +1 -0
  87. package/build/errors/categories/session.js +97 -0
  88. package/build/errors/categories/session.js.map +1 -0
  89. package/build/errors/categories/system.d.ts +95 -0
  90. package/build/errors/categories/system.d.ts.map +1 -0
  91. package/build/errors/categories/system.js +190 -0
  92. package/build/errors/categories/system.js.map +1 -0
  93. package/build/errors/categories/transport.d.ts +70 -0
  94. package/build/errors/categories/transport.d.ts.map +1 -0
  95. package/build/errors/categories/transport.js +148 -0
  96. package/build/errors/categories/transport.js.map +1 -0
  97. package/build/errors/categories/validation.d.ts +140 -0
  98. package/build/errors/categories/validation.d.ts.map +1 -0
  99. package/build/errors/categories/validation.js +311 -0
  100. package/build/errors/categories/validation.js.map +1 -0
  101. package/build/errors/core/base.d.ts +103 -0
  102. package/build/errors/core/base.d.ts.map +1 -0
  103. package/build/errors/core/base.js +219 -0
  104. package/build/errors/core/base.js.map +1 -0
  105. package/build/errors/core/constants.d.ts +40 -0
  106. package/build/errors/core/constants.d.ts.map +1 -0
  107. package/build/errors/core/constants.js +49 -0
  108. package/build/errors/core/constants.js.map +1 -0
  109. package/build/errors/core/error-codes.d.ts +72 -0
  110. package/build/errors/core/error-codes.d.ts.map +1 -0
  111. package/build/errors/core/error-codes.js +88 -0
  112. package/build/errors/core/error-codes.js.map +1 -0
  113. package/build/errors/core/http.d.ts +69 -0
  114. package/build/errors/core/http.d.ts.map +1 -0
  115. package/build/errors/core/http.js +106 -0
  116. package/build/errors/core/http.js.map +1 -0
  117. package/build/errors/core/index.d.ts +23 -0
  118. package/build/errors/core/index.d.ts.map +1 -0
  119. package/build/errors/core/index.js +41 -0
  120. package/build/errors/core/index.js.map +1 -0
  121. package/build/errors/core/json-rpc.d.ts +69 -0
  122. package/build/errors/core/json-rpc.d.ts.map +1 -0
  123. package/build/errors/core/json-rpc.js +79 -0
  124. package/build/errors/core/json-rpc.js.map +1 -0
  125. package/build/errors/core/messages.d.ts +51 -0
  126. package/build/errors/core/messages.d.ts.map +1 -0
  127. package/build/errors/core/messages.js +59 -0
  128. package/build/errors/core/messages.js.map +1 -0
  129. package/build/errors/core/types.d.ts +80 -0
  130. package/build/errors/core/types.d.ts.map +1 -0
  131. package/build/errors/core/types.js +10 -0
  132. package/build/errors/core/types.js.map +1 -0
  133. package/build/errors/factory.d.ts +199 -0
  134. package/build/errors/factory.d.ts.map +1 -0
  135. package/build/errors/factory.js +244 -0
  136. package/build/errors/factory.js.map +1 -0
  137. package/build/errors/index.d.ts +35 -0
  138. package/build/errors/index.d.ts.map +1 -0
  139. package/build/errors/index.js +67 -0
  140. package/build/errors/index.js.map +1 -0
  141. package/build/index.d.ts +93 -0
  142. package/build/index.d.ts.map +1 -0
  143. package/build/index.js +107 -0
  144. package/build/index.js.map +1 -0
  145. package/build/logger/core/constants.d.ts +143 -0
  146. package/build/logger/core/constants.d.ts.map +1 -0
  147. package/build/logger/core/constants.js +206 -0
  148. package/build/logger/core/constants.js.map +1 -0
  149. package/build/logger/core/context.d.ts +170 -0
  150. package/build/logger/core/context.d.ts.map +1 -0
  151. package/build/logger/core/context.js +237 -0
  152. package/build/logger/core/context.js.map +1 -0
  153. package/build/logger/core/errors.d.ts +101 -0
  154. package/build/logger/core/errors.d.ts.map +1 -0
  155. package/build/logger/core/errors.js +128 -0
  156. package/build/logger/core/errors.js.map +1 -0
  157. package/build/logger/core/format.d.ts +40 -0
  158. package/build/logger/core/format.d.ts.map +1 -0
  159. package/build/logger/core/format.js +47 -0
  160. package/build/logger/core/format.js.map +1 -0
  161. package/build/logger/core/index.d.ts +19 -0
  162. package/build/logger/core/index.d.ts.map +1 -0
  163. package/build/logger/core/index.js +47 -0
  164. package/build/logger/core/index.js.map +1 -0
  165. package/build/logger/core/trace-context.d.ts +51 -0
  166. package/build/logger/core/trace-context.d.ts.map +1 -0
  167. package/build/logger/core/trace-context.js +42 -0
  168. package/build/logger/core/trace-context.js.map +1 -0
  169. package/build/logger/core/types.d.ts +233 -0
  170. package/build/logger/core/types.d.ts.map +1 -0
  171. package/build/logger/core/types.js +10 -0
  172. package/build/logger/core/types.js.map +1 -0
  173. package/build/logger/factory.d.ts +150 -0
  174. package/build/logger/factory.d.ts.map +1 -0
  175. package/build/logger/factory.js +236 -0
  176. package/build/logger/factory.js.map +1 -0
  177. package/build/logger/formatters/index.d.ts +12 -0
  178. package/build/logger/formatters/index.d.ts.map +1 -0
  179. package/build/logger/formatters/index.js +15 -0
  180. package/build/logger/formatters/index.js.map +1 -0
  181. package/build/logger/formatters/json-formatter.d.ts +54 -0
  182. package/build/logger/formatters/json-formatter.d.ts.map +1 -0
  183. package/build/logger/formatters/json-formatter.js +80 -0
  184. package/build/logger/formatters/json-formatter.js.map +1 -0
  185. package/build/logger/formatters/schema.d.ts +230 -0
  186. package/build/logger/formatters/schema.d.ts.map +1 -0
  187. package/build/logger/formatters/schema.js +278 -0
  188. package/build/logger/formatters/schema.js.map +1 -0
  189. package/build/logger/formatters/text-formatter.d.ts +50 -0
  190. package/build/logger/formatters/text-formatter.d.ts.map +1 -0
  191. package/build/logger/formatters/text-formatter.js +93 -0
  192. package/build/logger/formatters/text-formatter.js.map +1 -0
  193. package/build/logger/index.d.ts +39 -0
  194. package/build/logger/index.d.ts.map +1 -0
  195. package/build/logger/index.js +43 -0
  196. package/build/logger/index.js.map +1 -0
  197. package/build/logger/logger.d.ts +278 -0
  198. package/build/logger/logger.d.ts.map +1 -0
  199. package/build/logger/logger.js +459 -0
  200. package/build/logger/logger.js.map +1 -0
  201. package/build/logger/mcp-logger.d.ts +177 -0
  202. package/build/logger/mcp-logger.d.ts.map +1 -0
  203. package/build/logger/mcp-logger.js +294 -0
  204. package/build/logger/mcp-logger.js.map +1 -0
  205. package/build/logger/scrubbing/index.d.ts +14 -0
  206. package/build/logger/scrubbing/index.d.ts.map +1 -0
  207. package/build/logger/scrubbing/index.js +16 -0
  208. package/build/logger/scrubbing/index.js.map +1 -0
  209. package/build/logger/scrubbing/injection-guard.d.ts +69 -0
  210. package/build/logger/scrubbing/injection-guard.d.ts.map +1 -0
  211. package/build/logger/scrubbing/injection-guard.js +102 -0
  212. package/build/logger/scrubbing/injection-guard.js.map +1 -0
  213. package/build/logger/scrubbing/secret-scrubber.d.ts +72 -0
  214. package/build/logger/scrubbing/secret-scrubber.d.ts.map +1 -0
  215. package/build/logger/scrubbing/secret-scrubber.js +177 -0
  216. package/build/logger/scrubbing/secret-scrubber.js.map +1 -0
  217. package/build/logger/writers/base-writer.d.ts +45 -0
  218. package/build/logger/writers/base-writer.d.ts.map +1 -0
  219. package/build/logger/writers/base-writer.js +41 -0
  220. package/build/logger/writers/base-writer.js.map +1 -0
  221. package/build/logger/writers/composite-writer.d.ts +83 -0
  222. package/build/logger/writers/composite-writer.d.ts.map +1 -0
  223. package/build/logger/writers/composite-writer.js +121 -0
  224. package/build/logger/writers/composite-writer.js.map +1 -0
  225. package/build/logger/writers/console-writer.d.ts +59 -0
  226. package/build/logger/writers/console-writer.d.ts.map +1 -0
  227. package/build/logger/writers/console-writer.js +73 -0
  228. package/build/logger/writers/console-writer.js.map +1 -0
  229. package/build/logger/writers/file-writer.d.ts +160 -0
  230. package/build/logger/writers/file-writer.d.ts.map +1 -0
  231. package/build/logger/writers/file-writer.js +345 -0
  232. package/build/logger/writers/file-writer.js.map +1 -0
  233. package/build/logger/writers/index.d.ts +15 -0
  234. package/build/logger/writers/index.d.ts.map +1 -0
  235. package/build/logger/writers/index.js +19 -0
  236. package/build/logger/writers/index.js.map +1 -0
  237. package/build/mcp/capabilities/apps/define-app.d.ts +68 -0
  238. package/build/mcp/capabilities/apps/define-app.d.ts.map +1 -0
  239. package/build/mcp/capabilities/apps/define-app.js +127 -0
  240. package/build/mcp/capabilities/apps/define-app.js.map +1 -0
  241. package/build/mcp/capabilities/apps/index.d.ts +10 -0
  242. package/build/mcp/capabilities/apps/index.d.ts.map +1 -0
  243. package/build/mcp/capabilities/apps/index.js +10 -0
  244. package/build/mcp/capabilities/apps/index.js.map +1 -0
  245. package/build/mcp/capabilities/capabilities.d.ts +24 -0
  246. package/build/mcp/capabilities/capabilities.d.ts.map +1 -0
  247. package/build/mcp/capabilities/capabilities.js +50 -0
  248. package/build/mcp/capabilities/capabilities.js.map +1 -0
  249. package/build/mcp/capabilities/index.d.ts +17 -0
  250. package/build/mcp/capabilities/index.d.ts.map +1 -0
  251. package/build/mcp/capabilities/index.js +20 -0
  252. package/build/mcp/capabilities/index.js.map +1 -0
  253. package/build/mcp/capabilities/prompts/define-prompt.d.ts +95 -0
  254. package/build/mcp/capabilities/prompts/define-prompt.d.ts.map +1 -0
  255. package/build/mcp/capabilities/prompts/define-prompt.js +109 -0
  256. package/build/mcp/capabilities/prompts/define-prompt.js.map +1 -0
  257. package/build/mcp/capabilities/prompts/index.d.ts +10 -0
  258. package/build/mcp/capabilities/prompts/index.d.ts.map +1 -0
  259. package/build/mcp/capabilities/prompts/index.js +10 -0
  260. package/build/mcp/capabilities/prompts/index.js.map +1 -0
  261. package/build/mcp/capabilities/registry/base-registry.d.ts +95 -0
  262. package/build/mcp/capabilities/registry/base-registry.d.ts.map +1 -0
  263. package/build/mcp/capabilities/registry/base-registry.js +149 -0
  264. package/build/mcp/capabilities/registry/base-registry.js.map +1 -0
  265. package/build/mcp/capabilities/registry/index.d.ts +16 -0
  266. package/build/mcp/capabilities/registry/index.d.ts.map +1 -0
  267. package/build/mcp/capabilities/registry/index.js +34 -0
  268. package/build/mcp/capabilities/registry/index.js.map +1 -0
  269. package/build/mcp/capabilities/registry/prompt-registry.d.ts +116 -0
  270. package/build/mcp/capabilities/registry/prompt-registry.d.ts.map +1 -0
  271. package/build/mcp/capabilities/registry/prompt-registry.js +232 -0
  272. package/build/mcp/capabilities/registry/prompt-registry.js.map +1 -0
  273. package/build/mcp/capabilities/registry/reset.d.ts +30 -0
  274. package/build/mcp/capabilities/registry/reset.d.ts.map +1 -0
  275. package/build/mcp/capabilities/registry/reset.js +48 -0
  276. package/build/mcp/capabilities/registry/reset.js.map +1 -0
  277. package/build/mcp/capabilities/registry/resource-registry.d.ts +152 -0
  278. package/build/mcp/capabilities/registry/resource-registry.d.ts.map +1 -0
  279. package/build/mcp/capabilities/registry/resource-registry.js +430 -0
  280. package/build/mcp/capabilities/registry/resource-registry.js.map +1 -0
  281. package/build/mcp/capabilities/registry/scope-enforcement.d.ts +48 -0
  282. package/build/mcp/capabilities/registry/scope-enforcement.d.ts.map +1 -0
  283. package/build/mcp/capabilities/registry/scope-enforcement.js +62 -0
  284. package/build/mcp/capabilities/registry/scope-enforcement.js.map +1 -0
  285. package/build/mcp/capabilities/registry/task-tool-registry.d.ts +96 -0
  286. package/build/mcp/capabilities/registry/task-tool-registry.d.ts.map +1 -0
  287. package/build/mcp/capabilities/registry/task-tool-registry.js +190 -0
  288. package/build/mcp/capabilities/registry/task-tool-registry.js.map +1 -0
  289. package/build/mcp/capabilities/registry/tool-registry.d.ts +100 -0
  290. package/build/mcp/capabilities/registry/tool-registry.d.ts.map +1 -0
  291. package/build/mcp/capabilities/registry/tool-registry.js +242 -0
  292. package/build/mcp/capabilities/registry/tool-registry.js.map +1 -0
  293. package/build/mcp/capabilities/resources/define-resource.d.ts +103 -0
  294. package/build/mcp/capabilities/resources/define-resource.d.ts.map +1 -0
  295. package/build/mcp/capabilities/resources/define-resource.js +137 -0
  296. package/build/mcp/capabilities/resources/define-resource.js.map +1 -0
  297. package/build/mcp/capabilities/resources/index.d.ts +10 -0
  298. package/build/mcp/capabilities/resources/index.d.ts.map +1 -0
  299. package/build/mcp/capabilities/resources/index.js +10 -0
  300. package/build/mcp/capabilities/resources/index.js.map +1 -0
  301. package/build/mcp/capabilities/server-capabilities.d.ts +33 -0
  302. package/build/mcp/capabilities/server-capabilities.d.ts.map +1 -0
  303. package/build/mcp/capabilities/server-capabilities.js +16 -0
  304. package/build/mcp/capabilities/server-capabilities.js.map +1 -0
  305. package/build/mcp/capabilities/tasks/define-task.d.ts +75 -0
  306. package/build/mcp/capabilities/tasks/define-task.d.ts.map +1 -0
  307. package/build/mcp/capabilities/tasks/define-task.js +93 -0
  308. package/build/mcp/capabilities/tasks/define-task.js.map +1 -0
  309. package/build/mcp/capabilities/tasks/index.d.ts +11 -0
  310. package/build/mcp/capabilities/tasks/index.d.ts.map +1 -0
  311. package/build/mcp/capabilities/tasks/index.js +11 -0
  312. package/build/mcp/capabilities/tasks/index.js.map +1 -0
  313. package/build/mcp/capabilities/tools/define-tool.d.ts +62 -0
  314. package/build/mcp/capabilities/tools/define-tool.d.ts.map +1 -0
  315. package/build/mcp/capabilities/tools/define-tool.js +73 -0
  316. package/build/mcp/capabilities/tools/define-tool.js.map +1 -0
  317. package/build/mcp/capabilities/tools/index.d.ts +10 -0
  318. package/build/mcp/capabilities/tools/index.d.ts.map +1 -0
  319. package/build/mcp/capabilities/tools/index.js +10 -0
  320. package/build/mcp/capabilities/tools/index.js.map +1 -0
  321. package/build/mcp/handlers/index.d.ts +19 -0
  322. package/build/mcp/handlers/index.d.ts.map +1 -0
  323. package/build/mcp/handlers/index.js +26 -0
  324. package/build/mcp/handlers/index.js.map +1 -0
  325. package/build/mcp/handlers/ping.d.ts +27 -0
  326. package/build/mcp/handlers/ping.d.ts.map +1 -0
  327. package/build/mcp/handlers/ping.js +61 -0
  328. package/build/mcp/handlers/ping.js.map +1 -0
  329. package/build/mcp/handlers/progress.d.ts +41 -0
  330. package/build/mcp/handlers/progress.d.ts.map +1 -0
  331. package/build/mcp/handlers/progress.js +79 -0
  332. package/build/mcp/handlers/progress.js.map +1 -0
  333. package/build/mcp/index.d.ts +28 -0
  334. package/build/mcp/index.d.ts.map +1 -0
  335. package/build/mcp/index.js +34 -0
  336. package/build/mcp/index.js.map +1 -0
  337. package/build/mcp/responses/helpers.d.ts +146 -0
  338. package/build/mcp/responses/helpers.d.ts.map +1 -0
  339. package/build/mcp/responses/helpers.js +197 -0
  340. package/build/mcp/responses/helpers.js.map +1 -0
  341. package/build/mcp/responses/index.d.ts +9 -0
  342. package/build/mcp/responses/index.d.ts.map +1 -0
  343. package/build/mcp/responses/index.js +12 -0
  344. package/build/mcp/responses/index.js.map +1 -0
  345. package/build/mcp/types/context.d.ts +371 -0
  346. package/build/mcp/types/context.d.ts.map +1 -0
  347. package/build/mcp/types/context.js +17 -0
  348. package/build/mcp/types/context.js.map +1 -0
  349. package/build/mcp/types/definition.d.ts +727 -0
  350. package/build/mcp/types/definition.d.ts.map +1 -0
  351. package/build/mcp/types/definition.js +29 -0
  352. package/build/mcp/types/definition.js.map +1 -0
  353. package/build/mcp/types/handler.d.ts +58 -0
  354. package/build/mcp/types/handler.d.ts.map +1 -0
  355. package/build/mcp/types/handler.js +10 -0
  356. package/build/mcp/types/handler.js.map +1 -0
  357. package/build/mcp/types/index.d.ts +21 -0
  358. package/build/mcp/types/index.d.ts.map +1 -0
  359. package/build/mcp/types/index.js +18 -0
  360. package/build/mcp/types/index.js.map +1 -0
  361. package/build/mcp/types/response.d.ts +79 -0
  362. package/build/mcp/types/response.d.ts.map +1 -0
  363. package/build/mcp/types/response.js +10 -0
  364. package/build/mcp/types/response.js.map +1 -0
  365. package/build/server/auth/auth-context.d.ts +52 -0
  366. package/build/server/auth/auth-context.d.ts.map +1 -0
  367. package/build/server/auth/auth-context.js +45 -0
  368. package/build/server/auth/auth-context.js.map +1 -0
  369. package/build/server/auth/guards.d.ts +72 -0
  370. package/build/server/auth/guards.d.ts.map +1 -0
  371. package/build/server/auth/guards.js +103 -0
  372. package/build/server/auth/guards.js.map +1 -0
  373. package/build/server/auth/index.d.ts +21 -0
  374. package/build/server/auth/index.d.ts.map +1 -0
  375. package/build/server/auth/index.js +20 -0
  376. package/build/server/auth/index.js.map +1 -0
  377. package/build/server/auth/oidc-discovery.d.ts +68 -0
  378. package/build/server/auth/oidc-discovery.d.ts.map +1 -0
  379. package/build/server/auth/oidc-discovery.js +234 -0
  380. package/build/server/auth/oidc-discovery.js.map +1 -0
  381. package/build/server/auth/oidc-provider.d.ts +96 -0
  382. package/build/server/auth/oidc-provider.d.ts.map +1 -0
  383. package/build/server/auth/oidc-provider.js +126 -0
  384. package/build/server/auth/oidc-provider.js.map +1 -0
  385. package/build/server/auth/types.d.ts +204 -0
  386. package/build/server/auth/types.d.ts.map +1 -0
  387. package/build/server/auth/types.js +29 -0
  388. package/build/server/auth/types.js.map +1 -0
  389. package/build/server/auth/upstream-provider.d.ts +161 -0
  390. package/build/server/auth/upstream-provider.d.ts.map +1 -0
  391. package/build/server/auth/upstream-provider.js +411 -0
  392. package/build/server/auth/upstream-provider.js.map +1 -0
  393. package/build/server/builder/constants.d.ts +45 -0
  394. package/build/server/builder/constants.d.ts.map +1 -0
  395. package/build/server/builder/constants.js +54 -0
  396. package/build/server/builder/constants.js.map +1 -0
  397. package/build/server/builder/index.d.ts +24 -0
  398. package/build/server/builder/index.d.ts.map +1 -0
  399. package/build/server/builder/index.js +25 -0
  400. package/build/server/builder/index.js.map +1 -0
  401. package/build/server/builder/primitive-collector.d.ts +24 -0
  402. package/build/server/builder/primitive-collector.d.ts.map +1 -0
  403. package/build/server/builder/primitive-collector.js +89 -0
  404. package/build/server/builder/primitive-collector.js.map +1 -0
  405. package/build/server/builder/server-builder.d.ts +53 -0
  406. package/build/server/builder/server-builder.d.ts.map +1 -0
  407. package/build/server/builder/server-builder.js +132 -0
  408. package/build/server/builder/server-builder.js.map +1 -0
  409. package/build/server/builder/types.d.ts +93 -0
  410. package/build/server/builder/types.d.ts.map +1 -0
  411. package/build/server/builder/types.js +25 -0
  412. package/build/server/builder/types.js.map +1 -0
  413. package/build/server/builder/validation.d.ts +36 -0
  414. package/build/server/builder/validation.d.ts.map +1 -0
  415. package/build/server/builder/validation.js +44 -0
  416. package/build/server/builder/validation.js.map +1 -0
  417. package/build/server/create-server.d.ts +57 -0
  418. package/build/server/create-server.d.ts.map +1 -0
  419. package/build/server/create-server.js +104 -0
  420. package/build/server/create-server.js.map +1 -0
  421. package/build/server/http/express-app.d.ts +103 -0
  422. package/build/server/http/express-app.d.ts.map +1 -0
  423. package/build/server/http/express-app.js +391 -0
  424. package/build/server/http/express-app.js.map +1 -0
  425. package/build/server/http/http-server.d.ts +67 -0
  426. package/build/server/http/http-server.d.ts.map +1 -0
  427. package/build/server/http/http-server.js +188 -0
  428. package/build/server/http/http-server.js.map +1 -0
  429. package/build/server/http/http-transport.d.ts +33 -0
  430. package/build/server/http/http-transport.d.ts.map +1 -0
  431. package/build/server/http/http-transport.js +84 -0
  432. package/build/server/http/http-transport.js.map +1 -0
  433. package/build/server/http/index.d.ts +15 -0
  434. package/build/server/http/index.d.ts.map +1 -0
  435. package/build/server/http/index.js +11 -0
  436. package/build/server/http/index.js.map +1 -0
  437. package/build/server/index.d.ts +25 -0
  438. package/build/server/index.d.ts.map +1 -0
  439. package/build/server/index.js +41 -0
  440. package/build/server/index.js.map +1 -0
  441. package/build/server/lifecycle.d.ts +114 -0
  442. package/build/server/lifecycle.d.ts.map +1 -0
  443. package/build/server/lifecycle.js +30 -0
  444. package/build/server/lifecycle.js.map +1 -0
  445. package/build/server/middleware/bearer-auth.d.ts +43 -0
  446. package/build/server/middleware/bearer-auth.d.ts.map +1 -0
  447. package/build/server/middleware/bearer-auth.js +75 -0
  448. package/build/server/middleware/bearer-auth.js.map +1 -0
  449. package/build/server/middleware/custom-header-auth.d.ts +40 -0
  450. package/build/server/middleware/custom-header-auth.d.ts.map +1 -0
  451. package/build/server/middleware/custom-header-auth.js +90 -0
  452. package/build/server/middleware/custom-header-auth.js.map +1 -0
  453. package/build/server/middleware/dns-rebinding.d.ts +25 -0
  454. package/build/server/middleware/dns-rebinding.d.ts.map +1 -0
  455. package/build/server/middleware/dns-rebinding.js +94 -0
  456. package/build/server/middleware/dns-rebinding.js.map +1 -0
  457. package/build/server/middleware/index.d.ts +69 -0
  458. package/build/server/middleware/index.d.ts.map +1 -0
  459. package/build/server/middleware/index.js +68 -0
  460. package/build/server/middleware/index.js.map +1 -0
  461. package/build/server/middleware/logging.d.ts +21 -0
  462. package/build/server/middleware/logging.d.ts.map +1 -0
  463. package/build/server/middleware/logging.js +36 -0
  464. package/build/server/middleware/logging.js.map +1 -0
  465. package/build/server/middleware/oauth-router.d.ts +50 -0
  466. package/build/server/middleware/oauth-router.d.ts.map +1 -0
  467. package/build/server/middleware/oauth-router.js +53 -0
  468. package/build/server/middleware/oauth-router.js.map +1 -0
  469. package/build/server/middleware/protocol-version.d.ts +13 -0
  470. package/build/server/middleware/protocol-version.d.ts.map +1 -0
  471. package/build/server/middleware/protocol-version.js +48 -0
  472. package/build/server/middleware/protocol-version.js.map +1 -0
  473. package/build/server/middleware/rate-limit.d.ts +47 -0
  474. package/build/server/middleware/rate-limit.d.ts.map +1 -0
  475. package/build/server/middleware/rate-limit.js +109 -0
  476. package/build/server/middleware/rate-limit.js.map +1 -0
  477. package/build/server/middleware/trust-proxy.d.ts +37 -0
  478. package/build/server/middleware/trust-proxy.d.ts.map +1 -0
  479. package/build/server/middleware/trust-proxy.js +154 -0
  480. package/build/server/middleware/trust-proxy.js.map +1 -0
  481. package/build/server/option-overrides.d.ts +25 -0
  482. package/build/server/option-overrides.d.ts.map +1 -0
  483. package/build/server/option-overrides.js +85 -0
  484. package/build/server/option-overrides.js.map +1 -0
  485. package/build/server/routes/health.d.ts +87 -0
  486. package/build/server/routes/health.d.ts.map +1 -0
  487. package/build/server/routes/health.js +183 -0
  488. package/build/server/routes/health.js.map +1 -0
  489. package/build/server/routes/index.d.ts +16 -0
  490. package/build/server/routes/index.d.ts.map +1 -0
  491. package/build/server/routes/index.js +18 -0
  492. package/build/server/routes/index.js.map +1 -0
  493. package/build/server/routes/metrics.d.ts +40 -0
  494. package/build/server/routes/metrics.d.ts.map +1 -0
  495. package/build/server/routes/metrics.js +81 -0
  496. package/build/server/routes/metrics.js.map +1 -0
  497. package/build/server/routes/oauth-router.d.ts +50 -0
  498. package/build/server/routes/oauth-router.d.ts.map +1 -0
  499. package/build/server/routes/oauth-router.js +53 -0
  500. package/build/server/routes/oauth-router.js.map +1 -0
  501. package/build/server/routes/readiness-status.d.ts +25 -0
  502. package/build/server/routes/readiness-status.d.ts.map +1 -0
  503. package/build/server/routes/readiness-status.js +27 -0
  504. package/build/server/routes/readiness-status.js.map +1 -0
  505. package/build/server/routes/sse-router.d.ts +43 -0
  506. package/build/server/routes/sse-router.d.ts.map +1 -0
  507. package/build/server/routes/sse-router.js +92 -0
  508. package/build/server/routes/sse-router.js.map +1 -0
  509. package/build/server/routes/streamable-http-router.d.ts +36 -0
  510. package/build/server/routes/streamable-http-router.d.ts.map +1 -0
  511. package/build/server/routes/streamable-http-router.js +59 -0
  512. package/build/server/routes/streamable-http-router.js.map +1 -0
  513. package/build/server/server-instance.d.ts +185 -0
  514. package/build/server/server-instance.d.ts.map +1 -0
  515. package/build/server/server-instance.js +615 -0
  516. package/build/server/server-instance.js.map +1 -0
  517. package/build/server/server-options.d.ts +411 -0
  518. package/build/server/server-options.d.ts.map +1 -0
  519. package/build/server/server-options.js +17 -0
  520. package/build/server/server-options.js.map +1 -0
  521. package/build/server/session/in-memory-store.d.ts +128 -0
  522. package/build/server/session/in-memory-store.d.ts.map +1 -0
  523. package/build/server/session/in-memory-store.js +312 -0
  524. package/build/server/session/in-memory-store.js.map +1 -0
  525. package/build/server/session/index.d.ts +43 -0
  526. package/build/server/session/index.d.ts.map +1 -0
  527. package/build/server/session/index.js +47 -0
  528. package/build/server/session/index.js.map +1 -0
  529. package/build/server/session/mcp-session.d.ts +210 -0
  530. package/build/server/session/mcp-session.d.ts.map +1 -0
  531. package/build/server/session/mcp-session.js +428 -0
  532. package/build/server/session/mcp-session.js.map +1 -0
  533. package/build/server/session/session-factory.d.ts +119 -0
  534. package/build/server/session/session-factory.d.ts.map +1 -0
  535. package/build/server/session/session-factory.js +131 -0
  536. package/build/server/session/session-factory.js.map +1 -0
  537. package/build/server/session/session-housekeeper.d.ts +100 -0
  538. package/build/server/session/session-housekeeper.d.ts.map +1 -0
  539. package/build/server/session/session-housekeeper.js +217 -0
  540. package/build/server/session/session-housekeeper.js.map +1 -0
  541. package/build/server/session/session-manager.d.ts +227 -0
  542. package/build/server/session/session-manager.d.ts.map +1 -0
  543. package/build/server/session/session-manager.js +282 -0
  544. package/build/server/session/session-manager.js.map +1 -0
  545. package/build/server/session/session-store.d.ts +95 -0
  546. package/build/server/session/session-store.d.ts.map +1 -0
  547. package/build/server/session/session-store.js +13 -0
  548. package/build/server/session/session-store.js.map +1 -0
  549. package/build/server/session/session.d.ts +132 -0
  550. package/build/server/session/session.d.ts.map +1 -0
  551. package/build/server/session/session.js +61 -0
  552. package/build/server/session/session.js.map +1 -0
  553. package/build/server/transport/constants.d.ts +85 -0
  554. package/build/server/transport/constants.d.ts.map +1 -0
  555. package/build/server/transport/constants.js +103 -0
  556. package/build/server/transport/constants.js.map +1 -0
  557. package/build/server/transport/index.d.ts +21 -0
  558. package/build/server/transport/index.d.ts.map +1 -0
  559. package/build/server/transport/index.js +28 -0
  560. package/build/server/transport/index.js.map +1 -0
  561. package/build/server/transport/sse/handler.d.ts +46 -0
  562. package/build/server/transport/sse/handler.d.ts.map +1 -0
  563. package/build/server/transport/sse/handler.js +189 -0
  564. package/build/server/transport/sse/handler.js.map +1 -0
  565. package/build/server/transport/sse/index.d.ts +15 -0
  566. package/build/server/transport/sse/index.d.ts.map +1 -0
  567. package/build/server/transport/sse/index.js +14 -0
  568. package/build/server/transport/sse/index.js.map +1 -0
  569. package/build/server/transport/sse/transport.d.ts +94 -0
  570. package/build/server/transport/sse/transport.d.ts.map +1 -0
  571. package/build/server/transport/sse/transport.js +175 -0
  572. package/build/server/transport/sse/transport.js.map +1 -0
  573. package/build/server/transport/stdio-transport.d.ts +23 -0
  574. package/build/server/transport/stdio-transport.d.ts.map +1 -0
  575. package/build/server/transport/stdio-transport.js +59 -0
  576. package/build/server/transport/stdio-transport.js.map +1 -0
  577. package/build/server/transport/streamable-http/index.d.ts +9 -0
  578. package/build/server/transport/streamable-http/index.d.ts.map +1 -0
  579. package/build/server/transport/streamable-http/index.js +9 -0
  580. package/build/server/transport/streamable-http/index.js.map +1 -0
  581. package/build/server/transport/streamable-http/stateful-handler.d.ts +41 -0
  582. package/build/server/transport/streamable-http/stateful-handler.d.ts.map +1 -0
  583. package/build/server/transport/streamable-http/stateful-handler.js +264 -0
  584. package/build/server/transport/streamable-http/stateful-handler.js.map +1 -0
  585. package/build/server/transport/streamable-http/stateless-handler.d.ts +28 -0
  586. package/build/server/transport/streamable-http/stateless-handler.d.ts.map +1 -0
  587. package/build/server/transport/streamable-http/stateless-handler.js +81 -0
  588. package/build/server/transport/streamable-http/stateless-handler.js.map +1 -0
  589. package/build/server/transport/streamable-http/transport.d.ts +110 -0
  590. package/build/server/transport/streamable-http/transport.d.ts.map +1 -0
  591. package/build/server/transport/streamable-http/transport.js +118 -0
  592. package/build/server/transport/streamable-http/transport.js.map +1 -0
  593. package/build/server/transport/transport-context.d.ts +67 -0
  594. package/build/server/transport/transport-context.d.ts.map +1 -0
  595. package/build/server/transport/transport-context.js +38 -0
  596. package/build/server/transport/transport-context.js.map +1 -0
  597. package/build/server/transport/types.d.ts +56 -0
  598. package/build/server/transport/types.d.ts.map +1 -0
  599. package/build/server/transport/types.js +11 -0
  600. package/build/server/transport/types.js.map +1 -0
  601. package/build/server/transport-options.d.ts +248 -0
  602. package/build/server/transport-options.d.ts.map +1 -0
  603. package/build/server/transport-options.js +18 -0
  604. package/build/server/transport-options.js.map +1 -0
  605. package/build/server/types.d.ts +172 -0
  606. package/build/server/types.d.ts.map +1 -0
  607. package/build/server/types.js +9 -0
  608. package/build/server/types.js.map +1 -0
  609. package/build/telemetry/connection-telemetry-bridge.d.ts +30 -0
  610. package/build/telemetry/connection-telemetry-bridge.d.ts.map +1 -0
  611. package/build/telemetry/connection-telemetry-bridge.js +54 -0
  612. package/build/telemetry/connection-telemetry-bridge.js.map +1 -0
  613. package/build/telemetry/core/config.d.ts +38 -0
  614. package/build/telemetry/core/config.d.ts.map +1 -0
  615. package/build/telemetry/core/config.js +54 -0
  616. package/build/telemetry/core/config.js.map +1 -0
  617. package/build/telemetry/core/constants.d.ts +183 -0
  618. package/build/telemetry/core/constants.d.ts.map +1 -0
  619. package/build/telemetry/core/constants.js +207 -0
  620. package/build/telemetry/core/constants.js.map +1 -0
  621. package/build/telemetry/core/diag-logger.d.ts +35 -0
  622. package/build/telemetry/core/diag-logger.d.ts.map +1 -0
  623. package/build/telemetry/core/diag-logger.js +54 -0
  624. package/build/telemetry/core/diag-logger.js.map +1 -0
  625. package/build/telemetry/core/index.d.ts +12 -0
  626. package/build/telemetry/core/index.d.ts.map +1 -0
  627. package/build/telemetry/core/index.js +32 -0
  628. package/build/telemetry/core/index.js.map +1 -0
  629. package/build/telemetry/core/types.d.ts +106 -0
  630. package/build/telemetry/core/types.d.ts.map +1 -0
  631. package/build/telemetry/core/types.js +10 -0
  632. package/build/telemetry/core/types.js.map +1 -0
  633. package/build/telemetry/index.d.ts +59 -0
  634. package/build/telemetry/index.d.ts.map +1 -0
  635. package/build/telemetry/index.js +79 -0
  636. package/build/telemetry/index.js.map +1 -0
  637. package/build/telemetry/metrics.d.ts +127 -0
  638. package/build/telemetry/metrics.d.ts.map +1 -0
  639. package/build/telemetry/metrics.js +337 -0
  640. package/build/telemetry/metrics.js.map +1 -0
  641. package/build/telemetry/sdk.d.ts +110 -0
  642. package/build/telemetry/sdk.d.ts.map +1 -0
  643. package/build/telemetry/sdk.js +547 -0
  644. package/build/telemetry/sdk.js.map +1 -0
  645. package/build/telemetry/tracing.d.ts +78 -0
  646. package/build/telemetry/tracing.d.ts.map +1 -0
  647. package/build/telemetry/tracing.js +257 -0
  648. package/build/telemetry/tracing.js.map +1 -0
  649. package/build/utils/env-helpers.d.ts +46 -0
  650. package/build/utils/env-helpers.d.ts.map +1 -0
  651. package/build/utils/env-helpers.js +54 -0
  652. package/build/utils/env-helpers.js.map +1 -0
  653. package/build/utils/index.d.ts +14 -0
  654. package/build/utils/index.d.ts.map +1 -0
  655. package/build/utils/index.js +19 -0
  656. package/build/utils/index.js.map +1 -0
  657. package/build/utils/sensitive-keys.d.ts +48 -0
  658. package/build/utils/sensitive-keys.d.ts.map +1 -0
  659. package/build/utils/sensitive-keys.js +131 -0
  660. package/build/utils/sensitive-keys.js.map +1 -0
  661. package/build/utils/string-helpers.d.ts +126 -0
  662. package/build/utils/string-helpers.d.ts.map +1 -0
  663. package/build/utils/string-helpers.js +189 -0
  664. package/build/utils/string-helpers.js.map +1 -0
  665. package/build/utils/validation.d.ts +84 -0
  666. package/build/utils/validation.d.ts.map +1 -0
  667. package/build/utils/validation.js +111 -0
  668. package/build/utils/validation.js.map +1 -0
  669. package/build/utils/zod-helpers.d.ts +92 -0
  670. package/build/utils/zod-helpers.d.ts.map +1 -0
  671. package/build/utils/zod-helpers.js +120 -0
  672. package/build/utils/zod-helpers.js.map +1 -0
  673. package/package.json +133 -0
@@ -0,0 +1,189 @@
1
+ /**
2
+ * SSE Request Handler
3
+ *
4
+ * Manages SSE session lifecycle — connection setup, message routing,
5
+ * and cleanup. Parallel to the StreamableHttpTransport's role for
6
+ * the modern Streamable HTTP transport.
7
+ *
8
+ * This handler encapsulates all session management so the SSE router
9
+ * remains a thin routing layer.
10
+ *
11
+ * @module server/transport/sse/handler
12
+ */
13
+ import { SseTransport } from "./transport.js";
14
+ import { createJsonRpcError, JsonRpcErrorCode, HttpStatus, TransportErrorMessage } from "../../../errors/index.js";
15
+ import { logger as baseLogger } from "../../../logger/index.js";
16
+ import { TRANSPORT_LOG_COMPONENTS, SESSION_ID_DISPLAY_LENGTH } from "../constants.js";
17
+ import { SESSION_CLOSE_REASONS } from "../../session/index.js";
18
+ const logger = baseLogger.child({ component: TRANSPORT_LOG_COMPONENTS.SSE });
19
+ /** @internal Log messages for SSE request handler */
20
+ const LogMessages = {
21
+ // Connection lifecycle
22
+ SESSION_LIMIT_REACHED: "Session limit reached, rejecting SSE connection",
23
+ SESSION_CREATE_FAILED: "Failed to create SSE session (capacity reached)",
24
+ SESSION_CREATED: "SSE session created: %s",
25
+ SESSION_CLOSED: "SSE session closed: %s",
26
+ SESSION_CONNECTION_ERROR: "MCP session connection error for session %s: %s",
27
+ STREAM_CONNECTED: "SSE stream connected for session: %s",
28
+ CONNECTION_SETUP_ERROR: "Error setting up SSE connection: %s",
29
+ // Message handling
30
+ POST_REJECTED_NO_SESSION_PARAM: "SSE POST %s rejected: missing sessionId query param",
31
+ POST_REJECTED_SESSION_NOT_FOUND: "SSE POST %s rejected: session not found [%s]",
32
+ POST_MESSAGE: "SSE POST %s [%s] method=%s",
33
+ POST_ERROR: "Error handling SSE POST for session %s: %s",
34
+ };
35
+ // ============================================================================
36
+ // SSE Request Handler
37
+ // ============================================================================
38
+ /**
39
+ * Handles SSE transport session lifecycle and message routing.
40
+ *
41
+ * Manages session creation, connection setup, and message dispatching
42
+ * for the legacy HTTP+SSE transport (deprecated protocol 2024-11-05).
43
+ */
44
+ export class SseRequestHandler {
45
+ sessionFactory;
46
+ sessionManager;
47
+ constructor(sessionFactory, sessionManager) {
48
+ this.sessionFactory = sessionFactory;
49
+ this.sessionManager = sessionManager;
50
+ }
51
+ // ==========================================================================
52
+ // Connection Handler
53
+ // ==========================================================================
54
+ /**
55
+ * Handle an SSE connection (shared logic for /mcp and /sse endpoints).
56
+ *
57
+ * Creates an SSE stream and connects the MCP server to it.
58
+ * The messageEndpoint parameter determines where clients should POST messages to.
59
+ *
60
+ * Note: mcpServer.connect() automatically calls transport.start() internally,
61
+ * which sends the 'endpoint' SSE event with the message URL containing the sessionId.
62
+ *
63
+ * NOTE: This function requires real SSE connections for full test coverage.
64
+ */
65
+ /* v8 ignore start - SSE requires real SSE connections for testing */
66
+ async handleConnection(req, res, messageEndpoint) {
67
+ // Check session limits: global capacity AND per-transport (SSE) limit.
68
+ // Both checks must pass before starting the SSE stream to avoid sending
69
+ // SSE headers and then immediately rejecting the session in create().
70
+ if (!this.sessionManager.hasCapacity() || !this.sessionManager.hasCapacityForTransport("sse")) {
71
+ logger.warn(LogMessages.SESSION_LIMIT_REACHED);
72
+ res
73
+ .status(HttpStatus.SERVICE_UNAVAILABLE)
74
+ .json(createJsonRpcError(JsonRpcErrorCode.SERVER_ERROR, TransportErrorMessage.TOO_MANY_SESSIONS));
75
+ return;
76
+ }
77
+ try {
78
+ // Create our custom SSE transport
79
+ const transport = new SseTransport(messageEndpoint, res);
80
+ // Start the transport first (sends endpoint event with sessionId)
81
+ await transport.start();
82
+ // Get the sessionId that was sent to the client in the endpoint event
83
+ const sessionId = transport.sessionId;
84
+ // Create MCP session instance
85
+ const mcpSession = this.sessionFactory();
86
+ // IMPORTANT: Create unified session BEFORE connecting MCP session!
87
+ const session = this.sessionManager.create({
88
+ id: sessionId,
89
+ transportType: "sse",
90
+ transport,
91
+ mcpSession,
92
+ });
93
+ if (!session) {
94
+ logger.warn(LogMessages.SESSION_CREATE_FAILED);
95
+ // After transport.start(), SSE headers are already sent — cannot send JSON error.
96
+ // Close the transport; the client will detect the disconnection.
97
+ if (!res.headersSent) {
98
+ res
99
+ .status(HttpStatus.SERVICE_UNAVAILABLE)
100
+ .json(createJsonRpcError(JsonRpcErrorCode.SERVER_ERROR, TransportErrorMessage.TOO_MANY_SESSIONS));
101
+ }
102
+ await transport.close();
103
+ return;
104
+ }
105
+ logger.debug(LogMessages.SESSION_CREATED, sessionId);
106
+ // Guard against duplicate close (transport.onclose + req.on('close') fire independently)
107
+ let closed = false;
108
+ const closeOnce = () => {
109
+ if (closed)
110
+ return;
111
+ closed = true;
112
+ logger.debug(LogMessages.SESSION_CLOSED, sessionId);
113
+ void this.sessionManager.close(sessionId, SESSION_CLOSE_REASONS.CLIENT_DISCONNECT).catch((err) => {
114
+ logger.warn("Error closing session on client disconnect: %s", err instanceof Error ? err.message : String(err));
115
+ });
116
+ };
117
+ // Handle cleanup when connection closes
118
+ transport.onclose = closeOnce;
119
+ // Also handle request close/error
120
+ req.on("close", closeOnce);
121
+ // Connect MCP session to transport
122
+ // Note: This is intentionally NOT awaited because connect() may block
123
+ // waiting for the initialize message from the client.
124
+ mcpSession.sdk.connect(transport).catch((err) => {
125
+ logger.error(LogMessages.SESSION_CONNECTION_ERROR, sessionId, err);
126
+ void this.sessionManager.close(sessionId, SESSION_CLOSE_REASONS.ERROR).catch((closeErr) => {
127
+ logger.warn("Error closing session after connection failure: %s", closeErr instanceof Error ? closeErr.message : String(closeErr));
128
+ });
129
+ });
130
+ logger.debug(LogMessages.STREAM_CONNECTED, sessionId);
131
+ }
132
+ catch (error) {
133
+ logger.error(LogMessages.CONNECTION_SETUP_ERROR, error);
134
+ if (!res.headersSent) {
135
+ res
136
+ .status(HttpStatus.INTERNAL_SERVER_ERROR)
137
+ .json(createJsonRpcError(JsonRpcErrorCode.INTERNAL_ERROR, TransportErrorMessage.INTERNAL_ERROR));
138
+ }
139
+ }
140
+ }
141
+ /* v8 ignore stop */
142
+ // ==========================================================================
143
+ // Message Handler
144
+ // ==========================================================================
145
+ /**
146
+ * Handle an incoming POST message for an SSE session.
147
+ *
148
+ * Looks up the session by query parameter, validates it, and delegates
149
+ * the message to the session's SseTransport.
150
+ */
151
+ /* v8 ignore start - SSE session handling */
152
+ async handleMessage(req, res, endpoint) {
153
+ const rawSessionId = req.query.sessionId;
154
+ const sessionId = typeof rawSessionId === "string" ? rawSessionId : undefined;
155
+ if (!sessionId) {
156
+ logger.warn(LogMessages.POST_REJECTED_NO_SESSION_PARAM, endpoint);
157
+ res
158
+ .status(HttpStatus.BAD_REQUEST)
159
+ .json(createJsonRpcError(JsonRpcErrorCode.SERVER_ERROR, TransportErrorMessage.SESSION_ID_QUERY_REQUIRED));
160
+ return;
161
+ }
162
+ const session = this.sessionManager.get(sessionId);
163
+ if (!session || session.transport.type !== "sse") {
164
+ logger.warn(LogMessages.POST_REJECTED_SESSION_NOT_FOUND, endpoint, sessionId.substring(0, SESSION_ID_DISPLAY_LENGTH));
165
+ res
166
+ .status(HttpStatus.NOT_FOUND)
167
+ .json(createJsonRpcError(JsonRpcErrorCode.SESSION_NOT_FOUND, TransportErrorMessage.SESSION_NOT_FOUND));
168
+ return;
169
+ }
170
+ // Update session activity timestamp (idle timeout tracking)
171
+ this.sessionManager.touch(sessionId);
172
+ try {
173
+ const method = req.body?.method || "unknown";
174
+ logger.debug(LogMessages.POST_MESSAGE, endpoint, sessionId.substring(0, SESSION_ID_DISPLAY_LENGTH), method);
175
+ // @transport-downcast — Sessions in this handler are exclusively created with SSE transport
176
+ const transport = session.transport.instance;
177
+ await transport.handlePostMessage(req, res, req.body);
178
+ }
179
+ catch (error) {
180
+ logger.error(LogMessages.POST_ERROR, sessionId, error);
181
+ if (!res.headersSent) {
182
+ res
183
+ .status(HttpStatus.INTERNAL_SERVER_ERROR)
184
+ .json(createJsonRpcError(JsonRpcErrorCode.INTERNAL_ERROR, TransportErrorMessage.INTERNAL_ERROR));
185
+ }
186
+ }
187
+ }
188
+ }
189
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/server/transport/sse/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * SSE Transport Module
3
+ *
4
+ * Legacy HTTP+SSE Transport (deprecated protocol 2024-11-05)
5
+ * Still supported for backwards compatibility with older MCP clients.
6
+ *
7
+ * - **SseTransport** — Custom SSE transport implementation (SDK Transport interface)
8
+ * - **SseRequestHandler** — Session lifecycle and message routing
9
+ *
10
+ * @module server/transport/sse
11
+ */
12
+ export { SseRequestHandler } from "./handler.js";
13
+ export { SseTransport } from "./transport.js";
14
+ export type { FlushableResponse } from "./transport.js";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/transport/sse/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * SSE Transport Module
3
+ *
4
+ * Legacy HTTP+SSE Transport (deprecated protocol 2024-11-05)
5
+ * Still supported for backwards compatibility with older MCP clients.
6
+ *
7
+ * - **SseTransport** — Custom SSE transport implementation (SDK Transport interface)
8
+ * - **SseRequestHandler** — Session lifecycle and message routing
9
+ *
10
+ * @module server/transport/sse
11
+ */
12
+ export { SseRequestHandler } from "./handler.js";
13
+ export { SseTransport } from "./transport.js";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/transport/sse/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * SSE Transport Implementation
3
+ *
4
+ * This is a custom implementation of the deprecated HTTP+SSE transport
5
+ * from MCP protocol version 2024-11-05. It provides backwards compatibility
6
+ * for older MCP clients that don't support the modern Streamable HTTP transport.
7
+ *
8
+ * Protocol Flow:
9
+ * 1. Client connects via GET to SSE endpoint
10
+ * 2. Server sends 'endpoint' event with URL for POSTing messages (includes sessionId)
11
+ * 3. Client POSTs JSON-RPC messages to that URL
12
+ * 4. Server responds via the SSE stream
13
+ *
14
+ * This replaces the deprecated SSEServerTransport from @modelcontextprotocol/sdk
15
+ * with a clean, maintainable implementation.
16
+ *
17
+ * @module server/transport/sse/transport
18
+ */
19
+ import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
20
+ import type { JSONRPCMessage } from "@modelcontextprotocol/sdk/types.js";
21
+ import type { Response, Request } from "express";
22
+ /**
23
+ * Response object that may have a flush method added by middleware.
24
+ * Some Express middleware (like compression) add this method.
25
+ */
26
+ export interface FlushableResponse extends Response {
27
+ flush?: () => void;
28
+ }
29
+ /**
30
+ * Custom SSE Transport for backwards compatibility with MCP 2024-11-05 clients.
31
+ *
32
+ * Implements the Transport interface from the MCP SDK without using
33
+ * the deprecated SSEServerTransport class.
34
+ */
35
+ export declare class SseTransport implements Transport {
36
+ private _sessionId;
37
+ private _res;
38
+ private _messageEndpoint;
39
+ private _started;
40
+ private _closed;
41
+ onclose?: () => void;
42
+ onerror?: (error: Error) => void;
43
+ onmessage?: (message: JSONRPCMessage) => void;
44
+ /**
45
+ * Creates a new SSE Transport
46
+ *
47
+ * @param messageEndpoint - The endpoint path where clients should POST messages
48
+ * (e.g., '/mcp/message' or '/sse/message')
49
+ * @param res - Express Response object for the SSE stream
50
+ */
51
+ constructor(messageEndpoint: string, res: Response);
52
+ /**
53
+ * Get the session ID for this transport
54
+ */
55
+ get sessionId(): string;
56
+ /**
57
+ * Start the SSE transport.
58
+ *
59
+ * Sets up SSE headers and sends the 'endpoint' event with the message URL.
60
+ * This method is idempotent - calling it multiple times has no effect after
61
+ * the first call. This is necessary because mcpServer.connect() calls start()
62
+ * internally, but we need to call it before connect() to send the endpoint event.
63
+ */
64
+ start(): Promise<void>;
65
+ /**
66
+ * Send a JSON-RPC message to the client via SSE
67
+ */
68
+ send(message: JSONRPCMessage): Promise<void>;
69
+ /**
70
+ * Close the transport
71
+ */
72
+ close(): Promise<void>;
73
+ /**
74
+ * Handle an incoming POST message from the client.
75
+ *
76
+ * This should be called by the Express route handler when a POST
77
+ * is received at the message endpoint.
78
+ *
79
+ * @param req - Express Request object
80
+ * @param res - Express Response object for the POST response
81
+ * @param body - Parsed JSON-RPC message body
82
+ */
83
+ handlePostMessage(req: Request, res: Response, body: JSONRPCMessage): Promise<void>;
84
+ /**
85
+ * Send an SSE event to the client
86
+ */
87
+ private _sendSseEvent;
88
+ /**
89
+ * Flushes the response buffer if the response supports it.
90
+ * Some middleware (like compression) add a flush method to the response.
91
+ */
92
+ private _flushResponse;
93
+ }
94
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/server/transport/sse/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMjD;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB;AAUD;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,SAAS;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C;;;;;;OAMG;gBACS,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ;IAMlD;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;;;;OAOG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B5B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;;;;;;;;OASG;IACG,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BzF;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;;OAGG;IACH,OAAO,CAAC,cAAc;CAOvB"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * SSE Transport Implementation
3
+ *
4
+ * This is a custom implementation of the deprecated HTTP+SSE transport
5
+ * from MCP protocol version 2024-11-05. It provides backwards compatibility
6
+ * for older MCP clients that don't support the modern Streamable HTTP transport.
7
+ *
8
+ * Protocol Flow:
9
+ * 1. Client connects via GET to SSE endpoint
10
+ * 2. Server sends 'endpoint' event with URL for POSTing messages (includes sessionId)
11
+ * 3. Client POSTs JSON-RPC messages to that URL
12
+ * 4. Server responds via the SSE stream
13
+ *
14
+ * This replaces the deprecated SSEServerTransport from @modelcontextprotocol/sdk
15
+ * with a clean, maintainable implementation.
16
+ *
17
+ * @module server/transport/sse/transport
18
+ */
19
+ import { randomUUID } from "node:crypto";
20
+ import { HttpStatus, TransportError, TransportErrorMessage } from "../../../errors/index.js";
21
+ import { logger as baseLogger } from "../../../logger/index.js";
22
+ import { TRANSPORT_LOG_COMPONENTS, SSE_EVENTS, SESSION_ID_DISPLAY_LENGTH } from "../constants.js";
23
+ const logger = baseLogger.child({ component: TRANSPORT_LOG_COMPONENTS.SSE });
24
+ /** @internal Log messages for SSE transport */
25
+ const LogMessages = {
26
+ MESSAGE_REJECTED_CLOSED: "Message rejected: transport closed (session=%s)",
27
+ MESSAGE_PROCESSING_ERROR: "Error processing message (session=%s): %s",
28
+ };
29
+ /**
30
+ * Custom SSE Transport for backwards compatibility with MCP 2024-11-05 clients.
31
+ *
32
+ * Implements the Transport interface from the MCP SDK without using
33
+ * the deprecated SSEServerTransport class.
34
+ */
35
+ export class SseTransport {
36
+ _sessionId;
37
+ _res;
38
+ _messageEndpoint;
39
+ _started = false;
40
+ _closed = false;
41
+ onclose;
42
+ onerror;
43
+ onmessage;
44
+ /**
45
+ * Creates a new SSE Transport
46
+ *
47
+ * @param messageEndpoint - The endpoint path where clients should POST messages
48
+ * (e.g., '/mcp/message' or '/sse/message')
49
+ * @param res - Express Response object for the SSE stream
50
+ */
51
+ constructor(messageEndpoint, res) {
52
+ this._sessionId = randomUUID();
53
+ this._messageEndpoint = messageEndpoint;
54
+ this._res = res;
55
+ }
56
+ /**
57
+ * Get the session ID for this transport
58
+ */
59
+ get sessionId() {
60
+ return this._sessionId;
61
+ }
62
+ /**
63
+ * Start the SSE transport.
64
+ *
65
+ * Sets up SSE headers and sends the 'endpoint' event with the message URL.
66
+ * This method is idempotent - calling it multiple times has no effect after
67
+ * the first call. This is necessary because mcpServer.connect() calls start()
68
+ * internally, but we need to call it before connect() to send the endpoint event.
69
+ */
70
+ async start() {
71
+ // Idempotent: if already started, just return silently
72
+ // This is needed because mcpServer.connect() calls start() internally
73
+ if (this._started) {
74
+ return;
75
+ }
76
+ if (this._closed) {
77
+ throw TransportError.closed();
78
+ }
79
+ this._started = true;
80
+ // Set SSE headers
81
+ this._res.setHeader("Content-Type", "text/event-stream");
82
+ this._res.setHeader("Cache-Control", "no-cache, no-transform");
83
+ this._res.setHeader("Connection", "keep-alive");
84
+ this._res.setHeader("X-Accel-Buffering", "no"); // Disable nginx buffering
85
+ this._res.flushHeaders();
86
+ // Send the endpoint event with the message URL
87
+ // This tells the client where to POST messages
88
+ const query = new URLSearchParams({ sessionId: this._sessionId });
89
+ const endpointUrl = `${this._messageEndpoint}?${query.toString()}`;
90
+ this._sendSseEvent(SSE_EVENTS.ENDPOINT, endpointUrl);
91
+ }
92
+ /**
93
+ * Send a JSON-RPC message to the client via SSE
94
+ */
95
+ async send(message) {
96
+ if (this._closed) {
97
+ throw TransportError.closed();
98
+ }
99
+ if (!this._started) {
100
+ throw TransportError.notStarted();
101
+ }
102
+ this._sendSseEvent(SSE_EVENTS.MESSAGE, JSON.stringify(message));
103
+ }
104
+ /**
105
+ * Close the transport
106
+ */
107
+ async close() {
108
+ if (this._closed)
109
+ return;
110
+ this._closed = true;
111
+ // End the SSE stream
112
+ if (!this._res.writableEnded) {
113
+ this._res.end();
114
+ }
115
+ this.onclose?.();
116
+ }
117
+ /**
118
+ * Handle an incoming POST message from the client.
119
+ *
120
+ * This should be called by the Express route handler when a POST
121
+ * is received at the message endpoint.
122
+ *
123
+ * @param req - Express Request object
124
+ * @param res - Express Response object for the POST response
125
+ * @param body - Parsed JSON-RPC message body
126
+ */
127
+ async handlePostMessage(req, res, body) {
128
+ if (this._closed) {
129
+ logger.warn(LogMessages.MESSAGE_REJECTED_CLOSED, this._sessionId.substring(0, SESSION_ID_DISPLAY_LENGTH));
130
+ res.status(HttpStatus.BAD_REQUEST).json({ error: TransportErrorMessage.TRANSPORT_CLOSED });
131
+ return;
132
+ }
133
+ // Notify the MCP server of the incoming message
134
+ try {
135
+ this.onmessage?.(body);
136
+ // For requests (with id), send 202 Accepted - response will come via SSE
137
+ // For notifications (no id), send 204 No Content
138
+ if ("id" in body && body.id !== undefined) {
139
+ res.status(HttpStatus.ACCEPTED).json({ status: "accepted" });
140
+ }
141
+ else {
142
+ res.status(HttpStatus.NO_CONTENT).end();
143
+ }
144
+ }
145
+ catch (error) {
146
+ const err = error instanceof Error ? error : new Error(String(error));
147
+ logger.error(LogMessages.MESSAGE_PROCESSING_ERROR, this._sessionId.substring(0, SESSION_ID_DISPLAY_LENGTH), err.message);
148
+ this.onerror?.(err);
149
+ res.status(HttpStatus.INTERNAL_SERVER_ERROR).json({ error: TransportErrorMessage.INTERNAL_ERROR });
150
+ }
151
+ }
152
+ /**
153
+ * Send an SSE event to the client
154
+ */
155
+ _sendSseEvent(event, data) {
156
+ if (this._res.writableEnded)
157
+ return;
158
+ this._res.write(`event: ${event}\n`);
159
+ this._res.write(`data: ${data}\n\n`);
160
+ // Flush to ensure immediate delivery (some Express middleware add flush)
161
+ this._flushResponse();
162
+ }
163
+ /**
164
+ * Flushes the response buffer if the response supports it.
165
+ * Some middleware (like compression) add a flush method to the response.
166
+ */
167
+ _flushResponse() {
168
+ // @express-api — Compression middleware adds flush() at runtime; not in Express Response type
169
+ const res = this._res;
170
+ if (typeof res.flush === "function") {
171
+ res.flush();
172
+ }
173
+ }
174
+ }
175
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/server/transport/sse/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Stdio Transport
3
+ *
4
+ * Starts a stdio transport for single-client CLI usage.
5
+ * Creates one McpSession, registers it with the SessionManager,
6
+ * and connects it to stdin/stdout.
7
+ *
8
+ * @module server/transport/stdio-transport
9
+ */
10
+ import type { TransportHandle, SessionFactory } from "./types.js";
11
+ import type { SessionManager } from "../session/index.js";
12
+ /**
13
+ * Starts a stdio transport for single-client CLI usage.
14
+ *
15
+ * Creates a single McpSession, registers it with the SessionManager,
16
+ * and connects it to stdin/stdout via the SDK's StdioServerTransport.
17
+ *
18
+ * @param sessionFactory - Factory to create McpSession instances
19
+ * @param sessionManager - Session manager for lifecycle tracking
20
+ * @returns TransportHandle for shutdown and runtime info
21
+ */
22
+ export declare function startStdioTransport(sessionFactory: SessionFactory, sessionManager: SessionManager): Promise<TransportHandle>;
23
+ //# sourceMappingURL=stdio-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-transport.d.ts","sourceRoot":"","sources":["../../../src/server/transport/stdio-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAc1D;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,eAAe,CAAC,CAkC1B"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Stdio Transport
3
+ *
4
+ * Starts a stdio transport for single-client CLI usage.
5
+ * Creates one McpSession, registers it with the SessionManager,
6
+ * and connects it to stdin/stdout.
7
+ *
8
+ * @module server/transport/stdio-transport
9
+ */
10
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
11
+ import { logger as baseLogger } from "../../logger/index.js";
12
+ const logger = baseLogger.child({ component: "StdioTransport" });
13
+ const LogMessages = {
14
+ CONNECTING: "Connecting stdio transport...",
15
+ CONNECTED: "Stdio transport connected",
16
+ };
17
+ // ============================================================================
18
+ // Stdio Transport Function
19
+ // ============================================================================
20
+ /**
21
+ * Starts a stdio transport for single-client CLI usage.
22
+ *
23
+ * Creates a single McpSession, registers it with the SessionManager,
24
+ * and connects it to stdin/stdout via the SDK's StdioServerTransport.
25
+ *
26
+ * @param sessionFactory - Factory to create McpSession instances
27
+ * @param sessionManager - Session manager for lifecycle tracking
28
+ * @returns TransportHandle for shutdown and runtime info
29
+ */
30
+ export async function startStdioTransport(sessionFactory, sessionManager) {
31
+ logger.debug(LogMessages.CONNECTING);
32
+ const startedAt = new Date();
33
+ const session = sessionFactory();
34
+ const transport = new StdioServerTransport();
35
+ const created = sessionManager.create({
36
+ transportType: "stdio",
37
+ transport,
38
+ mcpSession: session,
39
+ });
40
+ if (!created) {
41
+ throw new Error("Failed to create stdio session — session capacity reached");
42
+ }
43
+ await session.sdk.connect(transport);
44
+ logger.debug(LogMessages.CONNECTED);
45
+ return {
46
+ async shutdown() {
47
+ // No transport-level resources to close for stdio.
48
+ // Session cleanup is handled by McpServerInstance.stop().
49
+ },
50
+ info() {
51
+ return {
52
+ state: "running",
53
+ startedAt,
54
+ mode: "stdio",
55
+ };
56
+ },
57
+ };
58
+ }
59
+ //# sourceMappingURL=stdio-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-transport.js","sourceRoot":"","sources":["../../../src/server/transport/stdio-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAIjF,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAEjE,MAAM,WAAW,GAAG;IAClB,UAAU,EAAE,+BAA+B;IAC3C,SAAS,EAAE,2BAA2B;CAC9B,CAAC;AAEX,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,cAA8B,EAC9B,cAA8B;IAE9B,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAErC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,aAAa,EAAE,OAAO;QACtB,SAAS;QACT,UAAU,EAAE,OAAO;KACpB,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO;QACL,KAAK,CAAC,QAAQ;YACZ,mDAAmD;YACnD,0DAA0D;QAC5D,CAAC;QAED,IAAI;YACF,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,SAAS;gBACT,IAAI,EAAE,OAAO;aACd,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Streamable HTTP Transport
3
+ *
4
+ * MCP Streamable HTTP Transport implementation (2025-03-26 specification).
5
+ *
6
+ * @module server/transport/streamable-http
7
+ */
8
+ export { StreamableHttpTransport, type StreamableHttpTransportOptions } from "./transport.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/transport/streamable-http/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,uBAAuB,EAAE,KAAK,8BAA8B,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Streamable HTTP Transport
3
+ *
4
+ * MCP Streamable HTTP Transport implementation (2025-03-26 specification).
5
+ *
6
+ * @module server/transport/streamable-http
7
+ */
8
+ export { StreamableHttpTransport } from "./transport.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/transport/streamable-http/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,uBAAuB,EAAuC,MAAM,gBAAgB,CAAC"}