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,727 @@
1
+ /**
2
+ * MCP Definition Types
3
+ *
4
+ * Unified type definitions for MCP tools, resources, and prompts.
5
+ * These are the canonical types used throughout the framework.
6
+ *
7
+ * DESIGN PRINCIPLES:
8
+ * - User-friendly naming (no I-prefix, 'input' instead of 'schema')
9
+ * - Single source of truth for each concept
10
+ * - Compatible with MCP SDK types
11
+ *
12
+ * @module mcp/types/definition
13
+ */
14
+ import type { CallToolResult, GetTaskResult } from "@modelcontextprotocol/sdk/types.js";
15
+ import type { z } from "zod";
16
+ import type { ToolContext, TaskCreateContext, TaskOperationContext } from "./context.js";
17
+ import type { CreateTaskResult } from "@modelcontextprotocol/sdk/experimental/tasks/types.js";
18
+ /**
19
+ * Result of an autocompletion callback.
20
+ *
21
+ * @see https://modelcontextprotocol.io/specification/2025-03-26/server/utilities/completion
22
+ */
23
+ export interface CompletionResult {
24
+ /** Suggested completion values */
25
+ readonly values: string[];
26
+ /** Total number of available completions (for pagination hints) */
27
+ readonly total?: number;
28
+ /** Whether more completions are available beyond the returned values */
29
+ readonly hasMore?: boolean;
30
+ }
31
+ /**
32
+ * Callback for providing autocompletion suggestions.
33
+ *
34
+ * Used on resource templates (for URI template variables) and prompts
35
+ * (for prompt arguments). The callback is invoked when a client sends
36
+ * a `completion/complete` request.
37
+ *
38
+ * @param argName - Name of the argument/variable being completed
39
+ * @param argValue - Current partial value typed by the user
40
+ * @returns Completion suggestions
41
+ */
42
+ export type CompletionCallback = (argName: string, argValue: string) => CompletionResult | Promise<CompletionResult>;
43
+ /**
44
+ * Tool annotations providing behavioral hints per MCP specification.
45
+ *
46
+ * These help clients understand tool characteristics without parsing descriptions.
47
+ * All properties are optional and represent hints — not guarantees.
48
+ *
49
+ * @see https://modelcontextprotocol.io/specification/2025-03-26/server/tools#annotations
50
+ */
51
+ export interface ToolAnnotations {
52
+ /** Human-readable title for display purposes */
53
+ readonly title?: string;
54
+ /** If true, the tool does not modify any external state (default assumption: false) */
55
+ readonly readOnlyHint?: boolean;
56
+ /** If true, the tool may perform destructive operations (default assumption: true) */
57
+ readonly destructiveHint?: boolean;
58
+ /** If true, calling the tool repeatedly with the same args has no additional effect */
59
+ readonly idempotentHint?: boolean;
60
+ /** If true, the tool interacts with external entities beyond its own system */
61
+ readonly openWorldHint?: boolean;
62
+ }
63
+ /**
64
+ * Tool definition - the canonical type for MCP tools.
65
+ *
66
+ * This is the ONLY type needed for defining and registering tools.
67
+ * Used by `defineTool()`, `ToolRegistry`, and `McpServerBuilder`.
68
+ *
69
+ * @typeParam TInput - Zod schema type for input validation (default: any Zod type)
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const greetTool = defineTool({
74
+ * name: 'greet',
75
+ * description: 'Greet a user by name',
76
+ * input: z.object({ name: z.string() }),
77
+ * handler: async ({ name }, ctx) => text(`Hello, ${name}!`),
78
+ * });
79
+ * ```
80
+ */
81
+ export interface ToolDefinition<TInput extends z.ZodTypeAny = z.ZodTypeAny> {
82
+ /** Unique tool name (e.g., 'greet', 'list_servers') */
83
+ readonly name: string;
84
+ /** Human-readable description shown to LLM */
85
+ readonly description: string;
86
+ /** Zod schema for input validation */
87
+ readonly input: TInput;
88
+ /**
89
+ * Optional annotations providing hints about tool behavior.
90
+ *
91
+ * Per MCP specification, annotations help clients understand tool characteristics
92
+ * without needing to parse the description. These are hints, not guarantees.
93
+ *
94
+ * @see https://modelcontextprotocol.io/specification/2025-03-26/server/tools#annotations
95
+ */
96
+ readonly annotations?: ToolAnnotations;
97
+ /**
98
+ * Optional metadata passed through to the MCP SDK tool registration.
99
+ *
100
+ * This is a generic passthrough for protocol-level metadata like
101
+ * `{ ui: { resourceUri: 'app://my-app' } }` used by MCP Apps.
102
+ * The framework does not interpret `_meta` — it is forwarded as-is.
103
+ */
104
+ readonly _meta?: Record<string, unknown>;
105
+ /**
106
+ * Scopes required to execute this tool (RBAC).
107
+ *
108
+ * When set, the framework checks `authInfo.scopes` BEFORE
109
+ * the handler executes. All listed scopes must be present (AND logic).
110
+ * If the check fails, a 403 Forbidden error is returned.
111
+ *
112
+ * Omit or set to `undefined` for tools accessible to any authenticated user.
113
+ */
114
+ readonly requiredScopes?: readonly string[];
115
+ /**
116
+ * Tool handler function.
117
+ *
118
+ * @param args - Validated input (typed from Zod schema)
119
+ * @param context - Execution context with progress reporter, abort signal
120
+ * @returns MCP CallToolResult (use response helpers: text(), json(), error())
121
+ */
122
+ handler: (args: z.infer<TInput>, context: ToolContext) => Promise<CallToolResult>;
123
+ }
124
+ /**
125
+ * Tool provider interface for registries and plugins.
126
+ *
127
+ * Provides access to all registered tools.
128
+ */
129
+ export interface ToolProvider {
130
+ /** Get all registered tools */
131
+ getTools(): ReadonlyArray<ToolDefinition>;
132
+ }
133
+ /**
134
+ * Base resource definition - shared properties for all resources.
135
+ *
136
+ * This is the common base for both static resources and resource templates.
137
+ * Provides consistent naming, description, and MIME type handling.
138
+ */
139
+ export interface BaseResourceDefinition {
140
+ /** Unique resource name for identification */
141
+ readonly name: string;
142
+ /** Human-readable description shown to LLM */
143
+ readonly description: string;
144
+ /** MIME type of the content (optional) */
145
+ readonly mimeType?: string;
146
+ }
147
+ /**
148
+ * Static resource definition - for fixed URI resources.
149
+ *
150
+ * Use this for resources with a fixed URI that don't require parameters.
151
+ * For dynamic URIs with parameters, use `ResourceTemplateDefinition`.
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const configResource = defineResource({
156
+ * name: 'app-config',
157
+ * description: 'Application configuration',
158
+ * uri: 'myapp://config/main',
159
+ * mimeType: 'application/json',
160
+ * read: async () => JSON.stringify({ version: '1.0.0' }),
161
+ * });
162
+ * ```
163
+ */
164
+ export interface ResourceStaticDefinition extends BaseResourceDefinition {
165
+ /** Resource URI (e.g., 'myapp://config/main') */
166
+ readonly uri: string;
167
+ /**
168
+ * Scopes required to read this resource (RBAC).
169
+ *
170
+ * When set, the framework checks `authInfo.scopes` BEFORE
171
+ * the read handler executes. All listed scopes must be present (AND logic).
172
+ * If the check fails, a 403 Forbidden error is returned.
173
+ *
174
+ * Omit or set to `undefined` for resources accessible to any authenticated user.
175
+ */
176
+ readonly requiredScopes?: readonly string[];
177
+ /**
178
+ * Content provider function.
179
+ *
180
+ * @returns String content or Uint8Array for binary data
181
+ */
182
+ read: () => Promise<string | Uint8Array>;
183
+ }
184
+ /**
185
+ * Resource template definition - for dynamic URIs (RFC 6570).
186
+ *
187
+ * Templates allow LLMs to access content with variable parameters.
188
+ * Use Zod schemas for type-safe parameter handling.
189
+ *
190
+ * @typeParam TInput - Zod object schema for parameter validation (default: z.AnyZodObject)
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * // With typed parameters
195
+ * const logResource = defineResourceTemplate({
196
+ * name: 'log-viewer',
197
+ * description: 'View logs by ID',
198
+ * uriTemplate: 'myapp://logs/{logId}',
199
+ * mimeType: 'text/plain',
200
+ * input: z.object({
201
+ * logId: z.string().describe('Log identifier'),
202
+ * }),
203
+ * read: async ({ logId }) => fetchLog(logId),
204
+ * list: async () => [
205
+ * { uri: 'myapp://logs/1', name: 'Log 1' },
206
+ * ],
207
+ * });
208
+ *
209
+ * // Without schema (params are Record<string, string>)
210
+ * const simpleResource = defineResourceTemplate({
211
+ * name: 'simple',
212
+ * description: 'Simple item lookup',
213
+ * uriTemplate: 'myapp://item/{id}',
214
+ * read: async (params) => getItem(params.id),
215
+ * });
216
+ * ```
217
+ */
218
+ export interface ResourceTemplateDefinition<TInput extends z.AnyZodObject = z.AnyZodObject> extends BaseResourceDefinition {
219
+ /** URI template pattern using RFC 6570 (e.g., 'myapp://logs/{logId}') */
220
+ readonly uriTemplate: string;
221
+ /**
222
+ * Zod object schema for parameter validation.
223
+ *
224
+ * When provided, parameters extracted from the URI are validated
225
+ * against this schema before being passed to `read()`.
226
+ *
227
+ * @example
228
+ * ```typescript
229
+ * input: z.object({
230
+ * logId: z.string().describe('Log identifier'),
231
+ * format: z.enum(['json', 'text']).optional(),
232
+ * })
233
+ * ```
234
+ */
235
+ readonly input?: TInput;
236
+ /**
237
+ * Content provider function with template parameters.
238
+ *
239
+ * @param params - Parameters extracted from URI template (typed if input schema provided)
240
+ * @returns String content or Uint8Array for binary data
241
+ */
242
+ read: (params: z.infer<TInput>) => Promise<string | Uint8Array>;
243
+ /**
244
+ * Optional function to enumerate available resources.
245
+ *
246
+ * When provided, this enables LLMs to discover what resources are available
247
+ * for this template. Useful for dynamic resource discovery.
248
+ */
249
+ list?: () => Promise<Array<{
250
+ uri: string;
251
+ name?: string;
252
+ description?: string;
253
+ mimeType?: string;
254
+ }>>;
255
+ /**
256
+ * Optional callback for argument autocompletion.
257
+ *
258
+ * When provided, enables clients to request autocompletion suggestions
259
+ * for URI template variables. The callback receives the variable name
260
+ * and current partial value, and returns matching suggestions.
261
+ *
262
+ * The SDK automatically registers the `completions` capability when
263
+ * any resource template provides a `complete` callback.
264
+ *
265
+ * @param argName - The URI template variable name being completed
266
+ * @param argValue - The current partial value typed by the user
267
+ * @returns Completion suggestions
268
+ *
269
+ * @example
270
+ * ```typescript
271
+ * defineResourceTemplate({
272
+ * name: 'note',
273
+ * uriTemplate: 'notes://note/{noteId}',
274
+ * read: async ({ noteId }) => fetchNote(noteId),
275
+ * complete: async (argName, argValue) => ({
276
+ * values: allNoteIds.filter(id => id.startsWith(argValue)),
277
+ * }),
278
+ * });
279
+ * ```
280
+ */
281
+ complete?: CompletionCallback;
282
+ /**
283
+ * Scopes required to read this resource template (RBAC).
284
+ *
285
+ * When set, the framework checks `authInfo.scopes` BEFORE
286
+ * the read handler executes. All listed scopes must be present (AND logic).
287
+ * If the check fails, a 403 Forbidden error is returned.
288
+ *
289
+ * Omit or set to `undefined` for resources accessible to any authenticated user.
290
+ */
291
+ readonly requiredScopes?: readonly string[];
292
+ }
293
+ /**
294
+ * Union type for any resource definition.
295
+ *
296
+ * Use this when accepting either static resources or templates.
297
+ * Use type guards `isStaticResource()` / `isResourceTemplate()` to narrow.
298
+ *
299
+ * @example
300
+ * ```typescript
301
+ * function processResource(resource: ResourceDefinition) {
302
+ * if (isStaticResource(resource)) {
303
+ * // TypeScript knows: resource.uri, resource.read()
304
+ * } else {
305
+ * // TypeScript knows: resource.uriTemplate, resource.read(params)
306
+ * }
307
+ * }
308
+ * ```
309
+ */
310
+ export type ResourceDefinition<TInput extends z.AnyZodObject = z.AnyZodObject> = ResourceStaticDefinition | ResourceTemplateDefinition<TInput>;
311
+ /**
312
+ * Type guard for static resources.
313
+ */
314
+ export declare function isStaticResource(resource: ResourceDefinition): resource is ResourceStaticDefinition;
315
+ /**
316
+ * Type guard for resource templates.
317
+ */
318
+ export declare function isResourceTemplate<TInput extends z.AnyZodObject = z.AnyZodObject>(resource: ResourceDefinition<TInput>): resource is ResourceTemplateDefinition<TInput>;
319
+ /**
320
+ * Resource content types for MCP protocol response.
321
+ */
322
+ export interface TextResourceContent {
323
+ readonly uri: string;
324
+ readonly mimeType?: string;
325
+ readonly text: string;
326
+ }
327
+ export interface BlobResourceContent {
328
+ readonly uri: string;
329
+ readonly mimeType?: string;
330
+ /** Base64 encoded binary content */
331
+ readonly blob: string;
332
+ }
333
+ export type ResourceContent = TextResourceContent | BlobResourceContent;
334
+ /**
335
+ * Resource provider interface for registries and plugins.
336
+ *
337
+ * Provides access to static resources and resource templates
338
+ * for MCP `resources/list` and `resources/read` requests.
339
+ *
340
+ * This combined provider handles both resource types for convenience.
341
+ * Use `isStaticResource()` / `isResourceTemplate()` type guards when needed.
342
+ */
343
+ export interface ResourceProvider {
344
+ /** Get all static resources */
345
+ getResources(): ReadonlyArray<ResourceStaticDefinition>;
346
+ /** Get all resource templates */
347
+ getTemplates(): ReadonlyArray<ResourceTemplateDefinition>;
348
+ /** Check if provider has any resources (static or templates) */
349
+ hasResources(): boolean;
350
+ }
351
+ /**
352
+ * Prompt message role.
353
+ */
354
+ export type PromptRole = "user" | "assistant";
355
+ /**
356
+ * Prompt message in generated prompt output.
357
+ */
358
+ export interface PromptMessage {
359
+ /** Message role */
360
+ readonly role: PromptRole;
361
+ /** Message content */
362
+ readonly content: string;
363
+ }
364
+ /**
365
+ * Prompt definition - the canonical type for MCP prompts.
366
+ *
367
+ * Prompts generate pre-defined message sequences that guide LLM behavior.
368
+ * Use Zod schemas for type-safe argument handling.
369
+ *
370
+ * @typeParam TInput - Zod object schema for input validation (default: z.ZodObject<{}>)
371
+ *
372
+ * @example
373
+ * ```typescript
374
+ * // With typed arguments
375
+ * const explainPrompt = definePrompt({
376
+ * name: 'explain-concept',
377
+ * description: 'Explain a technical concept',
378
+ * input: z.object({
379
+ * topic: z.string().describe('Topic to explain'),
380
+ * level: z.enum(['beginner', 'expert']).default('beginner'),
381
+ * }),
382
+ * generate: async ({ topic, level }) => [
383
+ * { role: 'user', content: `Explain ${topic} at ${level} level.` },
384
+ * ],
385
+ * });
386
+ *
387
+ * // Without arguments
388
+ * const greetingPrompt = definePrompt({
389
+ * name: 'greeting',
390
+ * description: 'Standard greeting',
391
+ * generate: async () => [
392
+ * { role: 'user', content: 'Hello!' },
393
+ * ],
394
+ * });
395
+ * ```
396
+ */
397
+ export interface PromptDefinition<TInput extends z.AnyZodObject = z.AnyZodObject> {
398
+ /** Unique prompt name */
399
+ readonly name: string;
400
+ /** Human-readable description shown to LLM */
401
+ readonly description: string;
402
+ /**
403
+ * Zod object schema for argument validation.
404
+ *
405
+ * The SDK automatically extracts argument names, descriptions, and
406
+ * required status from the Zod schema. Use `.describe()` on fields
407
+ * to provide human-readable descriptions.
408
+ *
409
+ * @example
410
+ * ```typescript
411
+ * input: z.object({
412
+ * topic: z.string().describe('The topic to explain'),
413
+ * depth: z.enum(['brief', 'detailed']).optional().describe('Level of detail'),
414
+ * })
415
+ * ```
416
+ */
417
+ readonly input?: TInput;
418
+ /**
419
+ * Generate prompt messages.
420
+ *
421
+ * @param args - Validated arguments (typed from Zod schema)
422
+ * @returns Array of messages
423
+ */
424
+ generate: (args: z.infer<TInput>) => Promise<ReadonlyArray<PromptMessage>>;
425
+ /**
426
+ * Optional callback for argument autocompletion.
427
+ *
428
+ * When provided, enables clients to request autocompletion suggestions
429
+ * for prompt arguments. The callback receives the argument name
430
+ * and current partial value, and returns matching suggestions.
431
+ *
432
+ * Requires `input` schema to be defined — prompt arguments are derived
433
+ * from the Zod schema fields. The SDK wraps each schema field with
434
+ * `completable()` internally.
435
+ *
436
+ * @param argName - The prompt argument name being completed
437
+ * @param argValue - The current partial value typed by the user
438
+ * @returns Completion suggestions
439
+ *
440
+ * @example
441
+ * ```typescript
442
+ * definePrompt({
443
+ * name: 'summarize',
444
+ * input: z.object({ style: z.string() }),
445
+ * generate: async ({ style }) => [{ role: 'user', content: `Summarize in ${style}` }],
446
+ * complete: async (argName, argValue) => ({
447
+ * values: ['bullet-points', 'paragraph', 'tldr'].filter(s => s.startsWith(argValue)),
448
+ * }),
449
+ * });
450
+ * ```
451
+ */
452
+ complete?: CompletionCallback;
453
+ /**
454
+ * Scopes required to get this prompt (RBAC).
455
+ *
456
+ * When set, the framework checks `authInfo.scopes` BEFORE
457
+ * the generate handler executes. All listed scopes must be present (AND logic).
458
+ * If the check fails, a 403 Forbidden error is returned.
459
+ *
460
+ * Omit or set to `undefined` for prompts accessible to any authenticated user.
461
+ */
462
+ readonly requiredScopes?: readonly string[];
463
+ }
464
+ /**
465
+ * Prompt provider interface for registries and plugins.
466
+ *
467
+ * Provides access to prompts for MCP `prompts/list`
468
+ * and `prompts/get` requests.
469
+ */
470
+ export interface PromptProvider {
471
+ /** Get all prompts */
472
+ getPrompts(): ReadonlyArray<PromptDefinition>;
473
+ /** Check if provider has any prompts */
474
+ hasPrompts(): boolean;
475
+ }
476
+ /**
477
+ * Resource definition embedded within an {@link AppDefinition}.
478
+ *
479
+ * Declares the UI resource that backs the MCP App. The resource is
480
+ * registered automatically when `defineApp()` is called.
481
+ */
482
+ export interface AppResourceDefinition {
483
+ /** Static resource URI — must use `ui://` scheme (e.g., 'ui://calculator') */
484
+ readonly uri: string;
485
+ /** Optional resource name (defaults to app name) */
486
+ readonly name?: string;
487
+ /** Optional resource description (defaults to app description) */
488
+ readonly description?: string;
489
+ /** MIME type of the resource content (default: 'text/html;profile=mcp-app') */
490
+ readonly mimeType?: string;
491
+ /**
492
+ * Read the resource content.
493
+ *
494
+ * @returns Resource content as string (text) or Uint8Array (binary)
495
+ */
496
+ read: () => string | Uint8Array | Promise<string | Uint8Array>;
497
+ }
498
+ /**
499
+ * Definition for an MCP App — a tool linked to a UI resource.
500
+ *
501
+ * MCP Apps combine a tool with a resource to create interactive
502
+ * experiences. The tool's `_meta.ui.resourceUri` links to the
503
+ * resource, and MCP clients use this to render the UI.
504
+ *
505
+ * `defineApp()` internally creates both a `defineTool()` and a
506
+ * `defineResource()`, auto-registering them in the global registries.
507
+ *
508
+ * @example
509
+ * ```typescript
510
+ * import { defineApp, text, z } from 'mcp-server-framework';
511
+ *
512
+ * const calculator = defineApp({
513
+ * name: 'calculator',
514
+ * description: 'An interactive calculator app',
515
+ * resource: {
516
+ * uri: 'ui://calculator',
517
+ * mimeType: 'text/html',
518
+ * read: async () => '<html>...calculator UI...</html>',
519
+ * },
520
+ * input: z.object({ expression: z.string() }),
521
+ * handler: async ({ expression }) => text(String(eval(expression))),
522
+ * });
523
+ * ```
524
+ */
525
+ export interface AppDefinition<TInput extends z.ZodTypeAny = z.ZodTypeAny> {
526
+ /** Unique app/tool name */
527
+ readonly name: string;
528
+ /** Human-readable description */
529
+ readonly description: string;
530
+ /** Resource definition for the app's UI */
531
+ readonly resource: AppResourceDefinition;
532
+ /** Zod schema for tool input validation */
533
+ readonly input: TInput;
534
+ /**
535
+ * Tool handler function.
536
+ *
537
+ * @param args - Validated input (typed from Zod schema)
538
+ * @param context - Execution context with progress reporter, abort signal
539
+ * @returns MCP CallToolResult (use response helpers: text(), json(), error())
540
+ */
541
+ handler: (args: z.infer<TInput>, context: ToolContext) => Promise<CallToolResult>;
542
+ /** Optional tool annotations */
543
+ readonly annotations?: ToolAnnotations;
544
+ /**
545
+ * Additional `_meta` merged with the auto-generated `ui.resourceUri`.
546
+ * The `ui.resourceUri` key is always set automatically from the resource URI.
547
+ */
548
+ readonly _meta?: Record<string, unknown>;
549
+ /**
550
+ * Scopes required to execute this app's tool (RBAC).
551
+ *
552
+ * Passed through to the internal `defineTool()` call.
553
+ * All listed scopes must be present (AND logic).
554
+ */
555
+ readonly requiredScopes?: readonly string[];
556
+ }
557
+ /**
558
+ * Task support level for a task-enabled tool.
559
+ *
560
+ * - `'optional'` — Tool can be called normally or as a task
561
+ * - `'required'` — Tool MUST be called as a task (async execution only)
562
+ *
563
+ * Note: `'forbidden'` is not valid for task tools — use a regular
564
+ * `defineTool()` for tools that never support task execution.
565
+ *
566
+ * @experimental MCP Tasks is an experimental SDK feature
567
+ */
568
+ export type TaskSupport = "optional" | "required";
569
+ /**
570
+ * Handler interface for task-based tool execution.
571
+ *
572
+ * Task tools use a three-method handler instead of a single callback,
573
+ * enabling long-running operations with a create → poll → result lifecycle:
574
+ *
575
+ * 1. **`createTask`** — Initiate the task, return immediately with a task ID
576
+ * 2. **`getTask`** — Return current task status (clients poll this)
577
+ * 3. **`getTaskResult`** — Return the final result when the task completes
578
+ *
579
+ * @typeParam TInput - Zod schema type for input validation (inferred)
580
+ *
581
+ * @experimental MCP Tasks is an experimental SDK feature
582
+ *
583
+ * @example
584
+ * ```typescript
585
+ * const handler: TaskToolHandler<typeof inputSchema> = {
586
+ * createTask: async (args, ctx) => {
587
+ * const task = await ctx.taskStore.createTask({});
588
+ * startBackgroundWork(task.taskId, args);
589
+ * return { task };
590
+ * },
591
+ * getTask: async (_args, ctx) => {
592
+ * return ctx.taskStore.getTask(ctx.taskId);
593
+ * },
594
+ * getTaskResult: async (_args, ctx) => {
595
+ * return ctx.taskStore.getTaskResult(ctx.taskId);
596
+ * },
597
+ * };
598
+ * ```
599
+ */
600
+ export interface TaskToolHandler<TInput extends z.ZodTypeAny = z.ZodTypeAny> {
601
+ /**
602
+ * Create and start a new task.
603
+ *
604
+ * Called when the client issues a `tools/call` with task parameters.
605
+ * Should initiate the background work and return immediately.
606
+ *
607
+ * @param args - Validated input (typed from Zod schema)
608
+ * @param context - Task creation context with `taskStore`
609
+ * @returns Object containing the created task
610
+ */
611
+ createTask: (args: z.infer<TInput>, context: TaskCreateContext) => Promise<CreateTaskResult>;
612
+ /**
613
+ * Get the current status of a task.
614
+ *
615
+ * Called when the client polls via `tasks/get`.
616
+ * Return the task with its current status.
617
+ *
618
+ * @param args - Original tool input args
619
+ * @param context - Task operation context with `taskId` and `taskStore`
620
+ * @returns Task status result
621
+ */
622
+ getTask: (args: z.infer<TInput>, context: TaskOperationContext) => Promise<GetTaskResult>;
623
+ /**
624
+ * Get the final result of a completed task.
625
+ *
626
+ * Called when the client requests the result via `tasks/result`.
627
+ * Should return the tool's final output.
628
+ *
629
+ * @param args - Original tool input args
630
+ * @param context - Task operation context with `taskId` and `taskStore`
631
+ * @returns MCP CallToolResult (use response helpers: text(), json(), error())
632
+ */
633
+ getTaskResult: (args: z.infer<TInput>, context: TaskOperationContext) => Promise<CallToolResult>;
634
+ }
635
+ /**
636
+ * Task tool definition — a tool with asynchronous task execution support.
637
+ *
638
+ * Task tools enable long-running operations that report progress asynchronously.
639
+ * Instead of blocking the tool call until completion, the client receives a task ID
640
+ * and can poll for status updates and results.
641
+ *
642
+ * Registered via `defineTask()` which auto-registers in `globalTaskToolRegistry`.
643
+ * The framework uses the SDK's `experimental.tasks.registerToolTask()` internally.
644
+ *
645
+ * @typeParam TInput - Zod schema type for input validation (default: any Zod type)
646
+ *
647
+ * @experimental MCP Tasks is an experimental SDK feature
648
+ *
649
+ * @example
650
+ * ```typescript
651
+ * import { defineTask, text, z } from 'mcp-server-framework';
652
+ *
653
+ * export const longRunningTool = defineTask({
654
+ * name: 'long_computation',
655
+ * description: 'Perform a long computation',
656
+ * input: z.object({ data: z.string() }),
657
+ * taskSupport: 'required',
658
+ * taskHandler: {
659
+ * createTask: async (args, ctx) => {
660
+ * const task = await ctx.taskStore.createTask({ ttl: 300_000 });
661
+ * startBackgroundWork(task.taskId, args);
662
+ * return { task };
663
+ * },
664
+ * getTask: async (_args, ctx) => ctx.taskStore.getTask(ctx.taskId),
665
+ * getTaskResult: async (_args, ctx) => ctx.taskStore.getTaskResult(ctx.taskId),
666
+ * },
667
+ * });
668
+ * ```
669
+ */
670
+ export interface TaskToolDefinition<TInput extends z.ZodTypeAny = z.ZodTypeAny> {
671
+ /** Unique tool name (e.g., 'long_computation') */
672
+ readonly name: string;
673
+ /** Human-readable description shown to LLM */
674
+ readonly description: string;
675
+ /** Zod schema for input validation */
676
+ readonly input: TInput;
677
+ /**
678
+ * Task support level.
679
+ *
680
+ * - `'optional'` — Tool can be called normally or as a task
681
+ * - `'required'` — Tool MUST be called as a task
682
+ *
683
+ * @default 'required'
684
+ */
685
+ readonly taskSupport?: TaskSupport;
686
+ /**
687
+ * Task handler with create/get/getResult methods.
688
+ *
689
+ * These three methods implement the task lifecycle:
690
+ * 1. `createTask` — Start the background work
691
+ * 2. `getTask` — Report current status
692
+ * 3. `getTaskResult` — Return the final result
693
+ */
694
+ readonly taskHandler: TaskToolHandler<TInput>;
695
+ /**
696
+ * Optional annotations providing hints about tool behavior.
697
+ *
698
+ * @see ToolAnnotations
699
+ */
700
+ readonly annotations?: ToolAnnotations;
701
+ /**
702
+ * Optional metadata passed through to the MCP SDK.
703
+ */
704
+ readonly _meta?: Record<string, unknown>;
705
+ /**
706
+ * Scopes required to execute this task tool (RBAC).
707
+ *
708
+ * When set, the framework checks `authInfo.scopes` BEFORE
709
+ * the task handler executes. All listed scopes must be present (AND logic).
710
+ * If the check fails, a 403 Forbidden error is returned.
711
+ *
712
+ * Omit or set to `undefined` for task tools accessible to any authenticated user.
713
+ */
714
+ readonly requiredScopes?: readonly string[];
715
+ }
716
+ /**
717
+ * Task tool provider interface for registries and plugins.
718
+ *
719
+ * Provides access to all registered task tools.
720
+ *
721
+ * @experimental MCP Tasks is an experimental SDK feature
722
+ */
723
+ export interface TaskToolProvider {
724
+ /** Get all registered task tools */
725
+ getTaskTools(): ReadonlyArray<TaskToolDefinition>;
726
+ }
727
+ //# sourceMappingURL=definition.d.ts.map