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,67 @@
1
+ /**
2
+ * HTTP/HTTPS Server Creation
3
+ *
4
+ * Factory functions for creating HTTP and HTTPS servers from
5
+ * a configured Express application.
6
+ *
7
+ * The server creation is separated from app configuration to support
8
+ * three transport modes:
9
+ * - `startHttpServer()` — Plain HTTP (development, behind reverse proxy)
10
+ * - `startHttpsServer()` — HTTPS with TLS (direct TLS termination)
11
+ *
12
+ * TLS credentials are read from the filesystem using paths configured
13
+ * via environment variables or programmatic options.
14
+ *
15
+ * @module server/http/http-server
16
+ */
17
+ import { type Server } from "node:http";
18
+ import type { SecureContextOptions } from "node:tls";
19
+ import type { Application } from "express";
20
+ import type { TlsConfig } from "../server-options.js";
21
+ /**
22
+ * HTTP Server Configuration Options.
23
+ */
24
+ export interface HttpServerOptions {
25
+ /** Port to listen on (default: from MCP_PORT env or 8000) */
26
+ readonly port?: number | undefined;
27
+ /** Host to bind to (default: from MCP_BIND_HOST env or '127.0.0.1') */
28
+ readonly bindHost?: string | undefined;
29
+ }
30
+ /**
31
+ * HTTPS Server Configuration Options.
32
+ */
33
+ export interface HttpsServerOptions extends HttpServerOptions {
34
+ /** TLS certificate configuration */
35
+ readonly tls: TlsConfig;
36
+ }
37
+ /**
38
+ * Reads TLS credentials from the filesystem.
39
+ *
40
+ * @param tls - TLS configuration with file paths
41
+ * @returns Node.js SecureContextOptions for https.createServer
42
+ * @throws TransportError if files exceed size limit or cannot be read
43
+ */
44
+ export declare function readTlsCredentials(tls: TlsConfig): SecureContextOptions;
45
+ /**
46
+ * Creates and starts a plain HTTP server.
47
+ *
48
+ * Resolves after the server is listening and ready to accept connections.
49
+ *
50
+ * @param app - Configured Express application
51
+ * @param options - Server configuration (defaults to environment variables)
52
+ * @returns Running HTTP server instance
53
+ */
54
+ export declare function startHttpServer(app: Application, options?: HttpServerOptions): Promise<Server>;
55
+ /**
56
+ * Creates and starts an HTTPS server with TLS.
57
+ *
58
+ * Reads TLS credentials from the filesystem at startup.
59
+ * Resolves after the server is listening and ready to accept connections.
60
+ * Certificate rotation requires server restart.
61
+ *
62
+ * @param app - Configured Express application
63
+ * @param options - Server configuration with TLS options
64
+ * @returns Running HTTPS server instance
65
+ */
66
+ export declare function startHttpsServer(app: Application, options: HttpsServerOptions): Promise<Server>;
67
+ //# sourceMappingURL=http-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../../src/server/http/http-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAoC,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAK3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,oCAAoC;IACpC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAsDD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,GAAG,oBAAoB,CAavE;AAwBD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBlG;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB/F"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * HTTP/HTTPS Server Creation
3
+ *
4
+ * Factory functions for creating HTTP and HTTPS servers from
5
+ * a configured Express application.
6
+ *
7
+ * The server creation is separated from app configuration to support
8
+ * three transport modes:
9
+ * - `startHttpServer()` — Plain HTTP (development, behind reverse proxy)
10
+ * - `startHttpsServer()` — HTTPS with TLS (direct TLS termination)
11
+ *
12
+ * TLS credentials are read from the filesystem using paths configured
13
+ * via environment variables or programmatic options.
14
+ *
15
+ * @module server/http/http-server
16
+ */
17
+ import { createServer as createHttpServer } from "node:http";
18
+ import { createServer as createHttpsServer } from "node:https";
19
+ import { readFileSync, statSync } from "node:fs";
20
+ import { logger as baseLogger } from "../../logger/index.js";
21
+ import { TRANSPORT_LOG_COMPONENTS } from "../transport/constants.js";
22
+ import { getFrameworkConfig } from "../../config/index.js";
23
+ import { TransportError } from "../../errors/index.js";
24
+ const logger = baseLogger.child({
25
+ component: TRANSPORT_LOG_COMPONENTS.HTTP_SERVER,
26
+ });
27
+ /** @internal Log messages for HTTP/HTTPS server lifecycle */
28
+ const LogMessages = {
29
+ TLS_READING_CREDENTIALS: "Reading TLS credentials: cert=%s, key=%s, ca=%s",
30
+ HTTP_LISTENING: "HTTP server listening on http://%s:%d",
31
+ HTTPS_LISTENING: "HTTPS server listening on https://%s:%d",
32
+ PORT_IN_USE: "Port %s is already in use — server cannot start",
33
+ PORT_REQUIRES_PRIVILEGES: "Binding to %s requires elevated privileges",
34
+ SERVER_ERROR: "Unexpected server error: %s",
35
+ };
36
+ /** Maximum allowed TLS file size (1 MB) — prevents accidental reads of large files */
37
+ const MAX_TLS_FILE_SIZE = 1024 * 1024;
38
+ // ── HTTP Timeout Defaults ─────────────────────────────────────────────────
39
+ // Industry-standard values to prevent resource exhaustion (Slowloris, idle connections).
40
+ // headersTimeout must be > requestTimeout per Node.js docs.
41
+ /** Max time for the entire request (30s) */
42
+ const HTTP_REQUEST_TIMEOUT = 30_000;
43
+ /** Max time for headers to arrive (40s, must exceed requestTimeout) */
44
+ const HTTP_HEADERS_TIMEOUT = 40_000;
45
+ /** Idle keep-alive timeout (65s, exceeds common LB thresholds like ALB 60s) */
46
+ const HTTP_KEEP_ALIVE_TIMEOUT = 65_000;
47
+ // ============================================================================
48
+ // TLS Credential Reading
49
+ // ============================================================================
50
+ /**
51
+ * Reads a single TLS file with size validation.
52
+ *
53
+ * @param filePath - Path to the TLS file (cert, key, or CA)
54
+ * @returns File contents as UTF-8 string
55
+ * @throws TransportError if file exceeds MAX_TLS_FILE_SIZE
56
+ */
57
+ function readTlsFile(filePath) {
58
+ const { size } = statSync(filePath);
59
+ if (size === 0) {
60
+ throw new TransportError(`TLS file is empty (0 bytes): ${filePath}`);
61
+ }
62
+ if (size > MAX_TLS_FILE_SIZE) {
63
+ throw new TransportError(`TLS file exceeds maximum allowed size of ${MAX_TLS_FILE_SIZE} bytes: ${filePath} (${size} bytes)`);
64
+ }
65
+ return readFileSync(filePath, "utf-8");
66
+ }
67
+ /**
68
+ * Reads TLS credentials from the filesystem.
69
+ *
70
+ * @param tls - TLS configuration with file paths
71
+ * @returns Node.js SecureContextOptions for https.createServer
72
+ * @throws TransportError if files exceed size limit or cannot be read
73
+ */
74
+ export function readTlsCredentials(tls) {
75
+ logger.debug(LogMessages.TLS_READING_CREDENTIALS, tls.certPath, tls.keyPath, tls.caPath ?? "none");
76
+ const credentials = {
77
+ cert: readTlsFile(tls.certPath),
78
+ key: readTlsFile(tls.keyPath),
79
+ };
80
+ if (tls.caPath) {
81
+ credentials.ca = readTlsFile(tls.caPath);
82
+ }
83
+ return credentials;
84
+ }
85
+ // ============================================================================
86
+ // Server Defaults
87
+ // ============================================================================
88
+ /**
89
+ * Resolves server options with framework environment defaults.
90
+ */
91
+ function resolveOptions(options = {}) {
92
+ const frameworkConfig = getFrameworkConfig();
93
+ return {
94
+ port: options.port ?? frameworkConfig.MCP_PORT,
95
+ bindHost: options.bindHost ?? frameworkConfig.MCP_BIND_HOST,
96
+ };
97
+ }
98
+ // ============================================================================
99
+ // HTTP Server
100
+ // ============================================================================
101
+ /**
102
+ * Creates and starts a plain HTTP server.
103
+ *
104
+ * Resolves after the server is listening and ready to accept connections.
105
+ *
106
+ * @param app - Configured Express application
107
+ * @param options - Server configuration (defaults to environment variables)
108
+ * @returns Running HTTP server instance
109
+ */
110
+ export function startHttpServer(app, options = {}) {
111
+ const { port, bindHost } = resolveOptions(options);
112
+ return new Promise((resolve, reject) => {
113
+ const server = createHttpServer(app);
114
+ server.requestTimeout = HTTP_REQUEST_TIMEOUT;
115
+ server.headersTimeout = HTTP_HEADERS_TIMEOUT;
116
+ server.keepAliveTimeout = HTTP_KEEP_ALIVE_TIMEOUT;
117
+ server.on("error", (error) => {
118
+ reject(handleServerError(error, port, bindHost));
119
+ });
120
+ server.listen(port, bindHost, () => {
121
+ // @node-api — server.address() returns string | AddressInfo | null; inside listen() callback it is always AddressInfo
122
+ const addr = server.address();
123
+ logger.info(LogMessages.HTTP_LISTENING, addr.address, addr.port);
124
+ resolve(server);
125
+ });
126
+ });
127
+ }
128
+ // ============================================================================
129
+ // HTTPS Server
130
+ // ============================================================================
131
+ /**
132
+ * Creates and starts an HTTPS server with TLS.
133
+ *
134
+ * Reads TLS credentials from the filesystem at startup.
135
+ * Resolves after the server is listening and ready to accept connections.
136
+ * Certificate rotation requires server restart.
137
+ *
138
+ * @param app - Configured Express application
139
+ * @param options - Server configuration with TLS options
140
+ * @returns Running HTTPS server instance
141
+ */
142
+ export function startHttpsServer(app, options) {
143
+ const { port, bindHost } = resolveOptions(options);
144
+ const credentials = readTlsCredentials(options.tls);
145
+ return new Promise((resolve, reject) => {
146
+ const server = createHttpsServer(credentials, app);
147
+ server.requestTimeout = HTTP_REQUEST_TIMEOUT;
148
+ server.headersTimeout = HTTP_HEADERS_TIMEOUT;
149
+ server.keepAliveTimeout = HTTP_KEEP_ALIVE_TIMEOUT;
150
+ server.on("error", (error) => {
151
+ reject(handleServerError(error, port, bindHost));
152
+ });
153
+ server.listen(port, bindHost, () => {
154
+ // @node-api — server.address() returns string | AddressInfo | null; inside listen() callback it is always AddressInfo
155
+ const addr = server.address();
156
+ logger.info(LogMessages.HTTPS_LISTENING, addr.address, addr.port);
157
+ resolve(server);
158
+ });
159
+ });
160
+ }
161
+ // ============================================================================
162
+ // Error Handling
163
+ // ============================================================================
164
+ /**
165
+ * Handles critical server errors like EADDRINUSE and EACCES.
166
+ *
167
+ * @param error - Node.js error with errno code
168
+ * @param port - Configured port number
169
+ * @param bindHost - Configured bind host
170
+ */
171
+ function handleServerError(error, port, bindHost) {
172
+ if (error.syscall !== "listen") {
173
+ return error;
174
+ }
175
+ const bind = `${bindHost}:${port}`;
176
+ switch (error.code) {
177
+ case "EADDRINUSE":
178
+ logger.error(LogMessages.PORT_IN_USE, bind);
179
+ return TransportError.portInUse(bind);
180
+ case "EACCES":
181
+ logger.error(LogMessages.PORT_REQUIRES_PRIVILEGES, bind);
182
+ return TransportError.privilegesRequired(bind);
183
+ default:
184
+ logger.error(LogMessages.SERVER_ERROR, error.message);
185
+ return error;
186
+ }
187
+ }
188
+ //# sourceMappingURL=http-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../../src/server/http/http-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAe,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIjD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAoBvD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;IAC9B,SAAS,EAAE,wBAAwB,CAAC,WAAW;CAChD,CAAC,CAAC;AAEH,6DAA6D;AAC7D,MAAM,WAAW,GAAG;IAClB,uBAAuB,EAAE,iDAAiD;IAC1E,cAAc,EAAE,uCAAuC;IACvD,eAAe,EAAE,yCAAyC;IAC1D,WAAW,EAAE,iDAAiD;IAC9D,wBAAwB,EAAE,4CAA4C;IACtE,YAAY,EAAE,6BAA6B;CACnC,CAAC;AAEX,sFAAsF;AACtF,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtC,6EAA6E;AAC7E,yFAAyF;AACzF,4DAA4D;AAE5D,4CAA4C;AAC5C,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,uEAAuE;AACvE,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,+EAA+E;AAC/E,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,cAAc,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,IAAI,GAAG,iBAAiB,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CACtB,4CAA4C,iBAAiB,WAAW,QAAQ,KAAK,IAAI,SAAS,CACnG,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAc;IAC/C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;IAEnG,MAAM,WAAW,GAAyB;QACxC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/B,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;KAC9B,CAAC;IAEF,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,WAAW,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;GAEG;AACH,SAAS,cAAc,CAAC,UAA6B,EAAE;IAIrD,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,eAAe,CAAC,QAAQ;QAC9C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,aAAa;KAC5D,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,GAAgB,EAAE,UAA6B,EAAE;IAC/E,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAEnD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,cAAc,GAAG,oBAAoB,CAAC;QAC7C,MAAM,CAAC,cAAc,GAAG,oBAAoB,CAAC;QAC7C,MAAM,CAAC,gBAAgB,GAAG,uBAAuB,CAAC;QAElD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;YAClD,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;YACjC,sHAAsH;YACtH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAiB,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAgB,EAAE,OAA2B;IAC5E,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,GAAG,oBAAoB,CAAC;QAC7C,MAAM,CAAC,cAAc,GAAG,oBAAoB,CAAC;QAC7C,MAAM,CAAC,gBAAgB,GAAG,uBAAuB,CAAC;QAElD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;YAClD,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;YACjC,sHAAsH;YACtH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAiB,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAClE,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,KAA4B,EAAE,IAAY,EAAE,QAAgB;IACrF,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;IAEnC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,YAAY;YACf,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxC,KAAK,QAAQ;YACX,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;YACzD,OAAO,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACjD;YACE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * HTTP Transport
3
+ *
4
+ * Starts an HTTP or HTTPS server from a configured Express application.
5
+ * Returns a lightweight TransportHandle for shutdown and info queries.
6
+ *
7
+ * @module server/http/http-transport
8
+ */
9
+ import type { Application } from "express";
10
+ import type { TransportHandle } from "../transport/types.js";
11
+ import type { HttpTransportOptions, HttpsTransportOptions } from "../server-options.js";
12
+ /**
13
+ * Options for starting the HTTP transport.
14
+ *
15
+ * Accepts the narrowed discriminated union member directly.
16
+ */
17
+ export interface HttpTransportStartOptions {
18
+ /** The HTTP or HTTPS transport configuration from the discriminated union */
19
+ readonly transport: HttpTransportOptions | HttpsTransportOptions;
20
+ }
21
+ /**
22
+ * Starts an HTTP or HTTPS transport server.
23
+ *
24
+ * Creates and starts the appropriate server:
25
+ * - HTTP mode: Plain HTTP server (development, behind reverse proxy)
26
+ * - HTTPS mode: HTTPS server with TLS (direct TLS termination)
27
+ *
28
+ * @param app - Configured Express application
29
+ * @param options - Transport configuration
30
+ * @returns TransportHandle for shutdown and runtime info
31
+ */
32
+ export declare function startHttpTransport(app: Application, options: HttpTransportStartOptions): Promise<TransportHandle>;
33
+ //# sourceMappingURL=http-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../../src/server/http/http-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAmBxF;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,oBAAoB,GAAG,qBAAqB,CAAC;CAClE;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,CAsD1B"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * HTTP Transport
3
+ *
4
+ * Starts an HTTP or HTTPS server from a configured Express application.
5
+ * Returns a lightweight TransportHandle for shutdown and info queries.
6
+ *
7
+ * @module server/http/http-transport
8
+ */
9
+ import { startHttpServer, startHttpsServer } from "./http-server.js";
10
+ import { logger as baseLogger } from "../../logger/index.js";
11
+ import { TRANSPORT_LOG_COMPONENTS } from "../transport/constants.js";
12
+ const logger = baseLogger.child({
13
+ component: TRANSPORT_LOG_COMPONENTS.HTTP_SERVER,
14
+ });
15
+ const LogMessages = {
16
+ TRANSPORT_STARTING: "Starting %s transport...",
17
+ SERVER_CLOSED: "HTTP server closed",
18
+ SHUTDOWN_ERROR: "Error during HTTP server shutdown: %s",
19
+ };
20
+ // ============================================================================
21
+ // HTTP Transport Function
22
+ // ============================================================================
23
+ /**
24
+ * Starts an HTTP or HTTPS transport server.
25
+ *
26
+ * Creates and starts the appropriate server:
27
+ * - HTTP mode: Plain HTTP server (development, behind reverse proxy)
28
+ * - HTTPS mode: HTTPS server with TLS (direct TLS termination)
29
+ *
30
+ * @param app - Configured Express application
31
+ * @param options - Transport configuration
32
+ * @returns TransportHandle for shutdown and runtime info
33
+ */
34
+ export async function startHttpTransport(app, options) {
35
+ const startedAt = new Date();
36
+ const { transport } = options;
37
+ const useTls = transport.mode === "https";
38
+ logger.debug(LogMessages.TRANSPORT_STARTING, useTls ? "HTTPS" : "HTTP");
39
+ const serverOptions = {
40
+ port: transport.port,
41
+ bindHost: transport.host,
42
+ };
43
+ let server;
44
+ if (useTls) {
45
+ server = await startHttpsServer(app, {
46
+ ...serverOptions,
47
+ tls: transport.tls,
48
+ });
49
+ }
50
+ else {
51
+ server = await startHttpServer(app, serverOptions);
52
+ }
53
+ return {
54
+ async shutdown() {
55
+ // Close existing keep-alive connections before stopping the server.
56
+ // server.close() alone only stops accepting NEW connections — existing
57
+ // idle keep-alive connections hang indefinitely until they time out,
58
+ // blocking graceful shutdown. Available since Node.js 18.2+.
59
+ server.closeAllConnections();
60
+ await new Promise((resolve, reject) => {
61
+ server.close((err) => {
62
+ if (err) {
63
+ logger.error(LogMessages.SHUTDOWN_ERROR, err.message);
64
+ reject(err);
65
+ }
66
+ else {
67
+ logger.info(LogMessages.SERVER_CLOSED);
68
+ resolve();
69
+ }
70
+ });
71
+ });
72
+ },
73
+ info() {
74
+ return {
75
+ state: "running",
76
+ startedAt,
77
+ mode: transport.mode,
78
+ host: transport.host,
79
+ port: transport.port,
80
+ };
81
+ },
82
+ };
83
+ }
84
+ //# sourceMappingURL=http-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../../../src/server/http/http-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;IAC9B,SAAS,EAAE,wBAAwB,CAAC,WAAW;CAChD,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG;IAClB,kBAAkB,EAAE,0BAA0B;IAC9C,aAAa,EAAE,oBAAoB;IACnC,cAAc,EAAE,uCAAuC;CAC/C,CAAC;AAgBX,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAgB,EAChB,OAAkC;IAElC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC;IAE1C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,SAAS,CAAC,IAAI;KACzB,CAAC;IAEF,IAAI,MAAc,CAAC;IAEnB,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;YACnC,GAAG,aAAa;YAChB,GAAG,EAAE,SAAS,CAAC,GAAG;SACnB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACL,KAAK,CAAC,QAAQ;YACZ,oEAAoE;YACpE,uEAAuE;YACvE,qEAAqE;YACrE,6DAA6D;YAC7D,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAE7B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACnB,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;wBACtD,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;wBACvC,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI;YACF,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,SAAS;gBACT,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;aACrB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * HTTP Transport
3
+ *
4
+ * Express application factory and HTTP/HTTPS server creation.
5
+ *
6
+ * @module server/http
7
+ */
8
+ export { createExpressApp } from "./express-app.js";
9
+ export type { ExpressAppOptions } from "./express-app.js";
10
+ export { startHttpServer, startHttpsServer, readTlsCredentials } from "./http-server.js";
11
+ export type { HttpServerOptions, HttpsServerOptions } from "./http-server.js";
12
+ export { startHttpTransport } from "./http-transport.js";
13
+ export type { HttpTransportStartOptions } from "./http-transport.js";
14
+ export type { SessionFactory, TransportHandle, TransportInfo, TransportState } from "../transport/types.js";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/http/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * HTTP Transport
3
+ *
4
+ * Express application factory and HTTP/HTTPS server creation.
5
+ *
6
+ * @module server/http
7
+ */
8
+ export { createExpressApp } from "./express-app.js";
9
+ export { startHttpServer, startHttpsServer, readTlsCredentials } from "./http-server.js";
10
+ export { startHttpTransport } from "./http-transport.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/http/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Server Module
3
+ *
4
+ * High-level API for creating MCP servers with minimal boilerplate.
5
+ * Re-exports builder, session, and transport for convenience.
6
+ *
7
+ * @module server
8
+ */
9
+ export { createServer } from "./create-server.js";
10
+ export type { CreateServerOptions, CreateServerResult } from "./types.js";
11
+ export { isHttpTransport } from "./server-options.js";
12
+ export type { TransportMode, BaseHttpTransportOptions, StdioTransportOptions, HttpTransportOptions, HttpsTransportOptions, TransportOptions, TlsConfig, ServerCapabilities, HealthConfig, SessionConfigOptions, ServerOptions, ServerInstance, } from "./server-options.js";
13
+ export type { ServerState, ServerLifecycleHooks, ShutdownConfig } from "./lifecycle.js";
14
+ export { McpServerBuilder } from "./builder/index.js";
15
+ export type { ServerBuilder } from "./builder/index.js";
16
+ export { McpSessionFactory, SessionManagerImpl, InMemorySessionStore, SessionHousekeeper, McpSession, createSession, createAuthContext, ANONYMOUS_AUTH, SESSION_CLOSE_REASONS, } from "./session/index.js";
17
+ export type { SessionFactoryConfig, Session, SessionManager, SessionStore, SessionConfig, SessionStats, HousekeeperConfig, AuthContext, ClientInfo, SessionState, SessionCloseReason, CreateSessionOptions, } from "./session/index.js";
18
+ export type { SessionFactory, TransportHandle, TransportInfo, TransportType, TransportState, TransportContext, HeartbeatCapableTransport, HeartbeatState, } from "./transport/types.js";
19
+ export { createTransportContext, isHeartbeatCapable } from "./transport/types.js";
20
+ export type { HttpTransportStartOptions, HttpServerOptions, HttpsServerOptions } from "./http/index.js";
21
+ export { startStdioTransport } from "./transport/stdio-transport.js";
22
+ export { ReadinessStatus } from "./routes/readiness-status.js";
23
+ export type { ReadinessStatusValue } from "./routes/readiness-status.js";
24
+ export type { HealthRouterOptions, SseInfoProvider } from "./routes/index.js";
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAM1E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,YAAY,EACV,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,cAAc,GACf,MAAM,qBAAqB,CAAC;AAM7B,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EAEV,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,oBAAoB,EACpB,OAAO,EACP,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAM5B,YAAY,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAElF,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAQxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAQrE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Server Module
3
+ *
4
+ * High-level API for creating MCP servers with minimal boilerplate.
5
+ * Re-exports builder, session, and transport for convenience.
6
+ *
7
+ * @module server
8
+ */
9
+ // ─────────────────────────────────────────────────────────────────────────────
10
+ // Create Server (main entry point)
11
+ // ─────────────────────────────────────────────────────────────────────────────
12
+ export { createServer } from "./create-server.js";
13
+ // ─────────────────────────────────────────────────────────────────────────────
14
+ // Server Configuration Types
15
+ // ─────────────────────────────────────────────────────────────────────────────
16
+ export { isHttpTransport } from "./server-options.js";
17
+ // ─────────────────────────────────────────────────────────────────────────────
18
+ // Builder
19
+ // ─────────────────────────────────────────────────────────────────────────────
20
+ export { McpServerBuilder } from "./builder/index.js";
21
+ // ─────────────────────────────────────────────────────────────────────────────
22
+ // Session (includes SessionFactory, Manager, Store, MCP Session)
23
+ // ─────────────────────────────────────────────────────────────────────────────
24
+ export { McpSessionFactory, SessionManagerImpl, InMemorySessionStore, SessionHousekeeper, McpSession,
25
+ // Factories
26
+ createSession, createAuthContext, ANONYMOUS_AUTH, SESSION_CLOSE_REASONS, } from "./session/index.js";
27
+ export { createTransportContext, isHeartbeatCapable } from "./transport/types.js";
28
+ // Only stdio is statically exported from this barrel.
29
+ // Express-dependent HTTP transport functions (startHttpTransport, createExpressApp,
30
+ // startHttpServer, startHttpsServer, readTlsCredentials) are available via the
31
+ // 'mcp-server-framework/http' subpath import.
32
+ // This prevents Express from loading at import time, allowing OTEL instrumentation
33
+ // to initialize before Express is required.
34
+ export { startStdioTransport } from "./transport/stdio-transport.js";
35
+ // ─────────────────────────────────────────────────────────────────────────────
36
+ // Routes
37
+ // ─────────────────────────────────────────────────────────────────────────────
38
+ // ReadinessStatus from dedicated module — avoids loading Express via routes barrel.
39
+ // createHealthRouter is framework-internal (used by createExpressApp).
40
+ export { ReadinessStatus } from "./routes/readiness-status.js";
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,mCAAmC;AACnC,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAuBtD,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,gFAAgF;AAChF,iEAAiE;AACjE,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU;AACV,YAAY;AACZ,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAgC5B,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAIlF,sDAAsD;AACtD,oFAAoF;AACpF,+EAA+E;AAC/E,8CAA8C;AAC9C,mFAAmF;AACnF,4CAA4C;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,oFAAoF;AACpF,uEAAuE;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Server Lifecycle Types
3
+ *
4
+ * Defines lifecycle hooks and state management for MCP servers.
5
+ * These types enable clean startup/shutdown handling and event-driven architecture.
6
+ *
7
+ * @module server/lifecycle
8
+ */
9
+ /**
10
+ * Server lifecycle states.
11
+ *
12
+ * State machine:
13
+ * ```
14
+ * created → starting → running → stopping → stopped
15
+ * ↓ ↓
16
+ * error ←────┘
17
+ * ```
18
+ */
19
+ export type ServerState = "created" | "starting" | "running" | "stopping" | "stopped" | "error";
20
+ /**
21
+ * All possible server states as a readonly array.
22
+ *
23
+ * @public Exported for consumer validation and iteration.
24
+ * The {@link ServerState} type is the recommended way to type state values.
25
+ */
26
+ export declare const SERVER_STATES: readonly ["created", "starting", "running", "stopping", "stopped", "error"];
27
+ /**
28
+ * Lifecycle hooks for MCP servers.
29
+ *
30
+ * Implement these hooks to execute code at specific points in the server lifecycle.
31
+ * All hooks are optional and async-friendly.
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const hooks: ServerLifecycleHooks = {
36
+ * onStarting: async () => {
37
+ * await initializeDatabase();
38
+ * },
39
+ * onStarted: async () => {
40
+ * logger.info('Server is ready');
41
+ * },
42
+ * onStopping: async () => {
43
+ * await flushMetrics();
44
+ * },
45
+ * onStopped: async () => {
46
+ * await closeConnections();
47
+ * },
48
+ * };
49
+ * ```
50
+ */
51
+ export interface ServerLifecycleHooks {
52
+ /**
53
+ * Called before server starts accepting connections.
54
+ * Use for initialization tasks (database, cache, external services).
55
+ */
56
+ onStarting?: () => void | Promise<void>;
57
+ /**
58
+ * Called after server is fully started and accepting connections.
59
+ * Use for logging, metrics, or notifying external systems.
60
+ */
61
+ onStarted?: () => void | Promise<void>;
62
+ /**
63
+ * Called when server begins shutdown process.
64
+ * Use for graceful cleanup (flush buffers, notify clients).
65
+ */
66
+ onStopping?: () => void | Promise<void>;
67
+ /**
68
+ * Called after server has fully stopped.
69
+ * Use for final cleanup (close file handles, database connections).
70
+ */
71
+ onStopped?: () => void | Promise<void>;
72
+ /**
73
+ * Called when an unhandled error occurs.
74
+ * Use for error reporting/logging.
75
+ */
76
+ onError?: (error: Error) => void | Promise<void>;
77
+ /**
78
+ * Called when a client connects to the server.
79
+ * Use for session initialization or connection tracking.
80
+ *
81
+ * **Important:** This hook is invoked asynchronously (fire-and-forget) during
82
+ * session creation. It is NOT awaited — the session is returned to the transport
83
+ * before this hook completes. For async setup that must finish before the session
84
+ * handles requests, use the tool/resource handlers themselves.
85
+ *
86
+ * During session close, {@link onClientDisconnected} IS awaited.
87
+ */
88
+ onClientConnected?: (sessionId: string) => void | Promise<void>;
89
+ /**
90
+ * Called when a client disconnects from the server.
91
+ * Use for session cleanup or connection tracking.
92
+ */
93
+ onClientDisconnected?: (sessionId: string) => void | Promise<void>;
94
+ }
95
+ /**
96
+ * Configuration for graceful shutdown behavior.
97
+ */
98
+ export interface ShutdownConfig {
99
+ /** Maximum time to wait for graceful shutdown (ms) */
100
+ readonly timeoutMs: number;
101
+ /** Whether to force exit after timeout */
102
+ readonly forceExitOnTimeout: boolean;
103
+ /** Signals to listen for (default: ['SIGINT', 'SIGTERM']) */
104
+ readonly signals?: ReadonlyArray<NodeJS.Signals>;
105
+ }
106
+ /**
107
+ * Default shutdown configuration values.
108
+ *
109
+ * Configurable only via `ServerOptions.shutdown` (programmatic API).
110
+ * Not exposed as env variable or config file field — shutdown behavior
111
+ * is typically set per-deployment in code, not per-environment.
112
+ */
113
+ export declare const DEFAULT_SHUTDOWN_CONFIG: ShutdownConfig;
114
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/server/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhG;;;;;GAKG;AACH,eAAO,MAAM,aAAa,6EAA8E,CAAC;AAMzG;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CAClD;AAKD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAIrC,CAAC"}