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,89 @@
1
+ /**
2
+ * Primitive Collector
3
+ *
4
+ * Collects tools, resources, resource templates, and prompts from
5
+ * providers and direct registrations. Detects duplicates with warnings
6
+ * and returns frozen, immutable arrays.
7
+ *
8
+ * Extracted from McpServerBuilder.build() for single responsibility.
9
+ *
10
+ * @module server/builder/primitive-collector
11
+ */
12
+ import { BuilderLogMessages, BUILDER_LOG_COMPONENT } from "./constants.js";
13
+ import { logger as frameworkLogger } from "../../logger/index.js";
14
+ const logger = frameworkLogger.child({ component: BUILDER_LOG_COMPONENT });
15
+ // ============================================================================
16
+ // Collection
17
+ // ============================================================================
18
+ /**
19
+ * Collects all MCP primitives from builder state.
20
+ *
21
+ * Merges directly registered items with items from providers,
22
+ * warns about duplicates (last registration wins), and
23
+ * freezes all arrays for immutability after build.
24
+ *
25
+ * @param state - Current builder state with providers and direct registrations
26
+ * @returns Frozen, immutable primitive arrays
27
+ */
28
+ export function collectPrimitives(state) {
29
+ const tools = collectItems(state.tools, state.toolProviders, (p) => p.getTools(), (t) => t.name, BuilderLogMessages.DUPLICATE_TOOL);
30
+ const resources = collectItems(state.resources, state.resourceProviders, (p) => p.getResources(), (r) => r.uri, BuilderLogMessages.DUPLICATE_RESOURCE);
31
+ const resourceTemplates = collectItems(state.resourceTemplates, state.resourceProviders, (p) => p.getTemplates(), (t) => t.uriTemplate, BuilderLogMessages.DUPLICATE_TEMPLATE);
32
+ const prompts = collectItems(state.prompts, state.promptProviders, (p) => p.getPrompts(), (p) => p.name, BuilderLogMessages.DUPLICATE_PROMPT);
33
+ const taskTools = collectItems(state.taskTools, state.taskToolProviders, (p) => p.getTaskTools(), (t) => t.name, BuilderLogMessages.DUPLICATE_TASK_TOOL);
34
+ if (tools.length === 0 &&
35
+ resources.length === 0 &&
36
+ resourceTemplates.length === 0 &&
37
+ prompts.length === 0 &&
38
+ taskTools.length === 0) {
39
+ logger.warn(BuilderLogMessages.NO_CAPABILITIES);
40
+ }
41
+ return {
42
+ tools: Object.freeze(tools),
43
+ resources: Object.freeze(resources),
44
+ resourceTemplates: Object.freeze(resourceTemplates),
45
+ prompts: Object.freeze(prompts),
46
+ taskTools: Object.freeze(taskTools),
47
+ };
48
+ }
49
+ // ============================================================================
50
+ // Generic Collection Helper
51
+ // ============================================================================
52
+ /**
53
+ * Generic collection helper — merges direct items with provider items and warns about duplicates.
54
+ *
55
+ * @param direct - Directly registered items
56
+ * @param providers - Provider instances
57
+ * @param getFromProvider - Extracts items from a single provider
58
+ * @param getKey - Extracts the unique identifier from each item
59
+ * @param duplicateMessage - Printf-style log message for duplicates
60
+ */
61
+ function collectItems(direct, providers, getFromProvider, getKey, duplicateMessage) {
62
+ const all = [...direct];
63
+ for (const provider of providers) {
64
+ all.push(...getFromProvider(provider));
65
+ }
66
+ warnDuplicates(all, getKey, duplicateMessage);
67
+ return all;
68
+ }
69
+ // ============================================================================
70
+ // Duplicate Detection
71
+ // ============================================================================
72
+ /**
73
+ * Warns about duplicate identifiers in a collection.
74
+ *
75
+ * @param items - Collection to check
76
+ * @param getKey - Extracts the unique identifier from each item
77
+ * @param message - Printf-style log message with %s placeholder for the key
78
+ */
79
+ function warnDuplicates(items, getKey, message) {
80
+ const seen = new Set();
81
+ for (const item of items) {
82
+ const key = getKey(item);
83
+ if (seen.has(key)) {
84
+ logger.warn(message, key);
85
+ }
86
+ seen.add(key);
87
+ }
88
+ }
89
+ //# sourceMappingURL=primitive-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive-collector.js","sourceRoot":"","sources":["../../../src/server/builder/primitive-collector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * MCP Server Builder
3
+ *
4
+ * Provides a fluent, declarative API for constructing MCP servers.
5
+ * This is the main entry point for the framework's server creation pattern.
6
+ *
7
+ * @module server/builder/server-builder
8
+ */
9
+ import type { ServerInstance } from "../server-options.js";
10
+ import type { ServerBuilder } from "./types.js";
11
+ import type { ToolProvider, ToolDefinition, ResourceProvider, ResourceStaticDefinition, ResourceTemplateDefinition, PromptProvider, PromptDefinition, TaskToolProvider, TaskToolDefinition } from "../../mcp/types/index.js";
12
+ import type { ServerOptions } from "../server-options.js";
13
+ /**
14
+ * Fluent builder for constructing MCP servers.
15
+ *
16
+ * Provides a declarative API for configuring all aspects of an MCP server
17
+ * including tools, resources, prompts, transport, and lifecycle hooks.
18
+ *
19
+ * @example Basic usage with tool provider
20
+ * ```typescript
21
+ * const server = new McpServerBuilder()
22
+ * .withOptions({
23
+ * name: 'my-mcp-server',
24
+ * version: '1.0.0',
25
+ * transport: { mode: 'stdio' },
26
+ * })
27
+ * .withToolProvider(myToolRegistry)
28
+ * .build();
29
+ *
30
+ * await server.start();
31
+ * ```
32
+ */
33
+ export declare class McpServerBuilder implements ServerBuilder {
34
+ private state;
35
+ private built;
36
+ constructor();
37
+ withOptions(options: ServerOptions): ServerBuilder;
38
+ withToolProvider(provider: ToolProvider): ServerBuilder;
39
+ withTools(tools: ReadonlyArray<ToolDefinition>): ServerBuilder;
40
+ withResourceProvider(provider: ResourceProvider): ServerBuilder;
41
+ withResources(resources: ReadonlyArray<ResourceStaticDefinition>): ServerBuilder;
42
+ withResourceTemplates(templates: ReadonlyArray<ResourceTemplateDefinition>): ServerBuilder;
43
+ withPromptProvider(provider: PromptProvider): ServerBuilder;
44
+ withPrompts(prompts: ReadonlyArray<PromptDefinition>): ServerBuilder;
45
+ withTaskToolProvider(provider: TaskToolProvider): ServerBuilder;
46
+ withTaskTools(taskTools: ReadonlyArray<TaskToolDefinition>): ServerBuilder;
47
+ build(): ServerInstance;
48
+ /**
49
+ * Creates the session factory and server instance from validated options.
50
+ */
51
+ private createServerInstance;
52
+ }
53
+ //# sourceMappingURL=server-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-builder.d.ts","sourceRoot":"","sources":["../../../src/server/builder/server-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAC;AAE9D,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiB1D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,KAAK,CAAS;;IAUtB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa;IAMlD,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,aAAa;IAKvD,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,aAAa;IAK9D,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,aAAa;IAK/D,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,wBAAwB,CAAC,GAAG,aAAa;IAKhF,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,0BAA0B,CAAC,GAAG,aAAa;IAK1F,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,aAAa;IAK3D,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,aAAa;IAKpE,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,aAAa;IAK/D,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,aAAa;IAS1E,KAAK,IAAI,cAAc;IAsBvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CA2B7B"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * MCP Server Builder
3
+ *
4
+ * Provides a fluent, declarative API for constructing MCP servers.
5
+ * This is the main entry point for the framework's server creation pattern.
6
+ *
7
+ * @module server/builder/server-builder
8
+ */
9
+ import { isHttpTransport } from "../server-options.js";
10
+ import { createBuilderState } from "./types.js";
11
+ import { BuilderLogMessages, BUILDER_LOG_COMPONENT } from "./constants.js";
12
+ import { McpServerInstance } from "../server-instance.js";
13
+ import { McpSessionFactory } from "../session/session-factory.js";
14
+ import { validateBuilderState } from "./validation.js";
15
+ import { collectPrimitives } from "./primitive-collector.js";
16
+ import { logger as frameworkLogger } from "../../logger/index.js";
17
+ const logger = frameworkLogger.child({ component: BUILDER_LOG_COMPONENT });
18
+ // ============================================================================
19
+ // Server Builder Implementation
20
+ // ============================================================================
21
+ /**
22
+ * Fluent builder for constructing MCP servers.
23
+ *
24
+ * Provides a declarative API for configuring all aspects of an MCP server
25
+ * including tools, resources, prompts, transport, and lifecycle hooks.
26
+ *
27
+ * @example Basic usage with tool provider
28
+ * ```typescript
29
+ * const server = new McpServerBuilder()
30
+ * .withOptions({
31
+ * name: 'my-mcp-server',
32
+ * version: '1.0.0',
33
+ * transport: { mode: 'stdio' },
34
+ * })
35
+ * .withToolProvider(myToolRegistry)
36
+ * .build();
37
+ *
38
+ * await server.start();
39
+ * ```
40
+ */
41
+ export class McpServerBuilder {
42
+ state;
43
+ built = false;
44
+ constructor() {
45
+ this.state = createBuilderState();
46
+ }
47
+ // ──────────────────────────────────────────────────────────────────────────
48
+ // Fluent Configuration API
49
+ // ──────────────────────────────────────────────────────────────────────────
50
+ withOptions(options) {
51
+ logger.debug(BuilderLogMessages.OPTIONS_CONFIGURED, options.name, options.version);
52
+ this.state.options = options;
53
+ return this;
54
+ }
55
+ withToolProvider(provider) {
56
+ this.state.toolProviders.push(provider);
57
+ return this;
58
+ }
59
+ withTools(tools) {
60
+ this.state.tools.push(...tools);
61
+ return this;
62
+ }
63
+ withResourceProvider(provider) {
64
+ this.state.resourceProviders.push(provider);
65
+ return this;
66
+ }
67
+ withResources(resources) {
68
+ this.state.resources.push(...resources);
69
+ return this;
70
+ }
71
+ withResourceTemplates(templates) {
72
+ this.state.resourceTemplates.push(...templates);
73
+ return this;
74
+ }
75
+ withPromptProvider(provider) {
76
+ this.state.promptProviders.push(provider);
77
+ return this;
78
+ }
79
+ withPrompts(prompts) {
80
+ this.state.prompts.push(...prompts);
81
+ return this;
82
+ }
83
+ withTaskToolProvider(provider) {
84
+ this.state.taskToolProviders.push(provider);
85
+ return this;
86
+ }
87
+ withTaskTools(taskTools) {
88
+ this.state.taskTools.push(...taskTools);
89
+ return this;
90
+ }
91
+ // ──────────────────────────────────────────────────────────────────────────
92
+ // Build
93
+ // ──────────────────────────────────────────────────────────────────────────
94
+ build() {
95
+ logger.debug(BuilderLogMessages.BUILD_STARTED);
96
+ // 1. Validate state — throws ConfigurationError on failure
97
+ const options = validateBuilderState(this.state, this.built);
98
+ // 2. Collect & deduplicate primitives from providers + direct registrations
99
+ const primitives = collectPrimitives(this.state);
100
+ // 3. Create server instance
101
+ const instance = this.createServerInstance(options, primitives);
102
+ this.built = true;
103
+ logger.debug(BuilderLogMessages.BUILD_COMPLETED);
104
+ return instance;
105
+ }
106
+ // ──────────────────────────────────────────────────────────────────────────
107
+ // Internal
108
+ // ──────────────────────────────────────────────────────────────────────────
109
+ /**
110
+ * Creates the session factory and server instance from validated options.
111
+ */
112
+ createServerInstance(options, primitives) {
113
+ const transport = options.transport;
114
+ const stateless = isHttpTransport(transport) ? transport.stateless : undefined;
115
+ const sessionFactory = new McpSessionFactory({
116
+ name: options.name,
117
+ version: options.version,
118
+ capabilities: options.capabilities,
119
+ handlers: options.handlers,
120
+ stateless,
121
+ tools: primitives.tools,
122
+ resources: primitives.resources,
123
+ resourceTemplates: primitives.resourceTemplates,
124
+ prompts: primitives.prompts,
125
+ taskTools: primitives.taskTools,
126
+ scopeFilterCapabilities: options.auth?.scopeFilterCapabilities,
127
+ });
128
+ logger.debug(BuilderLogMessages.BUILD_SUMMARY, primitives.tools.length, primitives.resources.length + primitives.resourceTemplates.length, primitives.prompts.length);
129
+ return new McpServerInstance(options, sessionFactory);
130
+ }
131
+ }
132
+ //# sourceMappingURL=server-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-builder.js","sourceRoot":"","sources":["../../../src/server/builder/server-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Server Builder Types
3
+ *
4
+ * Type definitions for the declarative MCP server builder pattern.
5
+ *
6
+ * @module server/builder/types
7
+ */
8
+ import type { ServerOptions, ServerInstance } from "../server-options.js";
9
+ import type { ToolDefinition, ToolProvider, ResourceStaticDefinition, ResourceTemplateDefinition, ResourceProvider, PromptDefinition, PromptProvider, TaskToolDefinition, TaskToolProvider } from "../../mcp/types/index.js";
10
+ /**
11
+ * Fluent builder interface for constructing MCP servers.
12
+ *
13
+ * Provides a declarative, type-safe API for configuring servers.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const server = new McpServerBuilder()
18
+ * .withOptions({
19
+ * name: 'my-server',
20
+ * version: '1.0.0',
21
+ * transport: { mode: 'stdio' },
22
+ * })
23
+ * .withToolProvider(myToolProvider)
24
+ * .withResourceProvider(myResourceProvider)
25
+ * .build();
26
+ *
27
+ * await server.start();
28
+ * ```
29
+ */
30
+ export interface ServerBuilder {
31
+ /** Configure server options. */
32
+ withOptions(options: ServerOptions): ServerBuilder;
33
+ /** Register a tool provider. */
34
+ withToolProvider(provider: ToolProvider): ServerBuilder;
35
+ /** Register individual tools. */
36
+ withTools(tools: ReadonlyArray<ToolDefinition>): ServerBuilder;
37
+ /** Register a resource provider. */
38
+ withResourceProvider(provider: ResourceProvider): ServerBuilder;
39
+ /** Register individual static resources. */
40
+ withResources(resources: ReadonlyArray<ResourceStaticDefinition>): ServerBuilder;
41
+ /** Register resource templates. */
42
+ withResourceTemplates(templates: ReadonlyArray<ResourceTemplateDefinition>): ServerBuilder;
43
+ /** Register a prompt provider. */
44
+ withPromptProvider(provider: PromptProvider): ServerBuilder;
45
+ /** Register individual prompts. */
46
+ withPrompts(prompts: ReadonlyArray<PromptDefinition>): ServerBuilder;
47
+ /**
48
+ * Register a task tool provider.
49
+ * @experimental MCP Tasks is an experimental SDK feature
50
+ */
51
+ withTaskToolProvider(provider: TaskToolProvider): ServerBuilder;
52
+ /**
53
+ * Register individual task tools.
54
+ * @experimental MCP Tasks is an experimental SDK feature
55
+ */
56
+ withTaskTools(taskTools: ReadonlyArray<TaskToolDefinition>): ServerBuilder;
57
+ /** Build and return the configured server instance. */
58
+ build(): ServerInstance;
59
+ }
60
+ /**
61
+ * Internal state tracked by the builder.
62
+ * @internal
63
+ */
64
+ export interface BuilderState {
65
+ options?: ServerOptions | undefined;
66
+ toolProviders: ToolProvider[];
67
+ tools: ToolDefinition[];
68
+ resourceProviders: ResourceProvider[];
69
+ resources: ResourceStaticDefinition[];
70
+ resourceTemplates: ResourceTemplateDefinition[];
71
+ promptProviders: PromptProvider[];
72
+ prompts: PromptDefinition[];
73
+ taskToolProviders: TaskToolProvider[];
74
+ taskTools: TaskToolDefinition[];
75
+ }
76
+ /**
77
+ * Creates a fresh builder state.
78
+ */
79
+ export declare function createBuilderState(): BuilderState;
80
+ /**
81
+ * Result of collecting primitives from the builder state.
82
+ *
83
+ * All arrays are frozen (immutable) after collection.
84
+ * Used as input for the session factory.
85
+ */
86
+ export interface CollectedPrimitives {
87
+ readonly tools: ReadonlyArray<ToolDefinition>;
88
+ readonly resources: ReadonlyArray<ResourceStaticDefinition>;
89
+ readonly resourceTemplates: ReadonlyArray<ResourceTemplateDefinition>;
90
+ readonly prompts: ReadonlyArray<PromptDefinition>;
91
+ readonly taskTools: ReadonlyArray<TaskToolDefinition>;
92
+ }
93
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/builder/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAMlC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC;IAEnD,gCAAgC;IAChC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,aAAa,CAAC;IAExD,iCAAiC;IACjC,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC;IAE/D,oCAAoC;IACpC,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,aAAa,CAAC;IAEhE,4CAA4C;IAC5C,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,wBAAwB,CAAC,GAAG,aAAa,CAAC;IAEjF,mCAAmC;IACnC,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,0BAA0B,CAAC,GAAG,aAAa,CAAC;IAE3F,kCAAkC;IAClC,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,aAAa,CAAC;IAE5D,mCAAmC;IACnC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC;IAErE;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,aAAa,CAAC;IAEhE;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,aAAa,CAAC;IAE3E,uDAAuD;IACvD,KAAK,IAAI,cAAc,CAAC;CACzB;AAMD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,iBAAiB,EAAE,0BAA0B,EAAE,CAAC;IAChD,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,SAAS,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAajD;AAMD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAC5D,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC;IACtE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;CACvD"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Server Builder Types
3
+ *
4
+ * Type definitions for the declarative MCP server builder pattern.
5
+ *
6
+ * @module server/builder/types
7
+ */
8
+ /**
9
+ * Creates a fresh builder state.
10
+ */
11
+ export function createBuilderState() {
12
+ return {
13
+ options: undefined,
14
+ toolProviders: [],
15
+ tools: [],
16
+ resourceProviders: [],
17
+ resources: [],
18
+ resourceTemplates: [],
19
+ promptProviders: [],
20
+ prompts: [],
21
+ taskToolProviders: [],
22
+ taskTools: [],
23
+ };
24
+ }
25
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/builder/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqGH;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,OAAO,EAAE,SAAS;QAClB,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,EAAE;QACT,iBAAiB,EAAE,EAAE;QACrB,SAAS,EAAE,EAAE;QACb,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,EAAE;QACnB,OAAO,EAAE,EAAE;QACX,iBAAiB,EAAE,EAAE;QACrB,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Builder Validation
3
+ *
4
+ * Validates builder state before server construction.
5
+ * Extracted from McpServerBuilder.build() for single responsibility.
6
+ *
7
+ * @module server/builder/validation
8
+ */
9
+ import type { ServerOptions } from "../server-options.js";
10
+ import type { BuilderState } from "./types.js";
11
+ /**
12
+ * Server options after validation — name and version are guaranteed non-empty.
13
+ *
14
+ * This type narrows the optional fields to their required forms
15
+ * so downstream code doesn't need redundant null checks.
16
+ */
17
+ export interface ValidatedServerOptions extends ServerOptions {
18
+ readonly name: string;
19
+ readonly version: string;
20
+ }
21
+ /**
22
+ * Validates that the builder state is ready for server construction.
23
+ *
24
+ * Checks:
25
+ * - Builder has not been used before (single-use guard)
26
+ * - Options have been configured via withOptions()
27
+ * - Server name is present and non-empty
28
+ * - Server version is present and non-empty
29
+ *
30
+ * @param state - Current builder state
31
+ * @param built - Whether this builder instance has already been used
32
+ * @returns Validated options with guaranteed name and version
33
+ * @throws ConfigurationError if any validation fails
34
+ */
35
+ export declare function validateBuilderState(state: BuilderState, built: boolean): ValidatedServerOptions;
36
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/server/builder/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ/C;;;;;GAKG;AACH,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAmBhG"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Builder Validation
3
+ *
4
+ * Validates builder state before server construction.
5
+ * Extracted from McpServerBuilder.build() for single responsibility.
6
+ *
7
+ * @module server/builder/validation
8
+ */
9
+ import { BuilderMessages } from "./constants.js";
10
+ import { ConfigurationError } from "../../errors/categories/validation.js";
11
+ // ============================================================================
12
+ // Validation
13
+ // ============================================================================
14
+ /**
15
+ * Validates that the builder state is ready for server construction.
16
+ *
17
+ * Checks:
18
+ * - Builder has not been used before (single-use guard)
19
+ * - Options have been configured via withOptions()
20
+ * - Server name is present and non-empty
21
+ * - Server version is present and non-empty
22
+ *
23
+ * @param state - Current builder state
24
+ * @param built - Whether this builder instance has already been used
25
+ * @returns Validated options with guaranteed name and version
26
+ * @throws ConfigurationError if any validation fails
27
+ */
28
+ export function validateBuilderState(state, built) {
29
+ if (built) {
30
+ throw ConfigurationError.constraintViolation(BuilderMessages.ALREADY_BUILT, ["build"]);
31
+ }
32
+ if (!state.options) {
33
+ throw ConfigurationError.constraintViolation(BuilderMessages.OPTIONS_REQUIRED, ["options"]);
34
+ }
35
+ if (!state.options.name.trim()) {
36
+ throw ConfigurationError.constraintViolation(BuilderMessages.NAME_REQUIRED, ["options.name"]);
37
+ }
38
+ if (!state.options.version.trim()) {
39
+ throw ConfigurationError.constraintViolation(BuilderMessages.VERSION_REQUIRED, ["options.version"]);
40
+ }
41
+ // @type-narrowing — validated above, but TS doesn't narrow through conditionals on readonly props
42
+ return state.options;
43
+ }
44
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/server/builder/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAiB3E,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAmB,EAAE,KAAc;IACtE,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAClC,MAAM,kBAAkB,CAAC,mBAAmB,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,kGAAkG;IAClG,OAAO,KAAK,CAAC,OAAiC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Create Server Function
3
+ *
4
+ * High-level API for creating MCP servers with minimal boilerplate.
5
+ * Automatically uses tools, resources, and prompts from the global registries.
6
+ *
7
+ * @module server/create-server
8
+ */
9
+ import type { CreateServerOptions, CreateServerResult } from "./types.js";
10
+ /**
11
+ * Create an MCP server with automatic tool, resource, and prompt registration.
12
+ *
13
+ * This is the recommended way to create servers in the framework.
14
+ * It automatically discovers and registers all items defined with
15
+ * `defineTool()`, `defineResource()`, `defineResourceTemplate()`, and `definePrompt()`.
16
+ *
17
+ * @param options - Server configuration options
18
+ * @returns Server instance with start() and stop() methods
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * // Minimal server with stdio transport
23
+ * import { createServer, defineTool, text } from 'mcp-server-framework';
24
+ * import { z } from 'zod';
25
+ *
26
+ * // This tool is auto-registered when the module loads
27
+ * export const greetTool = defineTool({
28
+ * name: 'greet',
29
+ * description: 'Greet a user',
30
+ * input: z.object({ name: z.string() }),
31
+ * handler: async ({ name }) => text(`Hello, ${name}!`),
32
+ * });
33
+ *
34
+ * // Create and start server
35
+ * const server = createServer({
36
+ * name: 'greeting-server',
37
+ * version: '1.0.0',
38
+ * transport: { mode: 'stdio' },
39
+ * });
40
+ *
41
+ * await server.start();
42
+ * ```
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * // Server with HTTP transport
47
+ * const server = createServer({
48
+ * name: 'http-server',
49
+ * version: '1.0.0',
50
+ * transport: { mode: 'http', port: 3000 },
51
+ * });
52
+ *
53
+ * await server.start();
54
+ * ```
55
+ */
56
+ export declare function createServer(options: CreateServerOptions): CreateServerResult;
57
+ //# sourceMappingURL=create-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../../src/server/create-server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAcH,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAM1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAkD7E"}