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,118 @@
1
+ /**
2
+ * Streamable HTTP Transport
3
+ *
4
+ * Facade that delegates HTTP requests to the appropriate strategy handler
5
+ * based on the configured mode (stateful or stateless).
6
+ *
7
+ * Architecture:
8
+ * Express Route → StreamableHttpTransport → Strategy Handler → SDK Transport → McpServer
9
+ *
10
+ * The SDK transport handles all MCP protocol concerns:
11
+ * - JSON-RPC 2.0 parsing and validation
12
+ * - Content-Type and Accept header validation
13
+ * - Session ID management (header setting/checking)
14
+ * - SSE stream setup for server-to-client notifications
15
+ * - Session termination
16
+ *
17
+ * This transport manages:
18
+ * - Strategy selection (stateful vs stateless)
19
+ * - HTTP method routing (POST, GET, DELETE)
20
+ * - Error responses for unsupported methods
21
+ *
22
+ * @see https://modelcontextprotocol.io/specification/2025-03-26/basic/transports
23
+ * @module server/transport/streamable-http/transport
24
+ */
25
+ import { HttpStatus, TransportErrorMessage, JsonRpcErrorCode, createJsonRpcError } from "../../../errors/index.js";
26
+ import { logger as baseLogger } from "../../../logger/index.js";
27
+ import { TRANSPORT_LOG_COMPONENTS, SESSION_ID_DISPLAY_LENGTH } from "../constants.js";
28
+ import { StatefulHandler } from "./stateful-handler.js";
29
+ import { StatelessHandler } from "./stateless-handler.js";
30
+ const logger = baseLogger.child({
31
+ component: TRANSPORT_LOG_COMPONENTS.STREAMABLE_HTTP,
32
+ });
33
+ // ============================================================================
34
+ // Shared Utilities
35
+ // ============================================================================
36
+ /**
37
+ * Sends a JSON-RPC error response if headers haven't been sent.
38
+ */
39
+ export function sendError(res, status, code, message) {
40
+ if (!res.headersSent) {
41
+ res.status(status).json(createJsonRpcError(code, message));
42
+ }
43
+ }
44
+ /**
45
+ * Shortens a session ID for log display.
46
+ */
47
+ export function shortId(sessionId) {
48
+ return sessionId.substring(0, SESSION_ID_DISPLAY_LENGTH);
49
+ }
50
+ /** @internal Log messages for transport router */
51
+ const LogMessages = {
52
+ METHOD_NOT_ALLOWED: "%s /mcp rejected: method not allowed",
53
+ UNHANDLED_ERROR: "Unhandled error in request handler: %s",
54
+ };
55
+ // ============================================================================
56
+ // Transport Facade
57
+ // ============================================================================
58
+ /**
59
+ * Routes HTTP requests to the appropriate strategy handler.
60
+ *
61
+ * In stateful mode (default): delegates to {@link StatefulHandler}
62
+ * In stateless mode: delegates to {@link StatelessHandler}
63
+ *
64
+ * All MCP protocol handling is delegated through the handler chain
65
+ * to the SDK's StreamableHTTPServerTransport.
66
+ */
67
+ export class StreamableHttpTransport {
68
+ handler;
69
+ sessionManager;
70
+ constructor(sessionFactory, sessionManager, options = {}) {
71
+ this.sessionManager = sessionManager;
72
+ const enableJsonResponse = options.enableJsonResponse ?? true;
73
+ this.handler = options.stateless
74
+ ? new StatelessHandler(sessionFactory, enableJsonResponse)
75
+ : new StatefulHandler(sessionFactory, sessionManager, enableJsonResponse, options.eventStore);
76
+ }
77
+ // ==========================================================================
78
+ // Public API
79
+ // ==========================================================================
80
+ /**
81
+ * Handle an incoming HTTP request by delegating to the appropriate
82
+ * strategy handler.
83
+ *
84
+ * This is the single entry point called by Express route handlers.
85
+ * Security middleware (DNS rebinding, rate limiting, protocol version)
86
+ * runs BEFORE this method is called.
87
+ */
88
+ async handleRequest(req, res) {
89
+ try {
90
+ switch (req.method) {
91
+ case "POST":
92
+ await this.handler.handlePost(req, res);
93
+ break;
94
+ case "GET":
95
+ await this.handler.handleGet(req, res);
96
+ break;
97
+ case "DELETE":
98
+ await this.handler.handleDelete(req, res);
99
+ break;
100
+ default:
101
+ logger.warn(LogMessages.METHOD_NOT_ALLOWED, req.method);
102
+ sendError(res, HttpStatus.METHOD_NOT_ALLOWED, JsonRpcErrorCode.METHOD_NOT_FOUND, `Method ${req.method} not allowed`);
103
+ }
104
+ }
105
+ catch (error) {
106
+ logger.error(LogMessages.UNHANDLED_ERROR, error);
107
+ sendError(res, HttpStatus.INTERNAL_SERVER_ERROR, JsonRpcErrorCode.INTERNAL_ERROR, TransportErrorMessage.INTERNAL_ERROR);
108
+ }
109
+ }
110
+ /**
111
+ * Number of active stateful sessions.
112
+ * Returns 0 in stateless mode (no session tracking).
113
+ */
114
+ get activeSessionCount() {
115
+ return this.sessionManager.size;
116
+ }
117
+ }
118
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/server/transport/streamable-http/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnH,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;IAC9B,SAAS,EAAE,wBAAwB,CAAC,eAAe;CACpD,CAAC,CAAC;AAmBH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAa,EAAE,MAAc,EAAE,IAAY,EAAE,OAAe;IACpF,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,SAAiB;IACvC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;AAC3D,CAAC;AAED,kDAAkD;AAClD,MAAM,WAAW,GAAG;IAClB,kBAAkB,EAAE,sCAAsC;IAC1D,eAAe,EAAE,wCAAwC;CACjD,CAAC;AA0CX,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,OAAO,uBAAuB;IACjB,OAAO,CAA0B;IACjC,cAAc,CAAiB;IAEhD,YACE,cAA8B,EAC9B,cAA8B,EAC9B,UAA0C,EAAE;QAE5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC;QAE9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS;YAC9B,CAAC,CAAC,IAAI,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC;YAC1D,CAAC,CAAC,IAAI,eAAe,CAAC,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAClG,CAAC;IAED,6EAA6E;IAC7E,aAAa;IACb,6EAA6E;IAE7E;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CAAC,GAAY,EAAE,GAAa;QAC7C,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;gBACnB,KAAK,MAAM;oBACT,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBACxC,MAAM;gBACR,KAAK,KAAK;oBACR,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBACvC,MAAM;gBACR,KAAK,QAAQ;oBACX,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC1C,MAAM;gBACR;oBACE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;oBACxD,SAAS,CACP,GAAG,EACH,UAAU,CAAC,kBAAkB,EAC7B,gBAAgB,CAAC,gBAAgB,EACjC,UAAU,GAAG,CAAC,MAAM,cAAc,CACnC,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YACjD,SAAS,CACP,GAAG,EACH,UAAU,CAAC,qBAAqB,EAChC,gBAAgB,CAAC,cAAc,EAC/B,qBAAqB,CAAC,cAAc,CACrC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAClC,CAAC;CACF"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Transport Context Types
3
+ *
4
+ * Transport-layer concerns for MCP sessions including connection details,
5
+ * transport type discrimination, and heartbeat tracking.
6
+ *
7
+ * @module server/transport/transport-context
8
+ */
9
+ import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
10
+ /**
11
+ * Supported transport types in the framework.
12
+ */
13
+ export type TransportType = "http" | "https" | "sse" | "stdio";
14
+ /**
15
+ * Transport that optionally supports heartbeat (keep-alive).
16
+ *
17
+ * Some transports (like StreamableHTTPServerTransport) support sendHeartbeat
18
+ * but it's not in the public SDK types.
19
+ */
20
+ export interface HeartbeatCapableTransport extends Transport {
21
+ /**
22
+ * Sends a heartbeat to check if the connection is still alive.
23
+ * @returns true if heartbeat was sent successfully
24
+ */
25
+ sendHeartbeat: () => boolean;
26
+ }
27
+ /**
28
+ * Heartbeat tracking state.
29
+ *
30
+ * Immutable — create new objects via spread to update.
31
+ */
32
+ export interface HeartbeatState {
33
+ /** Number of consecutive missed heartbeats */
34
+ readonly missedCount: number;
35
+ /** Last successful heartbeat timestamp */
36
+ readonly lastSuccessAt?: Date;
37
+ /** Whether this transport supports heartbeats */
38
+ readonly supportsHeartbeat: boolean;
39
+ }
40
+ /**
41
+ * Transport-specific context containing connection details.
42
+ *
43
+ * Encapsulates all transport-layer concerns:
44
+ * - The actual MCP transport instance
45
+ * - Transport type for runtime discrimination
46
+ * - Heartbeat tracking for connection health
47
+ */
48
+ export interface TransportContext {
49
+ /** Discriminator for transport type */
50
+ readonly type: TransportType;
51
+ /** MCP SDK transport instance */
52
+ readonly instance: Transport;
53
+ /** Heartbeat tracking (only for HTTP-based transports) */
54
+ heartbeat: HeartbeatState;
55
+ }
56
+ /**
57
+ * Type guard for heartbeat-capable transports.
58
+ *
59
+ * Checks if the transport has a `sendHeartbeat` method.
60
+ * Used to safely narrow `Transport` without unchecked casts.
61
+ */
62
+ export declare function isHeartbeatCapable(transport: Transport): transport is HeartbeatCapableTransport;
63
+ /**
64
+ * Factory to create transport context from transport instance.
65
+ */
66
+ export declare function createTransportContext(type: TransportType, transport: Transport): TransportContext;
67
+ //# sourceMappingURL=transport-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-context.d.ts","sourceRoot":"","sources":["../../../src/server/transport/transport-context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAM/E;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;AAM/D;;;;;GAKG;AACH,MAAM,WAAW,yBAA0B,SAAQ,SAAS;IAC1D;;;OAGG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,0CAA0C;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAE9B,iDAAiD;IACjD,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;CACrC;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAE7B,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE7B,0DAA0D;IAC1D,SAAS,EAAE,cAAc,CAAC;CAC3B;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,IAAI,yBAAyB,CAG/F;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,CASlG"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Transport Context Types
3
+ *
4
+ * Transport-layer concerns for MCP sessions including connection details,
5
+ * transport type discrimination, and heartbeat tracking.
6
+ *
7
+ * @module server/transport/transport-context
8
+ */
9
+ // ============================================================================
10
+ // Type Guard
11
+ // ============================================================================
12
+ /**
13
+ * Type guard for heartbeat-capable transports.
14
+ *
15
+ * Checks if the transport has a `sendHeartbeat` method.
16
+ * Used to safely narrow `Transport` without unchecked casts.
17
+ */
18
+ export function isHeartbeatCapable(transport) {
19
+ // @type-guard — Standard TS pattern: cast to target type for property access within type predicate
20
+ return typeof transport.sendHeartbeat === "function";
21
+ }
22
+ // ============================================================================
23
+ // Factory
24
+ // ============================================================================
25
+ /**
26
+ * Factory to create transport context from transport instance.
27
+ */
28
+ export function createTransportContext(type, transport) {
29
+ return {
30
+ type,
31
+ instance: transport,
32
+ heartbeat: {
33
+ missedCount: 0,
34
+ supportsHeartbeat: isHeartbeatCapable(transport),
35
+ },
36
+ };
37
+ }
38
+ //# sourceMappingURL=transport-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-context.js","sourceRoot":"","sources":["../../../src/server/transport/transport-context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsEH,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAoB;IACrD,mGAAmG;IACnG,OAAO,OAAQ,SAAuC,CAAC,aAAa,KAAK,UAAU,CAAC;AACtF,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAmB,EAAE,SAAoB;IAC9E,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE;YACT,WAAW,EAAE,CAAC;YACd,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAAC;SACjD;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Transport Types
3
+ *
4
+ * Cross-module type definitions for the transport layer.
5
+ * Only types used by multiple transport sub-modules are defined here.
6
+ * Internal types are co-located with their consuming modules.
7
+ *
8
+ * @module server/transport/types
9
+ */
10
+ import type { McpSession } from "../session/index.js";
11
+ export type { TransportType, HeartbeatCapableTransport, HeartbeatState, TransportContext, } from "./transport-context.js";
12
+ export { createTransportContext, isHeartbeatCapable } from "./transport-context.js";
13
+ /**
14
+ * Transport state values for lifecycle tracking.
15
+ */
16
+ export type TransportState = "created" | "starting" | "running" | "stopping" | "stopped" | "error";
17
+ /**
18
+ * Factory function type for creating McpSession instances.
19
+ *
20
+ * Used by the transport layer where each connected client
21
+ * gets an McpSession with protocol handlers and SDK-native
22
+ * cancellation/progress support.
23
+ *
24
+ * @returns A new McpSession instance for the client
25
+ */
26
+ export type SessionFactory = () => McpSession;
27
+ /**
28
+ * Lightweight handle returned by transport start functions.
29
+ *
30
+ * Replaces the former TransportManager class hierarchy with a simple
31
+ * functional interface: start returns a handle, call shutdown to stop.
32
+ */
33
+ export interface TransportHandle {
34
+ /** Graceful shutdown of the transport */
35
+ shutdown(): Promise<void>;
36
+ /** Get runtime transport information */
37
+ info(): TransportInfo;
38
+ }
39
+ /**
40
+ * Runtime information about the active transport.
41
+ */
42
+ export interface TransportInfo {
43
+ /** Current transport state */
44
+ readonly state: TransportState;
45
+ /** When the transport was started */
46
+ readonly startedAt?: Date | undefined;
47
+ /** Transport mode identifier (e.g., 'stdio', 'http', 'https') */
48
+ readonly mode?: string | undefined;
49
+ /** Host address (HTTP/HTTPS only) */
50
+ readonly host?: string | undefined;
51
+ /** Port number (HTTP/HTTPS only) */
52
+ readonly port?: number | undefined;
53
+ /** Full URL (HTTP/HTTPS only) */
54
+ readonly url?: string | undefined;
55
+ }
56
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/transport/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,YAAY,EACV,aAAa,EACb,yBAAyB,EACzB,cAAc,EACd,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAMpF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAMnG;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC;AAM9C;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,wCAAwC;IACxC,IAAI,IAAI,aAAa,CAAC;CACvB;AAMD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,qCAAqC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,qCAAqC;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,oCAAoC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,iCAAiC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Transport Types
3
+ *
4
+ * Cross-module type definitions for the transport layer.
5
+ * Only types used by multiple transport sub-modules are defined here.
6
+ * Internal types are co-located with their consuming modules.
7
+ *
8
+ * @module server/transport/types
9
+ */
10
+ export { createTransportContext, isHeartbeatCapable } from "./transport-context.js";
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/transport/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,248 @@
1
+ /**
2
+ * Transport Configuration Types
3
+ *
4
+ * User-facing transport configuration types for the MCP server.
5
+ * These types define how consumers configure transport mode, TLS, HTTP options, etc.
6
+ *
7
+ * @module server/transport-options
8
+ */
9
+ import type { EventStore } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
10
+ /**
11
+ * Transport modes supported by the MCP framework.
12
+ *
13
+ * - `stdio` — Single-client CLI mode
14
+ * - `http` — Multi-client HTTP mode
15
+ * - `https` — Multi-client HTTPS mode with TLS
16
+ */
17
+ export type TransportMode = "stdio" | "http" | "https";
18
+ /**
19
+ * TLS configuration for HTTPS transport.
20
+ *
21
+ * Certificate files are read from the filesystem at server startup.
22
+ * Required when transport mode is 'https'.
23
+ */
24
+ export interface TlsConfig {
25
+ /** Path to the TLS certificate file (PEM format) */
26
+ readonly certPath: string;
27
+ /** Path to the TLS private key file (PEM format) */
28
+ readonly keyPath: string;
29
+ /** Optional path to the CA certificate file (PEM format) */
30
+ readonly caPath?: string;
31
+ }
32
+ /**
33
+ * Shared HTTP/HTTPS transport options.
34
+ *
35
+ * Contains all configuration common to both `http` and `https` modes.
36
+ * Used as the base for the discriminated union members.
37
+ */
38
+ export interface BaseHttpTransportOptions {
39
+ /** Port to listen on (default: 8000 or MCP_PORT env) */
40
+ port?: number;
41
+ /** Host to bind to (default: '127.0.0.1' or MCP_BIND_HOST env) */
42
+ host?: string;
43
+ /** Enable legacy SSE transport for backwards compatibility */
44
+ legacySseEnabled?: boolean;
45
+ /** Rate limiting: max requests per window */
46
+ rateLimitMax?: number;
47
+ /** Rate limiting: window duration in ms */
48
+ rateLimitWindowMs?: number;
49
+ /**
50
+ * Trust proxy setting for Express.
51
+ *
52
+ * Required when running behind a reverse proxy (nginx, Traefik, cloud LB)
53
+ * to correctly resolve client IPs, protocol, and host from proxy headers
54
+ * (`X-Forwarded-For`, `X-Forwarded-Proto`, `X-Forwarded-Host`).
55
+ *
56
+ * Values:
57
+ * - Hop count (`'1'`, `'2'`) — Trust N hops from the front-facing proxy
58
+ * - Express keyword (`'loopback'`, `'linklocal'`, `'uniquelocal'`)
59
+ * - IP/CIDR (`'10.0.0.1'`, `'10.0.0.0/8'`)
60
+ * - DNS hostname (`'proxy.example.com'`) — resolved at startup
61
+ * - Comma-separated list (`'loopback, 10.0.0.1'`)
62
+ *
63
+ * Can also be configured via `MCP_TRUST_PROXY` env var or config file.
64
+ * Omit to disable trust proxy.
65
+ *
66
+ * @see https://expressjs.com/en/guide/behind-proxies.html
67
+ */
68
+ trustProxy?: string;
69
+ /**
70
+ * Operate in stateless mode (no session IDs).
71
+ *
72
+ * When enabled, each request gets a fresh McpSession and SDK transport.
73
+ * No Mcp-Session-Id headers are set. Per MCP specification, stateless
74
+ * servers do not track individual client sessions.
75
+ *
76
+ * In stateless mode, GET and DELETE return 405 Method Not Allowed.
77
+ *
78
+ * Use cases:
79
+ * - Simple tool servers that don't need per-client state
80
+ * - Serverless/edge deployments where session persistence is impractical
81
+ * - Horizontal scaling behind round-robin load balancers
82
+ *
83
+ * @default false
84
+ */
85
+ stateless?: boolean;
86
+ /**
87
+ * Prefer JSON responses over SSE streams for simple request-response.
88
+ *
89
+ * When enabled, the SDK returns `application/json` for non-streaming
90
+ * responses (e.g. tools/list, resources/list) instead of wrapping them
91
+ * in a `text/event-stream` SSE envelope.
92
+ *
93
+ * The MCP specification recommends: "If the server is only sending one
94
+ * response with no notifications, it SHOULD prefer application/json."
95
+ *
96
+ * Streaming responses (progress, notifications) always use SSE regardless.
97
+ *
98
+ * Can also be configured via `MCP_JSON_RESPONSE` env var or config file.
99
+ *
100
+ * @default true (spec-compliant JSON responses)
101
+ */
102
+ enableJsonResponse?: boolean;
103
+ /**
104
+ * Event store for stream resumability.
105
+ *
106
+ * When provided, the SDK transport stores events and supports
107
+ * client reconnection via the `Last-Event-ID` header. Only meaningful
108
+ * in stateful mode — stateless requests have no persistent streams.
109
+ *
110
+ * The SDK provides `InMemoryEventStore` as a reference implementation.
111
+ * For production horizontal scaling, implement the `EventStore` interface
112
+ * with Redis, PostgreSQL, or another shared backend.
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * import { InMemoryEventStore } from '@modelcontextprotocol/sdk/examples/shared/inMemoryEventStore.js';
117
+ *
118
+ * createServer({
119
+ * name: 'my-server',
120
+ * version: '1.0.0',
121
+ * transport: { mode: 'http', eventStore: new InMemoryEventStore() },
122
+ * });
123
+ * ```
124
+ */
125
+ eventStore?: EventStore;
126
+ /**
127
+ * CORS allowed origins.
128
+ *
129
+ * When set, CORS middleware is mounted globally and allows requests
130
+ * from the listed origins. When omitted, CORS is disabled.
131
+ *
132
+ * Use `['*']` to allow all origins (not recommended for production).
133
+ *
134
+ * Can also be configured via `MCP_CORS_ORIGIN` env var (comma-separated)
135
+ * or `[security] cors_origin` in the config file.
136
+ *
137
+ * @example ['https://app.example.com', 'https://admin.example.com']
138
+ */
139
+ corsOrigin?: string[];
140
+ /**
141
+ * Allow credentials in CORS requests (cookies, auth headers).
142
+ *
143
+ * Only effective when `corsOrigin` is set.
144
+ * Cannot be used with `corsOrigin: ['*']`.
145
+ *
146
+ * Can also be configured via `MCP_CORS_CREDENTIALS` env var.
147
+ *
148
+ * @default false
149
+ */
150
+ corsCredentials?: boolean;
151
+ /**
152
+ * Enable HTTP Strict Transport Security (HSTS) header.
153
+ *
154
+ * When true, Helmet sets `Strict-Transport-Security` with `max-age=15552000`
155
+ * (180 days) and `includeSubDomains`. Only enable when serving over HTTPS.
156
+ *
157
+ * Can also be configured via `MCP_HELMET_HSTS` env var.
158
+ *
159
+ * @default false
160
+ */
161
+ helmetHsts?: boolean;
162
+ /**
163
+ * Content Security Policy configuration.
164
+ *
165
+ * - Omit: Helmet default CSP applies
166
+ * - `'false'`: Disable CSP entirely
167
+ * - Custom string: CSP directives (e.g. `"default-src 'self'; script-src 'none'"`)
168
+ *
169
+ * Can also be configured via `MCP_HELMET_CSP` env var.
170
+ */
171
+ helmetCsp?: string;
172
+ /**
173
+ * X-Frame-Options header value.
174
+ *
175
+ * - `'DENY'` — Never allow framing (most secure)
176
+ * - `'SAMEORIGIN'` — Allow from same origin
177
+ * - `'false'` — Disable X-Frame-Options header
178
+ *
179
+ * Can also be configured via `MCP_HELMET_FRAME_OPTIONS` env var.
180
+ *
181
+ * @default 'DENY'
182
+ */
183
+ helmetFrameOptions?: "DENY" | "SAMEORIGIN" | "false";
184
+ }
185
+ /**
186
+ * Stdio transport — single-client CLI mode.
187
+ *
188
+ * No HTTP options are available. Uses stdin/stdout for MCP protocol data.
189
+ */
190
+ export interface StdioTransportOptions {
191
+ mode: "stdio";
192
+ }
193
+ /**
194
+ * HTTP transport — multi-client mode without TLS.
195
+ *
196
+ * Use behind a reverse proxy that handles TLS termination,
197
+ * or for local development.
198
+ */
199
+ export interface HttpTransportOptions extends BaseHttpTransportOptions {
200
+ mode: "http";
201
+ }
202
+ /**
203
+ * HTTPS transport — multi-client mode with TLS.
204
+ *
205
+ * Requires TLS certificate configuration. Use for direct TLS termination
206
+ * without a reverse proxy.
207
+ */
208
+ export interface HttpsTransportOptions extends BaseHttpTransportOptions {
209
+ mode: "https";
210
+ /**
211
+ * TLS configuration (required for HTTPS mode).
212
+ *
213
+ * Can also be configured via environment variables:
214
+ * - MCP_TLS_CERT_PATH
215
+ * - MCP_TLS_KEY_PATH
216
+ * - MCP_TLS_CA_PATH (optional)
217
+ */
218
+ tls: TlsConfig;
219
+ }
220
+ /**
221
+ * Transport configuration — discriminated union by `mode`.
222
+ *
223
+ * TypeScript narrows the available options based on the selected mode:
224
+ * - `{ mode: 'stdio' }` — no additional options
225
+ * - `{ mode: 'http', port: 8000, ... }` — flat HTTP options
226
+ * - `{ mode: 'https', port: 8443, tls: { ... }, ... }` — flat HTTPS options with required TLS
227
+ *
228
+ * @example
229
+ * ```typescript
230
+ * // Stdio
231
+ * transport: { mode: 'stdio' }
232
+ *
233
+ * // HTTP
234
+ * transport: { mode: 'http', port: 8000, host: '0.0.0.0' }
235
+ *
236
+ * // HTTPS
237
+ * transport: { mode: 'https', port: 8443, tls: { certPath: '/certs/cert.pem', keyPath: '/certs/key.pem' } }
238
+ * ```
239
+ */
240
+ export type TransportOptions = StdioTransportOptions | HttpTransportOptions | HttpsTransportOptions;
241
+ /**
242
+ * Type guard: checks whether the transport is an HTTP-based mode (http or https).
243
+ *
244
+ * After this guard, TypeScript narrows to `HttpTransportOptions | HttpsTransportOptions`,
245
+ * allowing direct access to `port`, `host`, `stateless`, etc.
246
+ */
247
+ export declare function isHttpTransport(transport: TransportOptions): transport is HttpTransportOptions | HttpsTransportOptions;
248
+ //# sourceMappingURL=transport-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-options.d.ts","sourceRoot":"","sources":["../../src/server/transport-options.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAMrF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAIxB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAI1B;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;CACtD;AAID;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,wBAAwB;IACpE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAsB,SAAQ,wBAAwB;IACrE,IAAI,EAAE,OAAO,CAAC;IAEd;;;;;;;OAOG;IACH,GAAG,EAAE,SAAS,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAEpG;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,gBAAgB,GAC1B,SAAS,IAAI,oBAAoB,GAAG,qBAAqB,CAE3D"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Transport Configuration Types
3
+ *
4
+ * User-facing transport configuration types for the MCP server.
5
+ * These types define how consumers configure transport mode, TLS, HTTP options, etc.
6
+ *
7
+ * @module server/transport-options
8
+ */
9
+ /**
10
+ * Type guard: checks whether the transport is an HTTP-based mode (http or https).
11
+ *
12
+ * After this guard, TypeScript narrows to `HttpTransportOptions | HttpsTransportOptions`,
13
+ * allowing direct access to `port`, `host`, `stateless`, etc.
14
+ */
15
+ export function isHttpTransport(transport) {
16
+ return transport.mode === "http" || transport.mode === "https";
17
+ }
18
+ //# sourceMappingURL=transport-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-options.js","sourceRoot":"","sources":["../../src/server/transport-options.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0QH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,SAA2B;IAE3B,OAAO,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC;AACjE,CAAC"}