@rekog/mcp-nest 1.9.10 → 2.0.0-alpha.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 (364) hide show
  1. package/README.md +76 -29
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +0 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/mcp/decorators/constants.d.ts +1 -0
  7. package/dist/mcp/decorators/constants.d.ts.map +1 -1
  8. package/dist/mcp/decorators/constants.js +2 -1
  9. package/dist/mcp/decorators/constants.js.map +1 -1
  10. package/dist/mcp/decorators/index.d.ts +3 -1
  11. package/dist/mcp/decorators/index.d.ts.map +1 -1
  12. package/dist/mcp/decorators/index.js +3 -1
  13. package/dist/mcp/decorators/index.js.map +1 -1
  14. package/dist/mcp/decorators/mcp-controller.decorator.d.ts +6 -0
  15. package/dist/mcp/decorators/mcp-controller.decorator.d.ts.map +1 -0
  16. package/dist/mcp/decorators/mcp-controller.decorator.js +43 -0
  17. package/dist/mcp/decorators/mcp-controller.decorator.js.map +1 -0
  18. package/dist/mcp/decorators/mcp-message-pattern.d.ts +3 -0
  19. package/dist/mcp/decorators/mcp-message-pattern.d.ts.map +1 -0
  20. package/dist/mcp/decorators/mcp-message-pattern.js +13 -0
  21. package/dist/mcp/decorators/mcp-message-pattern.js.map +1 -0
  22. package/dist/mcp/decorators/prompt.decorator.d.ts +1 -1
  23. package/dist/mcp/decorators/prompt.decorator.d.ts.map +1 -1
  24. package/dist/mcp/decorators/prompt.decorator.js +2 -1
  25. package/dist/mcp/decorators/prompt.decorator.js.map +1 -1
  26. package/dist/mcp/decorators/public.decorator.js.map +1 -1
  27. package/dist/mcp/decorators/raw-request.decorator.d.ts +2 -0
  28. package/dist/mcp/decorators/raw-request.decorator.d.ts.map +1 -0
  29. package/dist/mcp/decorators/raw-request.decorator.js +6 -0
  30. package/dist/mcp/decorators/raw-request.decorator.js.map +1 -0
  31. package/dist/mcp/decorators/resource-template.decorator.d.ts +1 -1
  32. package/dist/mcp/decorators/resource-template.decorator.d.ts.map +1 -1
  33. package/dist/mcp/decorators/resource-template.decorator.js +2 -1
  34. package/dist/mcp/decorators/resource-template.decorator.js.map +1 -1
  35. package/dist/mcp/decorators/resource.decorator.d.ts +1 -1
  36. package/dist/mcp/decorators/resource.decorator.d.ts.map +1 -1
  37. package/dist/mcp/decorators/resource.decorator.js +2 -1
  38. package/dist/mcp/decorators/resource.decorator.js.map +1 -1
  39. package/dist/mcp/decorators/tool.decorator.d.ts +1 -3
  40. package/dist/mcp/decorators/tool.decorator.d.ts.map +1 -1
  41. package/dist/mcp/decorators/tool.decorator.js +2 -1
  42. package/dist/mcp/decorators/tool.decorator.js.map +1 -1
  43. package/dist/mcp/filters/mcp-exception.filter.d.ts +6 -0
  44. package/dist/mcp/filters/mcp-exception.filter.d.ts.map +1 -0
  45. package/dist/mcp/filters/mcp-exception.filter.js +26 -0
  46. package/dist/mcp/filters/mcp-exception.filter.js.map +1 -0
  47. package/dist/mcp/index.d.ts +11 -7
  48. package/dist/mcp/index.d.ts.map +1 -1
  49. package/dist/mcp/index.js +11 -7
  50. package/dist/mcp/index.js.map +1 -1
  51. package/dist/mcp/interfaces/authenticated-user.interface.d.ts +9 -0
  52. package/dist/mcp/interfaces/authenticated-user.interface.d.ts.map +1 -0
  53. package/dist/{authz/interfaces/request-with-user.js → mcp/interfaces/authenticated-user.interface.js} +1 -1
  54. package/dist/mcp/interfaces/authenticated-user.interface.js.map +1 -0
  55. package/dist/mcp/interfaces/dynamic-prompt.interface.d.ts +1 -1
  56. package/dist/mcp/interfaces/dynamic-prompt.interface.d.ts.map +1 -1
  57. package/dist/mcp/interfaces/dynamic-prompt.interface.js.map +1 -1
  58. package/dist/mcp/interfaces/dynamic-resource.interface.d.ts +1 -1
  59. package/dist/mcp/interfaces/dynamic-resource.interface.d.ts.map +1 -1
  60. package/dist/mcp/interfaces/dynamic-resource.interface.js.map +1 -1
  61. package/dist/mcp/interfaces/dynamic-tool.interface.d.ts +1 -1
  62. package/dist/mcp/interfaces/dynamic-tool.interface.d.ts.map +1 -1
  63. package/dist/mcp/interfaces/dynamic-tool.interface.js.map +1 -1
  64. package/dist/mcp/interfaces/index.d.ts +2 -2
  65. package/dist/mcp/interfaces/index.d.ts.map +1 -1
  66. package/dist/mcp/interfaces/index.js +0 -3
  67. package/dist/mcp/interfaces/index.js.map +1 -1
  68. package/dist/mcp/services/tool-authorization.service.d.ts +7 -5
  69. package/dist/mcp/services/tool-authorization.service.d.ts.map +1 -1
  70. package/dist/mcp/services/tool-authorization.service.js +9 -6
  71. package/dist/mcp/services/tool-authorization.service.js.map +1 -1
  72. package/dist/mcp/transport/mcp-context.d.ts +34 -0
  73. package/dist/mcp/transport/mcp-context.d.ts.map +1 -0
  74. package/dist/mcp/transport/mcp-context.js +74 -0
  75. package/dist/mcp/transport/mcp-context.js.map +1 -0
  76. package/dist/mcp/transport/mcp-http-handler.d.ts +7 -0
  77. package/dist/mcp/transport/mcp-http-handler.d.ts.map +1 -0
  78. package/dist/mcp/transport/mcp-http-handler.js +5 -0
  79. package/dist/mcp/transport/mcp-http-handler.js.map +1 -0
  80. package/dist/mcp/transport/mcp-server-options.interface.d.ts +23 -0
  81. package/dist/mcp/transport/mcp-server-options.interface.d.ts.map +1 -0
  82. package/dist/{authz/providers/oauth-provider.interface.js → mcp/transport/mcp-server-options.interface.js} +1 -1
  83. package/dist/mcp/transport/mcp-server-options.interface.js.map +1 -0
  84. package/dist/mcp/transport/mcp-transport.constants.d.ts +19 -0
  85. package/dist/mcp/transport/mcp-transport.constants.d.ts.map +1 -0
  86. package/dist/mcp/transport/mcp-transport.constants.js +21 -0
  87. package/dist/mcp/transport/mcp-transport.constants.js.map +1 -0
  88. package/dist/mcp/transport/mcp-transport.interface.d.ts +17 -0
  89. package/dist/mcp/transport/mcp-transport.interface.d.ts.map +1 -0
  90. package/dist/{authz/interfaces/oauth-common.interface.js → mcp/transport/mcp-transport.interface.js} +1 -1
  91. package/dist/mcp/transport/mcp-transport.interface.js.map +1 -0
  92. package/dist/mcp/transport/mcp.strategy.d.ts +56 -0
  93. package/dist/mcp/transport/mcp.strategy.d.ts.map +1 -0
  94. package/dist/mcp/transport/mcp.strategy.js +446 -0
  95. package/dist/mcp/transport/mcp.strategy.js.map +1 -0
  96. package/dist/mcp/transport/resource-matcher.d.ts +13 -0
  97. package/dist/mcp/transport/resource-matcher.d.ts.map +1 -0
  98. package/dist/mcp/transport/resource-matcher.js +83 -0
  99. package/dist/mcp/transport/resource-matcher.js.map +1 -0
  100. package/dist/mcp/transport/streamable-http.controller.d.ts +16 -0
  101. package/dist/mcp/transport/streamable-http.controller.d.ts.map +1 -0
  102. package/dist/mcp/transport/streamable-http.controller.js +98 -0
  103. package/dist/mcp/transport/streamable-http.controller.js.map +1 -0
  104. package/dist/mcp/transport/transports/index.d.ts +3 -0
  105. package/dist/mcp/transport/transports/index.d.ts.map +1 -0
  106. package/dist/{authz → mcp/transport/transports}/index.js +2 -10
  107. package/dist/mcp/transport/transports/index.js.map +1 -0
  108. package/dist/mcp/transport/transports/read-body.d.ts +3 -0
  109. package/dist/mcp/transport/transports/read-body.d.ts.map +1 -0
  110. package/dist/mcp/transport/transports/read-body.js +32 -0
  111. package/dist/mcp/transport/transports/read-body.js.map +1 -0
  112. package/dist/mcp/transport/transports/stdio.transport.d.ts +9 -0
  113. package/dist/mcp/transport/transports/stdio.transport.d.ts.map +1 -0
  114. package/dist/mcp/transport/transports/stdio.transport.js +27 -0
  115. package/dist/mcp/transport/transports/stdio.transport.js.map +1 -0
  116. package/dist/mcp/transport/transports/streamable-http.transport.d.ts +33 -0
  117. package/dist/mcp/transport/transports/streamable-http.transport.d.ts.map +1 -0
  118. package/dist/mcp/transport/transports/streamable-http.transport.js +216 -0
  119. package/dist/mcp/transport/transports/streamable-http.transport.js.map +1 -0
  120. package/dist/mcp/utils/mcp-logger.factory.d.ts +6 -2
  121. package/dist/mcp/utils/mcp-logger.factory.d.ts.map +1 -1
  122. package/dist/mcp/utils/mcp-logger.factory.js.map +1 -1
  123. package/package.json +3 -66
  124. package/src/index.ts +0 -1
  125. package/src/mcp/decorators/constants.ts +1 -0
  126. package/src/mcp/decorators/index.ts +3 -1
  127. package/src/mcp/decorators/mcp-controller.decorator.ts +126 -0
  128. package/src/mcp/decorators/mcp-message-pattern.ts +38 -0
  129. package/src/mcp/decorators/prompt.decorator.ts +6 -2
  130. package/src/mcp/decorators/public.decorator.ts +3 -3
  131. package/src/mcp/decorators/raw-request.decorator.ts +32 -0
  132. package/src/mcp/decorators/resource-template.decorator.ts +6 -2
  133. package/src/mcp/decorators/resource.decorator.ts +6 -2
  134. package/src/mcp/decorators/tool.decorator.ts +6 -3
  135. package/src/mcp/filters/mcp-exception.filter.ts +47 -0
  136. package/src/mcp/index.ts +13 -7
  137. package/src/mcp/interfaces/authenticated-user.interface.ts +22 -0
  138. package/src/mcp/interfaces/dynamic-prompt.interface.ts +1 -1
  139. package/src/mcp/interfaces/dynamic-resource.interface.ts +1 -1
  140. package/src/mcp/interfaces/dynamic-tool.interface.ts +2 -2
  141. package/src/mcp/interfaces/index.ts +3 -7
  142. package/src/mcp/services/tool-authorization.service.ts +52 -72
  143. package/src/mcp/transport/mcp-context.ts +138 -0
  144. package/src/mcp/transport/mcp-http-handler.ts +32 -0
  145. package/src/mcp/transport/mcp-server-options.interface.ts +75 -0
  146. package/src/mcp/transport/mcp-transport.constants.ts +99 -0
  147. package/src/mcp/transport/mcp-transport.interface.ts +50 -0
  148. package/src/mcp/transport/mcp.strategy.ts +752 -0
  149. package/src/mcp/transport/resource-matcher.ts +107 -0
  150. package/src/mcp/transport/streamable-http.controller.ts +114 -0
  151. package/src/mcp/transport/transports/index.ts +2 -0
  152. package/src/mcp/transport/transports/read-body.ts +39 -0
  153. package/src/mcp/transport/transports/stdio.transport.ts +35 -0
  154. package/src/mcp/transport/transports/streamable-http.transport.ts +384 -0
  155. package/src/mcp/utils/mcp-logger.factory.spec.ts +8 -22
  156. package/src/mcp/utils/mcp-logger.factory.ts +13 -2
  157. package/dist/authz/guards/jwt-auth.guard.d.ts +0 -19
  158. package/dist/authz/guards/jwt-auth.guard.d.ts.map +0 -1
  159. package/dist/authz/guards/jwt-auth.guard.js +0 -108
  160. package/dist/authz/guards/jwt-auth.guard.js.map +0 -1
  161. package/dist/authz/index.d.ts +0 -11
  162. package/dist/authz/index.d.ts.map +0 -1
  163. package/dist/authz/index.js.map +0 -1
  164. package/dist/authz/interfaces/oauth-common.interface.d.ts +0 -21
  165. package/dist/authz/interfaces/oauth-common.interface.d.ts.map +0 -1
  166. package/dist/authz/interfaces/oauth-common.interface.js.map +0 -1
  167. package/dist/authz/interfaces/request-with-user.d.ts +0 -13
  168. package/dist/authz/interfaces/request-with-user.d.ts.map +0 -1
  169. package/dist/authz/interfaces/request-with-user.js.map +0 -1
  170. package/dist/authz/mcp-oauth.controller.d.ts +0 -81
  171. package/dist/authz/mcp-oauth.controller.d.ts.map +0 -1
  172. package/dist/authz/mcp-oauth.controller.js +0 -540
  173. package/dist/authz/mcp-oauth.controller.js.map +0 -1
  174. package/dist/authz/mcp-oauth.module.d.ts +0 -12
  175. package/dist/authz/mcp-oauth.module.d.ts.map +0 -1
  176. package/dist/authz/mcp-oauth.module.js +0 -271
  177. package/dist/authz/mcp-oauth.module.js.map +0 -1
  178. package/dist/authz/providers/azure-ad.provider.d.ts +0 -3
  179. package/dist/authz/providers/azure-ad.provider.d.ts.map +0 -1
  180. package/dist/authz/providers/azure-ad.provider.js +0 -37
  181. package/dist/authz/providers/azure-ad.provider.js.map +0 -1
  182. package/dist/authz/providers/github.provider.d.ts +0 -3
  183. package/dist/authz/providers/github.provider.d.ts.map +0 -1
  184. package/dist/authz/providers/github.provider.js +0 -24
  185. package/dist/authz/providers/github.provider.js.map +0 -1
  186. package/dist/authz/providers/google.provider.d.ts +0 -3
  187. package/dist/authz/providers/google.provider.d.ts.map +0 -1
  188. package/dist/authz/providers/google.provider.js +0 -25
  189. package/dist/authz/providers/google.provider.js.map +0 -1
  190. package/dist/authz/providers/oauth-provider.interface.d.ts +0 -107
  191. package/dist/authz/providers/oauth-provider.interface.d.ts.map +0 -1
  192. package/dist/authz/providers/oauth-provider.interface.js.map +0 -1
  193. package/dist/authz/services/client.service.d.ts +0 -12
  194. package/dist/authz/services/client.service.d.ts.map +0 -1
  195. package/dist/authz/services/client.service.js +0 -81
  196. package/dist/authz/services/client.service.js.map +0 -1
  197. package/dist/authz/services/jwt-token.service.d.ts +0 -37
  198. package/dist/authz/services/jwt-token.service.d.ts.map +0 -1
  199. package/dist/authz/services/jwt-token.service.js +0 -182
  200. package/dist/authz/services/jwt-token.service.js.map +0 -1
  201. package/dist/authz/services/oauth-strategy.service.d.ts +0 -13
  202. package/dist/authz/services/oauth-strategy.service.d.ts.map +0 -1
  203. package/dist/authz/services/oauth-strategy.service.js +0 -71
  204. package/dist/authz/services/oauth-strategy.service.js.map +0 -1
  205. package/dist/authz/stores/memory-store.service.d.ts +0 -27
  206. package/dist/authz/stores/memory-store.service.d.ts.map +0 -1
  207. package/dist/authz/stores/memory-store.service.js +0 -107
  208. package/dist/authz/stores/memory-store.service.js.map +0 -1
  209. package/dist/authz/stores/oauth-store.interface.d.ts +0 -61
  210. package/dist/authz/stores/oauth-store.interface.d.ts.map +0 -1
  211. package/dist/authz/stores/oauth-store.interface.js +0 -5
  212. package/dist/authz/stores/oauth-store.interface.js.map +0 -1
  213. package/dist/authz/stores/typeorm/constants.d.ts +0 -3
  214. package/dist/authz/stores/typeorm/constants.d.ts.map +0 -1
  215. package/dist/authz/stores/typeorm/constants.js +0 -6
  216. package/dist/authz/stores/typeorm/constants.js.map +0 -1
  217. package/dist/authz/stores/typeorm/entities/authorization-code.entity.d.ts +0 -15
  218. package/dist/authz/stores/typeorm/entities/authorization-code.entity.d.ts.map +0 -1
  219. package/dist/authz/stores/typeorm/entities/authorization-code.entity.js +0 -69
  220. package/dist/authz/stores/typeorm/entities/authorization-code.entity.js.map +0 -1
  221. package/dist/authz/stores/typeorm/entities/index.d.ts +0 -5
  222. package/dist/authz/stores/typeorm/entities/index.d.ts.map +0 -1
  223. package/dist/authz/stores/typeorm/entities/index.js +0 -12
  224. package/dist/authz/stores/typeorm/entities/index.js.map +0 -1
  225. package/dist/authz/stores/typeorm/entities/oauth-client.entity.d.ts +0 -17
  226. package/dist/authz/stores/typeorm/entities/oauth-client.entity.d.ts.map +0 -1
  227. package/dist/authz/stores/typeorm/entities/oauth-client.entity.js +0 -77
  228. package/dist/authz/stores/typeorm/entities/oauth-client.entity.js.map +0 -1
  229. package/dist/authz/stores/typeorm/entities/oauth-session.entity.d.ts +0 -14
  230. package/dist/authz/stores/typeorm/entities/oauth-session.entity.d.ts.map +0 -1
  231. package/dist/authz/stores/typeorm/entities/oauth-session.entity.js +0 -65
  232. package/dist/authz/stores/typeorm/entities/oauth-session.entity.js.map +0 -1
  233. package/dist/authz/stores/typeorm/entities/user-profile.entity.d.ts +0 -13
  234. package/dist/authz/stores/typeorm/entities/user-profile.entity.d.ts.map +0 -1
  235. package/dist/authz/stores/typeorm/entities/user-profile.entity.js +0 -62
  236. package/dist/authz/stores/typeorm/entities/user-profile.entity.js.map +0 -1
  237. package/dist/authz/stores/typeorm/typeorm-store.service.d.ts +0 -28
  238. package/dist/authz/stores/typeorm/typeorm-store.service.d.ts.map +0 -1
  239. package/dist/authz/stores/typeorm/typeorm-store.service.js +0 -138
  240. package/dist/authz/stores/typeorm/typeorm-store.service.js.map +0 -1
  241. package/dist/mcp/constants/feature-registration.constants.d.ts +0 -7
  242. package/dist/mcp/constants/feature-registration.constants.d.ts.map +0 -1
  243. package/dist/mcp/constants/feature-registration.constants.js +0 -5
  244. package/dist/mcp/constants/feature-registration.constants.js.map +0 -1
  245. package/dist/mcp/decorators/tool-guards.decorator.d.ts +0 -12
  246. package/dist/mcp/decorators/tool-guards.decorator.d.ts.map +0 -1
  247. package/dist/mcp/decorators/tool-guards.decorator.js +0 -13
  248. package/dist/mcp/decorators/tool-guards.decorator.js.map +0 -1
  249. package/dist/mcp/interfaces/mcp-options.interface.d.ts +0 -53
  250. package/dist/mcp/interfaces/mcp-options.interface.d.ts.map +0 -1
  251. package/dist/mcp/interfaces/mcp-options.interface.js +0 -10
  252. package/dist/mcp/interfaces/mcp-options.interface.js.map +0 -1
  253. package/dist/mcp/mcp.module.d.ts +0 -15
  254. package/dist/mcp/mcp.module.d.ts.map +0 -1
  255. package/dist/mcp/mcp.module.js +0 -248
  256. package/dist/mcp/mcp.module.js.map +0 -1
  257. package/dist/mcp/services/handlers/mcp-handler.base.d.ts +0 -117
  258. package/dist/mcp/services/handlers/mcp-handler.base.d.ts.map +0 -1
  259. package/dist/mcp/services/handlers/mcp-handler.base.js +0 -125
  260. package/dist/mcp/services/handlers/mcp-handler.base.js.map +0 -1
  261. package/dist/mcp/services/handlers/mcp-prompts.handler.d.ts +0 -12
  262. package/dist/mcp/services/handlers/mcp-prompts.handler.d.ts.map +0 -1
  263. package/dist/mcp/services/handlers/mcp-prompts.handler.js +0 -98
  264. package/dist/mcp/services/handlers/mcp-prompts.handler.js.map +0 -1
  265. package/dist/mcp/services/handlers/mcp-resources.handler.d.ts +0 -13
  266. package/dist/mcp/services/handlers/mcp-resources.handler.d.ts.map +0 -1
  267. package/dist/mcp/services/handlers/mcp-resources.handler.js +0 -117
  268. package/dist/mcp/services/handlers/mcp-resources.handler.js.map +0 -1
  269. package/dist/mcp/services/handlers/mcp-tools.handler.d.ts +0 -22
  270. package/dist/mcp/services/handlers/mcp-tools.handler.d.ts.map +0 -1
  271. package/dist/mcp/services/handlers/mcp-tools.handler.js +0 -258
  272. package/dist/mcp/services/handlers/mcp-tools.handler.js.map +0 -1
  273. package/dist/mcp/services/mcp-dynamic-registry.service.d.ts +0 -26
  274. package/dist/mcp/services/mcp-dynamic-registry.service.d.ts.map +0 -1
  275. package/dist/mcp/services/mcp-dynamic-registry.service.js +0 -133
  276. package/dist/mcp/services/mcp-dynamic-registry.service.js.map +0 -1
  277. package/dist/mcp/services/mcp-executor.service.d.ts +0 -15
  278. package/dist/mcp/services/mcp-executor.service.d.ts.map +0 -1
  279. package/dist/mcp/services/mcp-executor.service.js +0 -47
  280. package/dist/mcp/services/mcp-executor.service.js.map +0 -1
  281. package/dist/mcp/services/mcp-registry-discovery.service.d.ts +0 -63
  282. package/dist/mcp/services/mcp-registry-discovery.service.d.ts.map +0 -1
  283. package/dist/mcp/services/mcp-registry-discovery.service.js +0 -397
  284. package/dist/mcp/services/mcp-registry-discovery.service.js.map +0 -1
  285. package/dist/mcp/services/mcp-sse.service.d.ts +0 -20
  286. package/dist/mcp/services/mcp-sse.service.d.ts.map +0 -1
  287. package/dist/mcp/services/mcp-sse.service.js +0 -91
  288. package/dist/mcp/services/mcp-sse.service.js.map +0 -1
  289. package/dist/mcp/services/mcp-streamable-http.service.d.ts +0 -32
  290. package/dist/mcp/services/mcp-streamable-http.service.d.ts.map +0 -1
  291. package/dist/mcp/services/mcp-streamable-http.service.js +0 -327
  292. package/dist/mcp/services/mcp-streamable-http.service.js.map +0 -1
  293. package/dist/mcp/services/sse-ping.service.d.ts +0 -23
  294. package/dist/mcp/services/sse-ping.service.d.ts.map +0 -1
  295. package/dist/mcp/services/sse-ping.service.js +0 -99
  296. package/dist/mcp/services/sse-ping.service.js.map +0 -1
  297. package/dist/mcp/transport/sse.controller.factory.d.ts +0 -14
  298. package/dist/mcp/transport/sse.controller.factory.d.ts.map +0 -1
  299. package/dist/mcp/transport/sse.controller.factory.js +0 -67
  300. package/dist/mcp/transport/sse.controller.factory.js.map +0 -1
  301. package/dist/mcp/transport/stdio.service.d.ts +0 -14
  302. package/dist/mcp/transport/stdio.service.d.ts.map +0 -1
  303. package/dist/mcp/transport/stdio.service.js +0 -66
  304. package/dist/mcp/transport/stdio.service.js.map +0 -1
  305. package/dist/mcp/transport/streamable-http.controller.factory.d.ts +0 -14
  306. package/dist/mcp/transport/streamable-http.controller.factory.d.ts.map +0 -1
  307. package/dist/mcp/transport/streamable-http.controller.factory.js +0 -74
  308. package/dist/mcp/transport/streamable-http.controller.factory.js.map +0 -1
  309. package/dist/mcp/utils/capabilities-builder.d.ts +0 -5
  310. package/dist/mcp/utils/capabilities-builder.d.ts.map +0 -1
  311. package/dist/mcp/utils/capabilities-builder.js +0 -25
  312. package/dist/mcp/utils/capabilities-builder.js.map +0 -1
  313. package/dist/mcp/utils/mcp-server.factory.d.ts +0 -6
  314. package/dist/mcp/utils/mcp-server.factory.d.ts.map +0 -1
  315. package/dist/mcp/utils/mcp-server.factory.js +0 -22
  316. package/dist/mcp/utils/mcp-server.factory.js.map +0 -1
  317. package/src/authz/guards/jwt-auth.guard.ts +0 -127
  318. package/src/authz/index.ts +0 -10
  319. package/src/authz/interfaces/oauth-common.interface.ts +0 -21
  320. package/src/authz/interfaces/request-with-user.ts +0 -16
  321. package/src/authz/mcp-oauth.controller.ts +0 -860
  322. package/src/authz/mcp-oauth.module.ts +0 -384
  323. package/src/authz/providers/azure-ad.provider.ts +0 -40
  324. package/src/authz/providers/github.provider.ts +0 -22
  325. package/src/authz/providers/google.provider.ts +0 -23
  326. package/src/authz/providers/oauth-provider.interface.ts +0 -147
  327. package/src/authz/services/client.service.ts +0 -125
  328. package/src/authz/services/jwt-token.service.spec.ts +0 -67
  329. package/src/authz/services/jwt-token.service.ts +0 -188
  330. package/src/authz/services/oauth-strategy.service.ts +0 -64
  331. package/src/authz/stores/memory-store.service.spec.ts +0 -475
  332. package/src/authz/stores/memory-store.service.ts +0 -141
  333. package/src/authz/stores/oauth-store.interface.ts +0 -131
  334. package/src/authz/stores/typeorm/README.md +0 -140
  335. package/src/authz/stores/typeorm/constants.ts +0 -6
  336. package/src/authz/stores/typeorm/entities/authorization-code.entity.ts +0 -41
  337. package/src/authz/stores/typeorm/entities/index.ts +0 -4
  338. package/src/authz/stores/typeorm/entities/oauth-client.entity.ts +0 -53
  339. package/src/authz/stores/typeorm/entities/oauth-session.entity.ts +0 -38
  340. package/src/authz/stores/typeorm/entities/user-profile.entity.ts +0 -46
  341. package/src/authz/stores/typeorm/typeorm-store.service.spec.ts +0 -494
  342. package/src/authz/stores/typeorm/typeorm-store.service.ts +0 -165
  343. package/src/mcp/constants/feature-registration.constants.ts +0 -24
  344. package/src/mcp/decorators/tool-guards.decorator.ts +0 -82
  345. package/src/mcp/interfaces/mcp-options.interface.ts +0 -95
  346. package/src/mcp/mcp.module.ts +0 -349
  347. package/src/mcp/services/handlers/mcp-handler.base.ts +0 -203
  348. package/src/mcp/services/handlers/mcp-prompts.handler.ts +0 -143
  349. package/src/mcp/services/handlers/mcp-resources.handler.ts +0 -183
  350. package/src/mcp/services/handlers/mcp-tools.handler.spec.ts +0 -41
  351. package/src/mcp/services/handlers/mcp-tools.handler.ts +0 -436
  352. package/src/mcp/services/mcp-dynamic-registry.service.ts +0 -236
  353. package/src/mcp/services/mcp-executor.service.ts +0 -64
  354. package/src/mcp/services/mcp-registry-discovery.service.spec.ts +0 -306
  355. package/src/mcp/services/mcp-registry-discovery.service.ts +0 -849
  356. package/src/mcp/services/mcp-sse.service.ts +0 -124
  357. package/src/mcp/services/mcp-streamable-http.service.ts +0 -472
  358. package/src/mcp/services/sse-ping.service.ts +0 -144
  359. package/src/mcp/transport/custom-decorator.spec.ts +0 -75
  360. package/src/mcp/transport/sse.controller.factory.ts +0 -84
  361. package/src/mcp/transport/stdio.service.ts +0 -75
  362. package/src/mcp/transport/streamable-http.controller.factory.ts +0 -80
  363. package/src/mcp/utils/capabilities-builder.ts +0 -43
  364. package/src/mcp/utils/mcp-server.factory.ts +0 -33
@@ -1,131 +0,0 @@
1
- import type {
2
- OAuthSession,
3
- OAuthUserProfile,
4
- } from '../interfaces/oauth-common.interface';
5
-
6
- export const MCP_OAUTH_TOKEN = 'MCP_OAUTH_TOKEN';
7
-
8
- export interface OAuthClient {
9
- client_id: string;
10
- client_secret?: string;
11
- client_name: string;
12
- client_description?: string;
13
- logo_uri?: string;
14
- client_uri?: string;
15
- developer_name?: string;
16
- developer_email?: string;
17
- redirect_uris: string[];
18
- grant_types: string[];
19
- response_types: string[];
20
- token_endpoint_auth_method: string;
21
- created_at: Date;
22
- updated_at: Date;
23
- }
24
-
25
- export interface AuthorizationCode {
26
- code: string;
27
- user_id: string;
28
- client_id: string;
29
- redirect_uri: string;
30
- code_challenge: string;
31
- code_challenge_method: string;
32
- resource?: string;
33
- scope?: string;
34
- expires_at: number;
35
- used_at?: Date;
36
- // Link to stored user profile (if available)
37
- user_profile_id?: string;
38
- }
39
-
40
- export interface ClientRegistrationDto {
41
- client_name: string;
42
- client_description?: string;
43
- logo_uri?: string;
44
- client_uri?: string;
45
- developer_name?: string;
46
- developer_email?: string;
47
- redirect_uris: string[];
48
- grant_types?: string[];
49
- response_types?: string[];
50
- token_endpoint_auth_method?: string;
51
- }
52
-
53
- /**
54
- * Interface for OAuth store implementations.
55
- *
56
- * Implement this interface to create custom storage solutions (e.g., Redis, Database, etc.).
57
- * The default implementation is an in-memory store suitable for development.
58
- *
59
- * @example
60
- * ```typescript
61
- * class RedisOAuthStore implements IOAuthStore {
62
- * constructor(private redisClient: RedisClient) {}
63
- *
64
- * async storeClient(client: OAuthClient): Promise<void> {
65
- * await this.redisClient.set(`client:${client.client_id}`, JSON.stringify(client));
66
- * }
67
- *
68
- * async getClient(client_id: string): Promise<OAuthClient | undefined> {
69
- * const data = await this.redisClient.get(`client:${client_id}`);
70
- * return data ? JSON.parse(data) : undefined;
71
- * }
72
- *
73
- * async findClient(client_name: string): Promise<OAuthClient | undefined> {
74
- * const data = await this.redisClient.get(`client_name:${client_name}`);
75
- * return data ? JSON.parse(data) : undefined;
76
- * }
77
- *
78
- * generateClientId(client: OAuthClient): string {
79
- * // Custom client ID generation logic
80
- * const normalizedName = client.client_name.toLowerCase().replace(/[^a-z0-9]/g, '');
81
- * const timestamp = Date.now().toString(36);
82
- * return `${normalizedName}_${timestamp}`;
83
- * }
84
- *
85
- * // ... implement other methods
86
- * }
87
- *
88
- * // Usage in module:
89
- * McpOAuthModule.forRoot({
90
- * provider: GoogleOAuthProvider,
91
- * clientId: process.env.GOOGLE_CLIENT_ID!,
92
- * clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
93
- * jwtSecret: process.env.JWT_SECRET!,
94
- * memoryStore: new RedisOAuthStore(redisClient), // Custom implementation
95
- * })
96
- * ```
97
- */
98
- export interface IOAuthStore {
99
- // Client management
100
- storeClient(client: OAuthClient): Promise<OAuthClient>;
101
- getClient(client_id: string): Promise<OAuthClient | undefined>;
102
- findClient(client_name: string): Promise<OAuthClient | undefined>;
103
- generateClientId(client: OAuthClient): string;
104
-
105
- // Authorization code management
106
- storeAuthCode(code: AuthorizationCode): Promise<void>;
107
- getAuthCode(code: string): Promise<AuthorizationCode | undefined>;
108
- removeAuthCode(code: string): Promise<void>;
109
-
110
- // OAuth session management
111
- storeOAuthSession(sessionId: string, session: OAuthSession): Promise<void>;
112
- getOAuthSession(sessionId: string): Promise<OAuthSession | undefined>;
113
- removeOAuthSession(sessionId: string): Promise<void>;
114
-
115
- // User profile management
116
- /**
117
- * Upsert a user profile from an OAuth provider and return a stable profile_id.
118
- * The profile_id should be stable across logins for the same provider+user.
119
- */
120
- upsertUserProfile(
121
- profile: OAuthUserProfile,
122
- provider: string,
123
- ): Promise<string>;
124
-
125
- /** Retrieve a stored user profile by its profile_id */
126
- getUserProfileById(
127
- profileId: string,
128
- ): Promise<
129
- (OAuthUserProfile & { profile_id: string; provider: string }) | undefined
130
- >;
131
- }
@@ -1,140 +0,0 @@
1
- # TypeORM OAuth Store Implementation
2
-
3
- This directory contains a TypeORM implementation of the `IOAuthStore` interface for persistent OAuth data storage.
4
-
5
- ## Features
6
-
7
- - **Persistent Storage**: Unlike the in-memory store, data survives server restarts
8
- - **Database Support**: Works with any database supported by TypeORM (PostgreSQL, MySQL, SQLite, etc.)
9
- - **Automatic Schema Management**: Entities automatically create the required database tables
10
- - **Expiration Handling**: Automatic cleanup of expired sessions and authorization codes
11
-
12
- ## Entities
13
-
14
- ### OAuthClientEntity
15
- Stores OAuth client information including:
16
- - Client credentials and metadata
17
- - Redirect URIs and grant types
18
- - Creation and update timestamps
19
-
20
- ### AuthorizationCodeEntity
21
- Stores authorization codes with:
22
- - Code challenge and method for PKCE
23
- - Expiration and usage tracking
24
- - Associated user and client information
25
-
26
- ### OAuthSessionEntity
27
- Stores OAuth session data including:
28
- - Session state and parameters
29
- - Expiration handling
30
- - Client association
31
-
32
- ### OAuthUserProfileEntity
33
- Stores normalized user profile information per provider:
34
- - Stable `profile_id` primary key
35
- - `provider_user_id` and `provider`
36
- - `username`, `email`, `displayName`, `avatarUrl`
37
- - `raw` stringified provider payload
38
-
39
- ## Usage
40
-
41
- ### Basic SQLite Configuration
42
-
43
- ```typescript
44
- McpOAuthModule.forRoot({
45
- provider: GoogleOAuthProvider,
46
- clientId: process.env.GOOGLE_CLIENT_ID!,
47
- clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
48
- jwtSecret: process.env.JWT_SECRET!,
49
- typeormOptions: {
50
- type: 'sqlite',
51
- database: 'oauth.db',
52
- synchronize: true,
53
- logging: false,
54
- },
55
- })
56
- ```
57
-
58
- ### PostgreSQL Configuration
59
-
60
- ```typescript
61
- McpOAuthModule.forRoot({
62
- provider: GoogleOAuthProvider,
63
- clientId: process.env.GOOGLE_CLIENT_ID!,
64
- clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
65
- jwtSecret: process.env.JWT_SECRET!,
66
- typeormOptions: {
67
- type: 'postgres',
68
- host: process.env.DB_HOST || 'localhost',
69
- port: parseInt(process.env.DB_PORT) || 5432,
70
- username: process.env.DB_USERNAME || 'postgres',
71
- password: process.env.DB_PASSWORD || 'password',
72
- database: process.env.DB_NAME || 'oauth_db',
73
- synchronize: process.env.NODE_ENV !== 'production',
74
- logging: process.env.NODE_ENV === 'development',
75
- },
76
- })
77
- ```
78
-
79
- ### MySQL Configuration
80
-
81
- ```typescript
82
- McpOAuthModule.forRoot({
83
- provider: GoogleOAuthProvider,
84
- clientId: process.env.GOOGLE_CLIENT_ID!,
85
- clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
86
- jwtSecret: process.env.JWT_SECRET!,
87
- typeormOptions: {
88
- type: 'mysql',
89
- host: process.env.DB_HOST || 'localhost',
90
- port: parseInt(process.env.DB_PORT) || 3306,
91
- username: process.env.DB_USERNAME || 'root',
92
- password: process.env.DB_PASSWORD || 'password',
93
- database: process.env.DB_NAME || 'oauth_db',
94
- synchronize: process.env.NODE_ENV !== 'production',
95
- logging: process.env.NODE_ENV === 'development',
96
- },
97
- })
98
- ```
99
-
100
- ## Configuration Options
101
-
102
- All standard TypeORM options are supported:
103
-
104
- - `type`: Database type (sqlite, postgres, mysql, etc.)
105
- - `host`: Database host
106
- - `port`: Database port
107
- - `username`: Database username
108
- - `password`: Database password
109
- - `database`: Database name or file path (for SQLite)
110
- - `synchronize`: Auto-create tables (disable in production)
111
- - `logging`: Enable query logging
112
- - `entities`: Additional entities (OAuth entities are automatically included)
113
- - `migrations`: Database migrations
114
- - `ssl`: SSL configuration for production databases
115
-
116
- ## Production Considerations
117
-
118
- 1. **Disable synchronize**: Use migrations instead of auto-sync in production
119
- 2. **Enable SSL**: Configure SSL for production database connections
120
- 3. **Connection Pooling**: Configure appropriate connection pool settings
121
- 4. **Logging**: Disable query logging in production for performance
122
- 5. **Backup Strategy**: Implement regular database backups
123
-
124
- ## Migrations
125
-
126
- For production use, create migrations instead of using `synchronize: true`:
127
-
128
- ```bash
129
- npx typeorm migration:generate -n CreateOAuthTables
130
- npx typeorm migration:run
131
- ```
132
-
133
- ## Interface Compatibility
134
-
135
- The TypeORM implementation provides both synchronous and asynchronous methods:
136
-
137
- - Synchronous methods (for IOAuthStore compatibility): Log warnings and use fire-and-forget async operations
138
- - Asynchronous methods (recommended): `*Async` versions that return promises
139
-
140
- Consider updating your application to use the async methods for better error handling and performance.
@@ -1,6 +0,0 @@
1
- // Unique TypeORM connection name used by the OAuth store to avoid
2
- // collisions with an application's own connections.
3
- export const OAUTH_TYPEORM_CONNECTION_NAME = '@rekog/mcp-nest:oauth';
4
-
5
- // Table name prefix to avoid collisions with application tables.
6
- export const OAUTH_TABLE_PREFIX = 'rekog_mcp_auth_';
@@ -1,41 +0,0 @@
1
- import { Entity, Column, PrimaryColumn, CreateDateColumn } from 'typeorm';
2
- import { OAUTH_TABLE_PREFIX } from '../constants';
3
-
4
- @Entity(`${OAUTH_TABLE_PREFIX}authorization_codes`)
5
- export class AuthorizationCodeEntity {
6
- @PrimaryColumn()
7
- code: string;
8
-
9
- @Column()
10
- user_id: string;
11
-
12
- @Column()
13
- client_id: string;
14
-
15
- @Column()
16
- redirect_uri: string;
17
-
18
- @Column()
19
- code_challenge: string;
20
-
21
- @Column()
22
- code_challenge_method: string;
23
-
24
- @Column('bigint')
25
- expires_at: number;
26
-
27
- @Column()
28
- resource: string;
29
-
30
- @Column({ nullable: true })
31
- scope?: string;
32
-
33
- @Column({ nullable: true })
34
- used_at?: Date;
35
-
36
- @Column({ nullable: true })
37
- user_profile_id?: string;
38
-
39
- @CreateDateColumn()
40
- created_at: Date;
41
- }
@@ -1,4 +0,0 @@
1
- export { OAuthClientEntity } from './oauth-client.entity';
2
- export { AuthorizationCodeEntity } from './authorization-code.entity';
3
- export { OAuthSessionEntity } from './oauth-session.entity';
4
- export { OAuthUserProfileEntity } from './user-profile.entity';
@@ -1,53 +0,0 @@
1
- import {
2
- Entity,
3
- Column,
4
- PrimaryColumn,
5
- CreateDateColumn,
6
- UpdateDateColumn,
7
- } from 'typeorm';
8
- import { OAUTH_TABLE_PREFIX } from '../constants';
9
-
10
- @Entity(`${OAUTH_TABLE_PREFIX}clients`)
11
- export class OAuthClientEntity {
12
- @PrimaryColumn()
13
- client_id: string;
14
-
15
- @Column({ nullable: true })
16
- client_secret?: string;
17
-
18
- @Column()
19
- client_name: string;
20
-
21
- @Column({ nullable: true })
22
- client_description?: string;
23
-
24
- @Column({ nullable: true })
25
- logo_uri?: string;
26
-
27
- @Column({ nullable: true })
28
- client_uri?: string;
29
-
30
- @Column({ nullable: true })
31
- developer_name?: string;
32
-
33
- @Column({ nullable: true })
34
- developer_email?: string;
35
-
36
- @Column('simple-array')
37
- redirect_uris: string[];
38
-
39
- @Column('simple-array')
40
- grant_types: string[];
41
-
42
- @Column('simple-array')
43
- response_types: string[];
44
-
45
- @Column()
46
- token_endpoint_auth_method: string;
47
-
48
- @CreateDateColumn()
49
- created_at: Date;
50
-
51
- @UpdateDateColumn()
52
- updated_at: Date;
53
- }
@@ -1,38 +0,0 @@
1
- import { Entity, Column, PrimaryColumn, CreateDateColumn } from 'typeorm';
2
- import { OAUTH_TABLE_PREFIX } from '../constants';
3
-
4
- @Entity(`${OAUTH_TABLE_PREFIX}sessions`)
5
- export class OAuthSessionEntity {
6
- @PrimaryColumn()
7
- sessionId: string;
8
-
9
- @Column()
10
- state: string;
11
-
12
- @Column({ nullable: true })
13
- clientId?: string;
14
-
15
- @Column({ nullable: true })
16
- redirectUri?: string;
17
-
18
- @Column({ nullable: true })
19
- codeChallenge?: string;
20
-
21
- @Column({ nullable: true })
22
- codeChallengeMethod?: string;
23
-
24
- @Column({ nullable: true })
25
- oauthState?: string;
26
-
27
- @Column({ nullable: true })
28
- resource?: string;
29
-
30
- @Column({ nullable: true })
31
- scope?: string;
32
-
33
- @Column('bigint')
34
- expiresAt: number;
35
-
36
- @CreateDateColumn()
37
- created_at: Date;
38
- }
@@ -1,46 +0,0 @@
1
- import {
2
- Entity,
3
- Column,
4
- PrimaryColumn,
5
- CreateDateColumn,
6
- UpdateDateColumn,
7
- Index,
8
- } from 'typeorm';
9
- import { OAUTH_TABLE_PREFIX } from '../constants';
10
-
11
- @Entity(`${OAUTH_TABLE_PREFIX}user_profiles`)
12
- export class OAuthUserProfileEntity {
13
- // Stable profile id we return to callers
14
- @PrimaryColumn()
15
- profile_id: string;
16
-
17
- // Provider-unique user id (e.g., GitHub id)
18
- @Index('idx_provider_user')
19
- @Column()
20
- provider_user_id: string;
21
-
22
- @Column()
23
- provider: string;
24
-
25
- @Column()
26
- username: string;
27
-
28
- @Column({ nullable: true })
29
- email?: string;
30
-
31
- @Column({ nullable: true })
32
- displayName?: string;
33
-
34
- @Column({ nullable: true })
35
- avatarUrl?: string;
36
-
37
- // Store raw provider profile for completeness/debugging
38
- @Column({ type: 'text', nullable: true })
39
- raw?: string;
40
-
41
- @CreateDateColumn()
42
- created_at: Date;
43
-
44
- @UpdateDateColumn()
45
- updated_at: Date;
46
- }