@novu/api 0.3.0 → 0.5.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 (441) hide show
  1. package/README.md +52 -0
  2. package/bin/mcp-server.js +50045 -0
  3. package/bin/mcp-server.js.map +506 -0
  4. package/funcs/cancel.js +1 -1
  5. package/funcs/cancel.js.map +1 -1
  6. package/funcs/integrationsCreate.js +1 -1
  7. package/funcs/integrationsCreate.js.map +1 -1
  8. package/funcs/integrationsDelete.js +1 -1
  9. package/funcs/integrationsDelete.js.map +1 -1
  10. package/funcs/integrationsList.js +1 -1
  11. package/funcs/integrationsList.js.map +1 -1
  12. package/funcs/integrationsListActive.js +1 -1
  13. package/funcs/integrationsListActive.js.map +1 -1
  14. package/funcs/integrationsSetAsPrimary.js +1 -1
  15. package/funcs/integrationsSetAsPrimary.js.map +1 -1
  16. package/funcs/integrationsUpdate.js +1 -1
  17. package/funcs/integrationsUpdate.js.map +1 -1
  18. package/funcs/integrationsWebhooksRetrieve.js +1 -1
  19. package/funcs/integrationsWebhooksRetrieve.js.map +1 -1
  20. package/funcs/messagesDelete.js +1 -1
  21. package/funcs/messagesDelete.js.map +1 -1
  22. package/funcs/messagesDeleteByTransactionId.js +1 -1
  23. package/funcs/messagesDeleteByTransactionId.js.map +1 -1
  24. package/funcs/messagesRetrieve.js +1 -1
  25. package/funcs/messagesRetrieve.js.map +1 -1
  26. package/funcs/notificationsList.js +1 -1
  27. package/funcs/notificationsList.js.map +1 -1
  28. package/funcs/notificationsRetrieve.js +1 -1
  29. package/funcs/notificationsRetrieve.js.map +1 -1
  30. package/funcs/notificationsStatsGraph.js +1 -1
  31. package/funcs/notificationsStatsGraph.js.map +1 -1
  32. package/funcs/notificationsStatsRetrieve.js +1 -1
  33. package/funcs/notificationsStatsRetrieve.js.map +1 -1
  34. package/funcs/subscribersAuthenticationChatAccessOauth.js +1 -1
  35. package/funcs/subscribersAuthenticationChatAccessOauth.js.map +1 -1
  36. package/funcs/subscribersAuthenticationChatAccessOauthCallBack.js +1 -1
  37. package/funcs/subscribersAuthenticationChatAccessOauthCallBack.js.map +1 -1
  38. package/funcs/subscribersCreate.js +1 -1
  39. package/funcs/subscribersCreate.js.map +1 -1
  40. package/funcs/subscribersCreateBulk.js +1 -1
  41. package/funcs/subscribersCreateBulk.js.map +1 -1
  42. package/funcs/subscribersCredentialsAppend.js +1 -1
  43. package/funcs/subscribersCredentialsAppend.js.map +1 -1
  44. package/funcs/subscribersCredentialsDelete.js +1 -1
  45. package/funcs/subscribersCredentialsDelete.js.map +1 -1
  46. package/funcs/subscribersCredentialsUpdate.js +1 -1
  47. package/funcs/subscribersCredentialsUpdate.js.map +1 -1
  48. package/funcs/subscribersDelete.js +1 -1
  49. package/funcs/subscribersDelete.js.map +1 -1
  50. package/funcs/subscribersList.js +1 -1
  51. package/funcs/subscribersList.js.map +1 -1
  52. package/funcs/subscribersMessagesMarkAll.js +1 -1
  53. package/funcs/subscribersMessagesMarkAll.js.map +1 -1
  54. package/funcs/subscribersMessagesMarkAllAs.js +1 -1
  55. package/funcs/subscribersMessagesMarkAllAs.js.map +1 -1
  56. package/funcs/subscribersMessagesUpdateAsSeen.js +1 -1
  57. package/funcs/subscribersMessagesUpdateAsSeen.js.map +1 -1
  58. package/funcs/subscribersNotificationsFeed.js +1 -1
  59. package/funcs/subscribersNotificationsFeed.js.map +1 -1
  60. package/funcs/subscribersNotificationsUnseenCount.js +1 -1
  61. package/funcs/subscribersNotificationsUnseenCount.js.map +1 -1
  62. package/funcs/subscribersPatch.js +1 -1
  63. package/funcs/subscribersPatch.js.map +1 -1
  64. package/funcs/subscribersPreferencesList.js +1 -1
  65. package/funcs/subscribersPreferencesList.js.map +1 -1
  66. package/funcs/subscribersPreferencesUpdate.js +1 -1
  67. package/funcs/subscribersPreferencesUpdate.js.map +1 -1
  68. package/funcs/subscribersPropertiesUpdateOnlineFlag.js +1 -1
  69. package/funcs/subscribersPropertiesUpdateOnlineFlag.js.map +1 -1
  70. package/funcs/subscribersRetrieve.js +1 -1
  71. package/funcs/subscribersRetrieve.js.map +1 -1
  72. package/funcs/subscribersSearch.js +1 -1
  73. package/funcs/subscribersSearch.js.map +1 -1
  74. package/funcs/topicsCreate.js +1 -1
  75. package/funcs/topicsCreate.js.map +1 -1
  76. package/funcs/topicsDelete.js +1 -1
  77. package/funcs/topicsDelete.js.map +1 -1
  78. package/funcs/topicsList.js +1 -1
  79. package/funcs/topicsList.js.map +1 -1
  80. package/funcs/topicsRename.js +1 -1
  81. package/funcs/topicsRename.js.map +1 -1
  82. package/funcs/topicsRetrieve.js +1 -1
  83. package/funcs/topicsRetrieve.js.map +1 -1
  84. package/funcs/topicsSubscribersAssign.js +1 -1
  85. package/funcs/topicsSubscribersAssign.js.map +1 -1
  86. package/funcs/topicsSubscribersRemove.js +1 -1
  87. package/funcs/topicsSubscribersRemove.js.map +1 -1
  88. package/funcs/topicsSubscribersRetrieve.js +1 -1
  89. package/funcs/topicsSubscribersRetrieve.js.map +1 -1
  90. package/funcs/trigger.js +1 -1
  91. package/funcs/trigger.js.map +1 -1
  92. package/funcs/triggerBroadcast.js +1 -1
  93. package/funcs/triggerBroadcast.js.map +1 -1
  94. package/funcs/triggerBulk.js +1 -1
  95. package/funcs/triggerBulk.js.map +1 -1
  96. package/jsr.json +1 -1
  97. package/lib/config.d.ts +6 -6
  98. package/lib/config.d.ts.map +1 -1
  99. package/lib/config.js +3 -3
  100. package/lib/files.js.map +1 -1
  101. package/lib/primitives.d.ts +3 -0
  102. package/lib/primitives.d.ts.map +1 -1
  103. package/lib/primitives.js +8 -1
  104. package/lib/primitives.js.map +1 -1
  105. package/lib/sdks.d.ts +1 -1
  106. package/lib/sdks.d.ts.map +1 -1
  107. package/mcp-server/build.d.mts.map +1 -0
  108. package/mcp-server/build.mjs +14 -0
  109. package/mcp-server/build.mjs.map +1 -0
  110. package/mcp-server/cli/start/command.d.ts +2 -0
  111. package/mcp-server/cli/start/command.d.ts.map +1 -0
  112. package/mcp-server/cli/start/command.js +128 -0
  113. package/mcp-server/cli/start/command.js.map +1 -0
  114. package/mcp-server/cli/start/impl.d.ts +18 -0
  115. package/mcp-server/cli/start/impl.d.ts.map +1 -0
  116. package/mcp-server/cli/start/impl.js +105 -0
  117. package/mcp-server/cli/start/impl.js.map +1 -0
  118. package/mcp-server/cli.d.ts +9 -0
  119. package/mcp-server/cli.d.ts.map +1 -0
  120. package/mcp-server/cli.js +11 -0
  121. package/mcp-server/cli.js.map +1 -0
  122. package/mcp-server/console-logger.d.ts +7 -0
  123. package/mcp-server/console-logger.d.ts.map +1 -0
  124. package/mcp-server/console-logger.js +59 -0
  125. package/mcp-server/console-logger.js.map +1 -0
  126. package/mcp-server/mcp-server.d.ts +2 -0
  127. package/mcp-server/mcp-server.d.ts.map +1 -0
  128. package/mcp-server/mcp-server.js +29 -0
  129. package/mcp-server/mcp-server.js.map +1 -0
  130. package/mcp-server/resources.d.ts +27 -0
  131. package/mcp-server/resources.d.ts.map +1 -0
  132. package/mcp-server/resources.js +52 -0
  133. package/mcp-server/resources.js.map +1 -0
  134. package/mcp-server/scopes.d.ts +3 -0
  135. package/mcp-server/scopes.d.ts.map +1 -0
  136. package/mcp-server/scopes.js +8 -0
  137. package/mcp-server/scopes.js.map +1 -0
  138. package/mcp-server/server.d.ts +13 -0
  139. package/mcp-server/server.d.ts.map +1 -0
  140. package/mcp-server/server.js +119 -0
  141. package/mcp-server/server.js.map +1 -0
  142. package/mcp-server/shared.d.ts +7 -0
  143. package/mcp-server/shared.d.ts.map +1 -0
  144. package/mcp-server/shared.js +89 -0
  145. package/mcp-server/shared.js.map +1 -0
  146. package/mcp-server/tools/cancel.d.ts +9 -0
  147. package/mcp-server/tools/cancel.d.ts.map +1 -0
  148. package/mcp-server/tools/cancel.js +58 -0
  149. package/mcp-server/tools/cancel.js.map +1 -0
  150. package/mcp-server/tools/integrationsCreate.d.ts +10 -0
  151. package/mcp-server/tools/integrationsCreate.d.ts.map +1 -0
  152. package/mcp-server/tools/integrationsCreate.js +56 -0
  153. package/mcp-server/tools/integrationsCreate.js.map +1 -0
  154. package/mcp-server/tools/integrationsDelete.d.ts +9 -0
  155. package/mcp-server/tools/integrationsDelete.d.ts.map +1 -0
  156. package/mcp-server/tools/integrationsDelete.js +53 -0
  157. package/mcp-server/tools/integrationsDelete.js.map +1 -0
  158. package/mcp-server/tools/integrationsList.d.ts +8 -0
  159. package/mcp-server/tools/integrationsList.d.ts.map +1 -0
  160. package/mcp-server/tools/integrationsList.js +54 -0
  161. package/mcp-server/tools/integrationsList.js.map +1 -0
  162. package/mcp-server/tools/integrationsListActive.d.ts +8 -0
  163. package/mcp-server/tools/integrationsListActive.d.ts.map +1 -0
  164. package/mcp-server/tools/integrationsListActive.js +54 -0
  165. package/mcp-server/tools/integrationsListActive.js.map +1 -0
  166. package/mcp-server/tools/integrationsSetAsPrimary.d.ts +9 -0
  167. package/mcp-server/tools/integrationsSetAsPrimary.d.ts.map +1 -0
  168. package/mcp-server/tools/integrationsSetAsPrimary.js +53 -0
  169. package/mcp-server/tools/integrationsSetAsPrimary.js.map +1 -0
  170. package/mcp-server/tools/integrationsUpdate.d.ts +11 -0
  171. package/mcp-server/tools/integrationsUpdate.d.ts.map +1 -0
  172. package/mcp-server/tools/integrationsUpdate.js +55 -0
  173. package/mcp-server/tools/integrationsUpdate.js.map +1 -0
  174. package/mcp-server/tools/integrationsWebhooksRetrieve.d.ts +9 -0
  175. package/mcp-server/tools/integrationsWebhooksRetrieve.d.ts.map +1 -0
  176. package/mcp-server/tools/integrationsWebhooksRetrieve.js +55 -0
  177. package/mcp-server/tools/integrationsWebhooksRetrieve.js.map +1 -0
  178. package/mcp-server/tools/messagesDelete.d.ts +9 -0
  179. package/mcp-server/tools/messagesDelete.d.ts.map +1 -0
  180. package/mcp-server/tools/messagesDelete.js +55 -0
  181. package/mcp-server/tools/messagesDelete.js.map +1 -0
  182. package/mcp-server/tools/messagesDeleteByTransactionId.d.ts +16 -0
  183. package/mcp-server/tools/messagesDeleteByTransactionId.d.ts.map +1 -0
  184. package/mcp-server/tools/messagesDeleteByTransactionId.js +56 -0
  185. package/mcp-server/tools/messagesDeleteByTransactionId.js.map +1 -0
  186. package/mcp-server/tools/messagesRetrieve.d.ts +8 -0
  187. package/mcp-server/tools/messagesRetrieve.d.ts.map +1 -0
  188. package/mcp-server/tools/messagesRetrieve.js +54 -0
  189. package/mcp-server/tools/messagesRetrieve.js.map +1 -0
  190. package/mcp-server/tools/notificationsList.d.ts +8 -0
  191. package/mcp-server/tools/notificationsList.d.ts.map +1 -0
  192. package/mcp-server/tools/notificationsList.js +52 -0
  193. package/mcp-server/tools/notificationsList.js.map +1 -0
  194. package/mcp-server/tools/notificationsRetrieve.d.ts +9 -0
  195. package/mcp-server/tools/notificationsRetrieve.d.ts.map +1 -0
  196. package/mcp-server/tools/notificationsRetrieve.js +53 -0
  197. package/mcp-server/tools/notificationsRetrieve.js.map +1 -0
  198. package/mcp-server/tools/notificationsStatsGraph.d.ts +9 -0
  199. package/mcp-server/tools/notificationsStatsGraph.d.ts.map +1 -0
  200. package/mcp-server/tools/notificationsStatsGraph.js +53 -0
  201. package/mcp-server/tools/notificationsStatsGraph.js.map +1 -0
  202. package/mcp-server/tools/notificationsStatsRetrieve.d.ts +8 -0
  203. package/mcp-server/tools/notificationsStatsRetrieve.d.ts.map +1 -0
  204. package/mcp-server/tools/notificationsStatsRetrieve.js +52 -0
  205. package/mcp-server/tools/notificationsStatsRetrieve.js.map +1 -0
  206. package/mcp-server/tools/subscribersAuthenticationChatAccessOauth.d.ts +8 -0
  207. package/mcp-server/tools/subscribersAuthenticationChatAccessOauth.d.ts.map +1 -0
  208. package/mcp-server/tools/subscribersAuthenticationChatAccessOauth.js +51 -0
  209. package/mcp-server/tools/subscribersAuthenticationChatAccessOauth.js.map +1 -0
  210. package/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.d.ts +8 -0
  211. package/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.d.ts.map +1 -0
  212. package/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.js +52 -0
  213. package/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.js.map +1 -0
  214. package/mcp-server/tools/subscribersCreate.d.ts +10 -0
  215. package/mcp-server/tools/subscribersCreate.d.ts.map +1 -0
  216. package/mcp-server/tools/subscribersCreate.js +56 -0
  217. package/mcp-server/tools/subscribersCreate.js.map +1 -0
  218. package/mcp-server/tools/subscribersCreateBulk.d.ts +10 -0
  219. package/mcp-server/tools/subscribersCreateBulk.d.ts.map +1 -0
  220. package/mcp-server/tools/subscribersCreateBulk.js +59 -0
  221. package/mcp-server/tools/subscribersCreateBulk.js.map +1 -0
  222. package/mcp-server/tools/subscribersCredentialsAppend.d.ts +11 -0
  223. package/mcp-server/tools/subscribersCredentialsAppend.d.ts.map +1 -0
  224. package/mcp-server/tools/subscribersCredentialsAppend.js +58 -0
  225. package/mcp-server/tools/subscribersCredentialsAppend.js.map +1 -0
  226. package/mcp-server/tools/subscribersCredentialsDelete.d.ts +10 -0
  227. package/mcp-server/tools/subscribersCredentialsDelete.d.ts.map +1 -0
  228. package/mcp-server/tools/subscribersCredentialsDelete.js +55 -0
  229. package/mcp-server/tools/subscribersCredentialsDelete.js.map +1 -0
  230. package/mcp-server/tools/subscribersCredentialsUpdate.d.ts +11 -0
  231. package/mcp-server/tools/subscribersCredentialsUpdate.d.ts.map +1 -0
  232. package/mcp-server/tools/subscribersCredentialsUpdate.js +57 -0
  233. package/mcp-server/tools/subscribersCredentialsUpdate.js.map +1 -0
  234. package/mcp-server/tools/subscribersDelete.d.ts +9 -0
  235. package/mcp-server/tools/subscribersDelete.d.ts.map +1 -0
  236. package/mcp-server/tools/subscribersDelete.js +55 -0
  237. package/mcp-server/tools/subscribersDelete.js.map +1 -0
  238. package/mcp-server/tools/subscribersList.d.ts +10 -0
  239. package/mcp-server/tools/subscribersList.d.ts.map +1 -0
  240. package/mcp-server/tools/subscribersList.js +56 -0
  241. package/mcp-server/tools/subscribersList.js.map +1 -0
  242. package/mcp-server/tools/subscribersMessagesMarkAll.d.ts +11 -0
  243. package/mcp-server/tools/subscribersMessagesMarkAll.d.ts.map +1 -0
  244. package/mcp-server/tools/subscribersMessagesMarkAll.js +55 -0
  245. package/mcp-server/tools/subscribersMessagesMarkAll.js.map +1 -0
  246. package/mcp-server/tools/subscribersMessagesMarkAllAs.d.ts +11 -0
  247. package/mcp-server/tools/subscribersMessagesMarkAllAs.d.ts.map +1 -0
  248. package/mcp-server/tools/subscribersMessagesMarkAllAs.js +55 -0
  249. package/mcp-server/tools/subscribersMessagesMarkAllAs.js.map +1 -0
  250. package/mcp-server/tools/subscribersMessagesUpdateAsSeen.d.ts +8 -0
  251. package/mcp-server/tools/subscribersMessagesUpdateAsSeen.d.ts.map +1 -0
  252. package/mcp-server/tools/subscribersMessagesUpdateAsSeen.js +52 -0
  253. package/mcp-server/tools/subscribersMessagesUpdateAsSeen.js.map +1 -0
  254. package/mcp-server/tools/subscribersNotificationsFeed.d.ts +8 -0
  255. package/mcp-server/tools/subscribersNotificationsFeed.d.ts.map +1 -0
  256. package/mcp-server/tools/subscribersNotificationsFeed.js +52 -0
  257. package/mcp-server/tools/subscribersNotificationsFeed.js.map +1 -0
  258. package/mcp-server/tools/subscribersNotificationsUnseenCount.d.ts +8 -0
  259. package/mcp-server/tools/subscribersNotificationsUnseenCount.d.ts.map +1 -0
  260. package/mcp-server/tools/subscribersNotificationsUnseenCount.js +52 -0
  261. package/mcp-server/tools/subscribersNotificationsUnseenCount.js.map +1 -0
  262. package/mcp-server/tools/subscribersPatch.d.ts +11 -0
  263. package/mcp-server/tools/subscribersPatch.d.ts.map +1 -0
  264. package/mcp-server/tools/subscribersPatch.js +57 -0
  265. package/mcp-server/tools/subscribersPatch.js.map +1 -0
  266. package/mcp-server/tools/subscribersPreferencesList.d.ts +9 -0
  267. package/mcp-server/tools/subscribersPreferencesList.d.ts.map +1 -0
  268. package/mcp-server/tools/subscribersPreferencesList.js +55 -0
  269. package/mcp-server/tools/subscribersPreferencesList.js.map +1 -0
  270. package/mcp-server/tools/subscribersPreferencesUpdate.d.ts +11 -0
  271. package/mcp-server/tools/subscribersPreferencesUpdate.d.ts.map +1 -0
  272. package/mcp-server/tools/subscribersPreferencesUpdate.js +57 -0
  273. package/mcp-server/tools/subscribersPreferencesUpdate.js.map +1 -0
  274. package/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.d.ts +11 -0
  275. package/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.d.ts.map +1 -0
  276. package/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.js +57 -0
  277. package/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.js.map +1 -0
  278. package/mcp-server/tools/subscribersRetrieve.d.ts +9 -0
  279. package/mcp-server/tools/subscribersRetrieve.d.ts.map +1 -0
  280. package/mcp-server/tools/subscribersRetrieve.js +55 -0
  281. package/mcp-server/tools/subscribersRetrieve.js.map +1 -0
  282. package/mcp-server/tools/subscribersSearch.d.ts +8 -0
  283. package/mcp-server/tools/subscribersSearch.d.ts.map +1 -0
  284. package/mcp-server/tools/subscribersSearch.js +52 -0
  285. package/mcp-server/tools/subscribersSearch.js.map +1 -0
  286. package/mcp-server/tools/topicsCreate.d.ts +10 -0
  287. package/mcp-server/tools/topicsCreate.d.ts.map +1 -0
  288. package/mcp-server/tools/topicsCreate.js +56 -0
  289. package/mcp-server/tools/topicsCreate.js.map +1 -0
  290. package/mcp-server/tools/topicsDelete.d.ts +9 -0
  291. package/mcp-server/tools/topicsDelete.d.ts.map +1 -0
  292. package/mcp-server/tools/topicsDelete.js +54 -0
  293. package/mcp-server/tools/topicsDelete.js.map +1 -0
  294. package/mcp-server/tools/topicsList.d.ts +8 -0
  295. package/mcp-server/tools/topicsList.d.ts.map +1 -0
  296. package/mcp-server/tools/topicsList.js +54 -0
  297. package/mcp-server/tools/topicsList.js.map +1 -0
  298. package/mcp-server/tools/topicsRename.d.ts +11 -0
  299. package/mcp-server/tools/topicsRename.d.ts.map +1 -0
  300. package/mcp-server/tools/topicsRename.js +57 -0
  301. package/mcp-server/tools/topicsRename.js.map +1 -0
  302. package/mcp-server/tools/topicsRetrieve.d.ts +9 -0
  303. package/mcp-server/tools/topicsRetrieve.d.ts.map +1 -0
  304. package/mcp-server/tools/topicsRetrieve.js +55 -0
  305. package/mcp-server/tools/topicsRetrieve.js.map +1 -0
  306. package/mcp-server/tools/topicsSubscribersAssign.d.ts +11 -0
  307. package/mcp-server/tools/topicsSubscribersAssign.d.ts.map +1 -0
  308. package/mcp-server/tools/topicsSubscribersAssign.js +57 -0
  309. package/mcp-server/tools/topicsSubscribersAssign.js.map +1 -0
  310. package/mcp-server/tools/topicsSubscribersRemove.d.ts +11 -0
  311. package/mcp-server/tools/topicsSubscribersRemove.d.ts.map +1 -0
  312. package/mcp-server/tools/topicsSubscribersRemove.js +56 -0
  313. package/mcp-server/tools/topicsSubscribersRemove.js.map +1 -0
  314. package/mcp-server/tools/topicsSubscribersRetrieve.d.ts +10 -0
  315. package/mcp-server/tools/topicsSubscribersRetrieve.d.ts.map +1 -0
  316. package/mcp-server/tools/topicsSubscribersRetrieve.js +56 -0
  317. package/mcp-server/tools/topicsSubscribersRetrieve.js.map +1 -0
  318. package/mcp-server/tools/trigger.d.ts +10 -0
  319. package/mcp-server/tools/trigger.d.ts.map +1 -0
  320. package/mcp-server/tools/trigger.js +60 -0
  321. package/mcp-server/tools/trigger.js.map +1 -0
  322. package/mcp-server/tools/triggerBroadcast.d.ts +10 -0
  323. package/mcp-server/tools/triggerBroadcast.d.ts.map +1 -0
  324. package/mcp-server/tools/triggerBroadcast.js +57 -0
  325. package/mcp-server/tools/triggerBroadcast.js.map +1 -0
  326. package/mcp-server/tools/triggerBulk.d.ts +10 -0
  327. package/mcp-server/tools/triggerBulk.d.ts.map +1 -0
  328. package/mcp-server/tools/triggerBulk.js +59 -0
  329. package/mcp-server/tools/triggerBulk.js.map +1 -0
  330. package/mcp-server/tools.d.ts +25 -0
  331. package/mcp-server/tools.d.ts.map +1 -0
  332. package/mcp-server/tools.js +78 -0
  333. package/mcp-server/tools.js.map +1 -0
  334. package/package.json +17 -2
  335. package/sources/json-development.json +96 -0
  336. package/src/funcs/cancel.ts +1 -1
  337. package/src/funcs/integrationsCreate.ts +1 -1
  338. package/src/funcs/integrationsDelete.ts +1 -1
  339. package/src/funcs/integrationsList.ts +1 -1
  340. package/src/funcs/integrationsListActive.ts +1 -1
  341. package/src/funcs/integrationsSetAsPrimary.ts +1 -1
  342. package/src/funcs/integrationsUpdate.ts +1 -1
  343. package/src/funcs/integrationsWebhooksRetrieve.ts +1 -1
  344. package/src/funcs/messagesDelete.ts +1 -1
  345. package/src/funcs/messagesDeleteByTransactionId.ts +1 -1
  346. package/src/funcs/messagesRetrieve.ts +1 -1
  347. package/src/funcs/notificationsList.ts +1 -1
  348. package/src/funcs/notificationsRetrieve.ts +1 -1
  349. package/src/funcs/notificationsStatsGraph.ts +1 -1
  350. package/src/funcs/notificationsStatsRetrieve.ts +1 -1
  351. package/src/funcs/subscribersAuthenticationChatAccessOauth.ts +1 -1
  352. package/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts +1 -1
  353. package/src/funcs/subscribersCreate.ts +1 -1
  354. package/src/funcs/subscribersCreateBulk.ts +1 -1
  355. package/src/funcs/subscribersCredentialsAppend.ts +1 -1
  356. package/src/funcs/subscribersCredentialsDelete.ts +1 -1
  357. package/src/funcs/subscribersCredentialsUpdate.ts +1 -1
  358. package/src/funcs/subscribersDelete.ts +1 -1
  359. package/src/funcs/subscribersList.ts +1 -1
  360. package/src/funcs/subscribersMessagesMarkAll.ts +1 -1
  361. package/src/funcs/subscribersMessagesMarkAllAs.ts +1 -1
  362. package/src/funcs/subscribersMessagesUpdateAsSeen.ts +1 -1
  363. package/src/funcs/subscribersNotificationsFeed.ts +1 -1
  364. package/src/funcs/subscribersNotificationsUnseenCount.ts +1 -1
  365. package/src/funcs/subscribersPatch.ts +1 -1
  366. package/src/funcs/subscribersPreferencesList.ts +1 -1
  367. package/src/funcs/subscribersPreferencesUpdate.ts +1 -1
  368. package/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts +1 -1
  369. package/src/funcs/subscribersRetrieve.ts +1 -1
  370. package/src/funcs/subscribersSearch.ts +1 -1
  371. package/src/funcs/topicsCreate.ts +1 -1
  372. package/src/funcs/topicsDelete.ts +1 -1
  373. package/src/funcs/topicsList.ts +1 -1
  374. package/src/funcs/topicsRename.ts +1 -1
  375. package/src/funcs/topicsRetrieve.ts +1 -1
  376. package/src/funcs/topicsSubscribersAssign.ts +1 -1
  377. package/src/funcs/topicsSubscribersRemove.ts +1 -1
  378. package/src/funcs/topicsSubscribersRetrieve.ts +1 -1
  379. package/src/funcs/trigger.ts +1 -1
  380. package/src/funcs/triggerBroadcast.ts +1 -1
  381. package/src/funcs/triggerBulk.ts +1 -1
  382. package/src/lib/config.ts +6 -6
  383. package/src/lib/files.ts +1 -1
  384. package/src/lib/primitives.ts +14 -0
  385. package/src/lib/sdks.ts +1 -1
  386. package/src/mcp-server/cli/start/command.ts +107 -0
  387. package/src/mcp-server/cli/start/impl.ts +134 -0
  388. package/src/mcp-server/cli.ts +13 -0
  389. package/src/mcp-server/console-logger.ts +71 -0
  390. package/src/mcp-server/mcp-server.ts +26 -0
  391. package/src/mcp-server/resources.ts +96 -0
  392. package/src/mcp-server/scopes.ts +7 -0
  393. package/src/mcp-server/server.ts +134 -0
  394. package/src/mcp-server/shared.ts +75 -0
  395. package/src/mcp-server/tools/cancel.ts +42 -0
  396. package/src/mcp-server/tools/integrationsCreate.ts +41 -0
  397. package/src/mcp-server/tools/integrationsDelete.ts +37 -0
  398. package/src/mcp-server/tools/integrationsList.ts +37 -0
  399. package/src/mcp-server/tools/integrationsListActive.ts +37 -0
  400. package/src/mcp-server/tools/integrationsSetAsPrimary.ts +37 -0
  401. package/src/mcp-server/tools/integrationsUpdate.ts +41 -0
  402. package/src/mcp-server/tools/integrationsWebhooksRetrieve.ts +39 -0
  403. package/src/mcp-server/tools/messagesDelete.ts +39 -0
  404. package/src/mcp-server/tools/messagesDeleteByTransactionId.ts +40 -0
  405. package/src/mcp-server/tools/messagesRetrieve.ts +37 -0
  406. package/src/mcp-server/tools/notificationsList.ts +36 -0
  407. package/src/mcp-server/tools/notificationsRetrieve.ts +37 -0
  408. package/src/mcp-server/tools/notificationsStatsGraph.ts +37 -0
  409. package/src/mcp-server/tools/notificationsStatsRetrieve.ts +35 -0
  410. package/src/mcp-server/tools/subscribersAuthenticationChatAccessOauth.ts +36 -0
  411. package/src/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.ts +38 -0
  412. package/src/mcp-server/tools/subscribersCreate.ts +41 -0
  413. package/src/mcp-server/tools/subscribersCreateBulk.ts +43 -0
  414. package/src/mcp-server/tools/subscribersCredentialsAppend.ts +44 -0
  415. package/src/mcp-server/tools/subscribersCredentialsDelete.ts +39 -0
  416. package/src/mcp-server/tools/subscribersCredentialsUpdate.ts +43 -0
  417. package/src/mcp-server/tools/subscribersDelete.ts +39 -0
  418. package/src/mcp-server/tools/subscribersList.ts +41 -0
  419. package/src/mcp-server/tools/subscribersMessagesMarkAll.ts +42 -0
  420. package/src/mcp-server/tools/subscribersMessagesMarkAllAs.ts +40 -0
  421. package/src/mcp-server/tools/subscribersMessagesUpdateAsSeen.ts +37 -0
  422. package/src/mcp-server/tools/subscribersNotificationsFeed.ts +36 -0
  423. package/src/mcp-server/tools/subscribersNotificationsUnseenCount.ts +38 -0
  424. package/src/mcp-server/tools/subscribersPatch.ts +42 -0
  425. package/src/mcp-server/tools/subscribersPreferencesList.ts +39 -0
  426. package/src/mcp-server/tools/subscribersPreferencesUpdate.ts +43 -0
  427. package/src/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.ts +45 -0
  428. package/src/mcp-server/tools/subscribersRetrieve.ts +39 -0
  429. package/src/mcp-server/tools/subscribersSearch.ts +36 -0
  430. package/src/mcp-server/tools/topicsCreate.ts +40 -0
  431. package/src/mcp-server/tools/topicsDelete.ts +37 -0
  432. package/src/mcp-server/tools/topicsList.ts +37 -0
  433. package/src/mcp-server/tools/topicsRename.ts +42 -0
  434. package/src/mcp-server/tools/topicsRetrieve.ts +39 -0
  435. package/src/mcp-server/tools/topicsSubscribersAssign.ts +42 -0
  436. package/src/mcp-server/tools/topicsSubscribersRemove.ts +41 -0
  437. package/src/mcp-server/tools/topicsSubscribersRetrieve.ts +41 -0
  438. package/src/mcp-server/tools/trigger.ts +44 -0
  439. package/src/mcp-server/tools/triggerBroadcast.ts +42 -0
  440. package/src/mcp-server/tools/triggerBulk.ts +43 -0
  441. package/src/mcp-server/tools.ts +121 -0
@@ -136,7 +136,7 @@ async function $do(
136
136
  const requestSecurity = resolveGlobalSecurity(securityInput);
137
137
 
138
138
  const context = {
139
- baseURL: options?.serverURL ?? "",
139
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
140
140
  operationID: "SubscribersController_updateSubscriberPreferences",
141
141
  oAuth2Scopes: [],
142
142
 
@@ -141,7 +141,7 @@ async function $do(
141
141
  const requestSecurity = resolveGlobalSecurity(securityInput);
142
142
 
143
143
  const context = {
144
- baseURL: options?.serverURL ?? "",
144
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
145
145
  operationID: "SubscribersV1Controller_updateSubscriberOnlineFlag",
146
146
  oAuth2Scopes: [],
147
147
 
@@ -125,7 +125,7 @@ async function $do(
125
125
  const requestSecurity = resolveGlobalSecurity(securityInput);
126
126
 
127
127
  const context = {
128
- baseURL: options?.serverURL ?? "",
128
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
129
129
  operationID: "SubscribersController_getSubscriber",
130
130
  oAuth2Scopes: [],
131
131
 
@@ -118,7 +118,7 @@ async function $do(
118
118
  const requestSecurity = resolveGlobalSecurity(securityInput);
119
119
 
120
120
  const context = {
121
- baseURL: options?.serverURL ?? "",
121
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
122
122
  operationID: "SubscribersController_searchSubscribers",
123
123
  oAuth2Scopes: [],
124
124
 
@@ -120,7 +120,7 @@ async function $do(
120
120
  const requestSecurity = resolveGlobalSecurity(securityInput);
121
121
 
122
122
  const context = {
123
- baseURL: options?.serverURL ?? "",
123
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
124
124
  operationID: "TopicsController_createTopic",
125
125
  oAuth2Scopes: [],
126
126
 
@@ -123,7 +123,7 @@ async function $do(
123
123
  const requestSecurity = resolveGlobalSecurity(securityInput);
124
124
 
125
125
  const context = {
126
- baseURL: options?.serverURL ?? "",
126
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
127
127
  operationID: "TopicsController_deleteTopic",
128
128
  oAuth2Scopes: [],
129
129
 
@@ -114,7 +114,7 @@ async function $do(
114
114
  const requestSecurity = resolveGlobalSecurity(securityInput);
115
115
 
116
116
  const context = {
117
- baseURL: options?.serverURL ?? "",
117
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
118
118
  operationID: "TopicsController_listTopics",
119
119
  oAuth2Scopes: [],
120
120
 
@@ -131,7 +131,7 @@ async function $do(
131
131
  const requestSecurity = resolveGlobalSecurity(securityInput);
132
132
 
133
133
  const context = {
134
- baseURL: options?.serverURL ?? "",
134
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
135
135
  operationID: "TopicsController_renameTopic",
136
136
  oAuth2Scopes: [],
137
137
 
@@ -123,7 +123,7 @@ async function $do(
123
123
  const requestSecurity = resolveGlobalSecurity(securityInput);
124
124
 
125
125
  const context = {
126
- baseURL: options?.serverURL ?? "",
126
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
127
127
  operationID: "TopicsController_getTopic",
128
128
  oAuth2Scopes: [],
129
129
 
@@ -131,7 +131,7 @@ async function $do(
131
131
  const requestSecurity = resolveGlobalSecurity(securityInput);
132
132
 
133
133
  const context = {
134
- baseURL: options?.serverURL ?? "",
134
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
135
135
  operationID: "TopicsController_assign",
136
136
  oAuth2Scopes: [],
137
137
 
@@ -135,7 +135,7 @@ async function $do(
135
135
  const requestSecurity = resolveGlobalSecurity(securityInput);
136
136
 
137
137
  const context = {
138
- baseURL: options?.serverURL ?? "",
138
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
139
139
  operationID: "TopicsController_removeSubscribers",
140
140
  oAuth2Scopes: [],
141
141
 
@@ -136,7 +136,7 @@ async function $do(
136
136
  const requestSecurity = resolveGlobalSecurity(securityInput);
137
137
 
138
138
  const context = {
139
- baseURL: options?.serverURL ?? "",
139
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
140
140
  operationID: "TopicsController_getTopicSubscriber",
141
141
  oAuth2Scopes: [],
142
142
 
@@ -123,7 +123,7 @@ async function $do(
123
123
  const requestSecurity = resolveGlobalSecurity(securityInput);
124
124
 
125
125
  const context = {
126
- baseURL: options?.serverURL ?? "",
126
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
127
127
  operationID: "EventsController_trigger",
128
128
  oAuth2Scopes: [],
129
129
 
@@ -122,7 +122,7 @@ async function $do(
122
122
  const requestSecurity = resolveGlobalSecurity(securityInput);
123
123
 
124
124
  const context = {
125
- baseURL: options?.serverURL ?? "",
125
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
126
126
  operationID: "EventsController_broadcastEventToAll",
127
127
  oAuth2Scopes: [],
128
128
 
@@ -122,7 +122,7 @@ async function $do(
122
122
  const requestSecurity = resolveGlobalSecurity(securityInput);
123
123
 
124
124
  const context = {
125
- baseURL: options?.serverURL ?? "",
125
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
126
126
  operationID: "EventsController_triggerBulk",
127
127
  oAuth2Scopes: [],
128
128
 
package/src/lib/config.ts CHANGED
@@ -16,17 +16,17 @@ export const ServerList = [
16
16
  ] as const;
17
17
 
18
18
  export type SDKOptions = {
19
- secretKey?: string | (() => Promise<string>);
19
+ secretKey?: string | (() => Promise<string>) | undefined;
20
20
 
21
21
  httpClient?: HTTPClient;
22
22
  /**
23
23
  * Allows overriding the default server used by the SDK
24
24
  */
25
- serverIdx?: number;
25
+ serverIdx?: number | undefined;
26
26
  /**
27
27
  * Allows overriding the default server URL used by the SDK
28
28
  */
29
- serverURL?: string;
29
+ serverURL?: string | undefined;
30
30
  /**
31
31
  * Allows overriding the default retry config used by the SDK
32
32
  */
@@ -55,7 +55,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
55
55
  export const SDK_METADATA = {
56
56
  language: "typescript",
57
57
  openapiDocVersion: "1.0",
58
- sdkVersion: "0.3.0",
59
- genVersion: "2.515.0",
60
- userAgent: "speakeasy-sdk/typescript 0.3.0 2.515.0 1.0 @novu/api",
58
+ sdkVersion: "0.5.0",
59
+ genVersion: "2.539.0",
60
+ userAgent: "speakeasy-sdk/typescript 0.5.0 2.539.0 1.0 @novu/api",
61
61
  } as const;
package/src/lib/files.ts CHANGED
@@ -36,5 +36,5 @@ export async function readableStreamToArrayBuffer(
36
36
  offset += chunk.length;
37
37
  }
38
38
 
39
- return concatenatedChunks.buffer;
39
+ return concatenatedChunks.buffer as ArrayBuffer;
40
40
  }
@@ -134,3 +134,17 @@ export function compactMap<T>(
134
134
 
135
135
  return out;
136
136
  }
137
+
138
+ export function allRequired<V extends Record<string, unknown>>(
139
+ v: V,
140
+ ):
141
+ | {
142
+ [K in keyof V]: NonNullable<V[K]>;
143
+ }
144
+ | undefined {
145
+ if (Object.values(v).every((x) => x == null)) {
146
+ return void 0;
147
+ }
148
+
149
+ return v as ReturnType<typeof allRequired<V>>;
150
+ }
package/src/lib/sdks.ts CHANGED
@@ -78,7 +78,7 @@ export class ClientSDK {
78
78
  readonly #httpClient: HTTPClient;
79
79
  readonly #hooks: SDKHooks;
80
80
  readonly #logger?: Logger | undefined;
81
- protected readonly _baseURL: URL | null;
81
+ public readonly _baseURL: URL | null;
82
82
  public readonly _options: SDKOptions & { hooks?: SDKHooks };
83
83
 
84
84
  constructor(options: SDKOptions = {}) {
@@ -0,0 +1,107 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { buildCommand } from "@stricli/core";
6
+ import { numberParser } from "@stricli/core";
7
+ import * as z from "zod";
8
+ import { consoleLoggerLevels } from "../../console-logger.js";
9
+ import { mcpScopes } from "../../scopes.js";
10
+
11
+ export const startCommand = buildCommand({
12
+ loader: async () => {
13
+ const { main } = await import("./impl.js");
14
+ return main;
15
+ },
16
+ parameters: {
17
+ flags: {
18
+ transport: {
19
+ kind: "enum",
20
+ brief: "The transport to use for communicating with the server",
21
+ default: "stdio",
22
+ values: ["stdio", "sse"],
23
+ },
24
+ port: {
25
+ kind: "parsed",
26
+ brief: "The port to use when the SSE transport is enabled",
27
+ default: "2718",
28
+ parse: (val: string) =>
29
+ z.coerce.number().int().gte(0).lt(65536).parse(val),
30
+ },
31
+ tool: {
32
+ kind: "parsed",
33
+ brief: "Specify tools to mount on the server",
34
+ optional: true,
35
+ variadic: true,
36
+ parse: (value) => {
37
+ return z.string().parse(value);
38
+ },
39
+ },
40
+ ...(mcpScopes.length
41
+ ? {
42
+ scope: {
43
+ kind: "enum",
44
+ brief:
45
+ "Mount tools/resources that match given scope (repeatable flag)",
46
+ values: mcpScopes,
47
+ variadic: true,
48
+ optional: true,
49
+ },
50
+ }
51
+ : {}),
52
+ "secret-key": {
53
+ kind: "parsed",
54
+ brief: "Sets the secretKey auth field for the API",
55
+ optional: true,
56
+ parse: (value) => {
57
+ return z.string().parse(value);
58
+ },
59
+ },
60
+ "server-url": {
61
+ kind: "parsed",
62
+ brief: "Overrides the default server URL used by the SDK",
63
+ optional: true,
64
+ parse: (value) => new URL(value).toString(),
65
+ },
66
+ "server-index": {
67
+ kind: "parsed",
68
+ brief: "Selects a predefined server used by the SDK",
69
+ optional: true,
70
+ parse: numberParser,
71
+ },
72
+ "log-level": {
73
+ kind: "enum",
74
+ brief: "The log level to use for the server",
75
+ default: "info",
76
+ values: consoleLoggerLevels,
77
+ },
78
+ env: {
79
+ kind: "parsed",
80
+ brief: "Environment variables made available to the server",
81
+ optional: true,
82
+ variadic: true,
83
+ parse: (val: string) => {
84
+ const sepIdx = val.indexOf("=");
85
+ if (sepIdx === -1) {
86
+ throw new Error("Invalid environment variable format");
87
+ }
88
+
89
+ const key = val.slice(0, sepIdx);
90
+ const value = val.slice(sepIdx + 1);
91
+
92
+ return [
93
+ z.string().nonempty({
94
+ message: "Environment variable key must be a non-empty string",
95
+ }).parse(key),
96
+ z.string().nonempty({
97
+ message: "Environment variable value must be a non-empty string",
98
+ }).parse(value),
99
+ ] satisfies [string, string];
100
+ },
101
+ },
102
+ },
103
+ },
104
+ docs: {
105
+ brief: "Run the Model Context Protocol server",
106
+ },
107
+ });
@@ -0,0 +1,134 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
6
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
7
+ import express from "express";
8
+ import { SDKOptions } from "../../../lib/config.js";
9
+ import { LocalContext } from "../../cli.js";
10
+ import {
11
+ ConsoleLoggerLevel,
12
+ createConsoleLogger,
13
+ } from "../../console-logger.js";
14
+ import { MCPScope } from "../../scopes.js";
15
+ import { createMCPServer } from "../../server.js";
16
+
17
+ interface StartCommandFlags {
18
+ readonly transport: "stdio" | "sse";
19
+ readonly port: number;
20
+ readonly tool?: string[];
21
+ readonly scope?: MCPScope[];
22
+ readonly "secret-key"?: string | undefined;
23
+ readonly "server-url"?: string;
24
+ readonly "server-index"?: SDKOptions["serverIdx"];
25
+ readonly "log-level": ConsoleLoggerLevel;
26
+ readonly env?: [string, string][];
27
+ }
28
+
29
+ export async function main(this: LocalContext, flags: StartCommandFlags) {
30
+ flags.env?.forEach(([key, value]) => {
31
+ process.env[key] = value;
32
+ });
33
+
34
+ switch (flags.transport) {
35
+ case "stdio":
36
+ await startStdio(flags);
37
+ break;
38
+ case "sse":
39
+ await startSSE(flags);
40
+ break;
41
+ default:
42
+ throw new Error(`Invalid transport: ${flags.transport}`);
43
+ }
44
+ }
45
+
46
+ async function startStdio(flags: StartCommandFlags) {
47
+ const logger = createConsoleLogger(flags["log-level"]);
48
+ const transport = new StdioServerTransport();
49
+ const server = createMCPServer({
50
+ logger,
51
+ allowedTools: flags.tool,
52
+ scopes: flags.scope,
53
+ ...{ secretKey: flags["secret-key"] },
54
+ serverURL: flags["server-url"],
55
+ serverIdx: flags["server-index"],
56
+ });
57
+ await server.connect(transport);
58
+
59
+ const abort = async () => {
60
+ await server.close();
61
+ process.exit(0);
62
+ };
63
+ process.on("SIGTERM", abort);
64
+ process.on("SIGINT", abort);
65
+ }
66
+
67
+ async function startSSE(flags: StartCommandFlags) {
68
+ const logger = createConsoleLogger(flags["log-level"]);
69
+ const app = express();
70
+ const mcpServer = createMCPServer({
71
+ logger,
72
+ allowedTools: flags.tool,
73
+ scopes: flags.scope,
74
+ ...{ secretKey: flags["secret-key"] },
75
+ serverURL: flags["server-url"],
76
+ serverIdx: flags["server-index"],
77
+ });
78
+ let transport: SSEServerTransport | undefined;
79
+ const controller = new AbortController();
80
+
81
+ app.get("/sse", async (_req, res) => {
82
+ transport = new SSEServerTransport("/message", res);
83
+
84
+ await mcpServer.connect(transport);
85
+
86
+ mcpServer.server.onclose = async () => {
87
+ res.end();
88
+ };
89
+ });
90
+
91
+ app.post("/message", async (req, res) => {
92
+ if (!transport) {
93
+ throw new Error("Server transport not initialized");
94
+ }
95
+
96
+ await transport.handlePostMessage(req, res);
97
+ });
98
+
99
+ const httpServer = app.listen(flags.port, "0.0.0.0", () => {
100
+ const ha = httpServer.address();
101
+ const host = typeof ha === "string" ? ha : `${ha?.address}:${ha?.port}`;
102
+ logger.info("MCP HTTP server started", { host });
103
+ });
104
+
105
+ let closing = false;
106
+ controller.signal.addEventListener("abort", async () => {
107
+ if (closing) {
108
+ logger.info("Received second signal. Forcing shutdown.");
109
+ process.exit(1);
110
+ }
111
+ closing = true;
112
+
113
+ logger.info("Shutting down MCP server");
114
+
115
+ await mcpServer.close();
116
+
117
+ logger.info("Shutting down HTTP server");
118
+
119
+ const timer = setTimeout(() => {
120
+ logger.info("Forcing shutdown");
121
+ process.exit(1);
122
+ }, 5000);
123
+
124
+ httpServer.close(() => {
125
+ clearTimeout(timer);
126
+ logger.info("Graceful shutdown complete");
127
+ process.exit(0);
128
+ });
129
+ });
130
+
131
+ const abort = () => controller.abort();
132
+ process.on("SIGTERM", abort);
133
+ process.on("SIGINT", abort);
134
+ }
@@ -0,0 +1,13 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CommandContext, StricliProcess } from "@stricli/core";
6
+
7
+ export interface LocalContext extends CommandContext {
8
+ readonly process: StricliProcess;
9
+ }
10
+
11
+ export function buildContext(process: NodeJS.Process): LocalContext {
12
+ return { process: process as StricliProcess };
13
+ }
@@ -0,0 +1,71 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ export const consoleLoggerLevels = [
6
+ "debug",
7
+ "warning",
8
+ "info",
9
+ "error",
10
+ ] as const;
11
+
12
+ export type ConsoleLoggerLevel = (typeof consoleLoggerLevels)[number];
13
+
14
+ export type ConsoleLogger = {
15
+ [key in ConsoleLoggerLevel]: (
16
+ message: string,
17
+ data?: Record<string, unknown>,
18
+ ) => void;
19
+ };
20
+
21
+ export function createConsoleLogger(level: ConsoleLoggerLevel): ConsoleLogger {
22
+ const min = consoleLoggerLevels.indexOf(level);
23
+ const noop = () => {};
24
+
25
+ const logger: ConsoleLogger = {
26
+ debug: noop,
27
+ warning: noop,
28
+ info: noop,
29
+ error: noop,
30
+ };
31
+
32
+ return consoleLoggerLevels.reduce((logger, level, i) => {
33
+ if (i < min) {
34
+ return logger;
35
+ }
36
+
37
+ logger[level] = log.bind(null, level);
38
+
39
+ return logger;
40
+ }, logger);
41
+ }
42
+
43
+ function log(
44
+ level: ConsoleLoggerLevel,
45
+ message: string,
46
+ data?: Record<string, unknown>,
47
+ ) {
48
+ let line = "";
49
+ const allData = [{ msg: message, l: level }, data];
50
+
51
+ for (const ctx of allData) {
52
+ for (const [key, value] of Object.entries(ctx || {})) {
53
+ if (value == null) {
54
+ line += ` ${key}=<${value}>`;
55
+ } else if (typeof value === "function") {
56
+ line += ` ${key}=<function>`;
57
+ } else if (typeof value === "symbol") {
58
+ line += ` ${key}=${value.toString()}`;
59
+ } else if (typeof value === "string") {
60
+ const v = value.search(/\s/g) >= 0 ? JSON.stringify(value) : value;
61
+ line += ` ${key}=${v}`;
62
+ } else if (typeof value !== "object") {
63
+ line += ` ${key}=${value}`;
64
+ } else {
65
+ line += ` ${key}="${JSON.stringify(value)}"`;
66
+ }
67
+ }
68
+ }
69
+
70
+ console.error(line);
71
+ }
@@ -0,0 +1,26 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { buildApplication, buildRouteMap, run } from "@stricli/core";
6
+ import process from "node:process";
7
+ import { buildContext } from "./cli.js";
8
+ import { startCommand } from "./cli/start/command.js";
9
+
10
+ const routes = buildRouteMap({
11
+ routes: {
12
+ start: startCommand,
13
+ },
14
+ docs: {
15
+ brief: "MCP server CLI",
16
+ },
17
+ });
18
+
19
+ export const app = buildApplication(routes, {
20
+ name: "mcp",
21
+ versionInfo: {
22
+ currentVersion: "0.5.0",
23
+ },
24
+ });
25
+
26
+ run(app, process.argv.slice(2), buildContext(process));
@@ -0,0 +1,96 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import { RequestHandlerExtra } from "@modelcontextprotocol/sdk/shared/protocol.js";
7
+ import { Variables } from "@modelcontextprotocol/sdk/shared/uriTemplate.js";
8
+ import { ReadResourceResult } from "@modelcontextprotocol/sdk/types.js";
9
+ import { NovuCore } from "../core.js";
10
+ import { Result } from "../types/fp.js";
11
+ import { MCPScope } from "./scopes.js";
12
+ import { isAsyncIterable, isBinaryData, valueToBase64 } from "./shared.js";
13
+
14
+ export type ReadResourceCallback = (
15
+ client: NovuCore,
16
+ uri: URL,
17
+ extra: RequestHandlerExtra,
18
+ ) => ReadResourceResult | Promise<ReadResourceResult>;
19
+
20
+ export type ResourceDefinition = {
21
+ name: string;
22
+ description: string;
23
+ scopes?: MCPScope[];
24
+ resource: string;
25
+ read: ReadResourceCallback;
26
+ };
27
+
28
+ export type ReadResourceTemplateCallback = (
29
+ client: NovuCore,
30
+ uri: URL,
31
+ vars: Variables,
32
+ extra: RequestHandlerExtra,
33
+ ) => ReadResourceResult | Promise<ReadResourceResult>;
34
+
35
+ export type ResourceTemplateDefinition = {
36
+ name: string;
37
+ description: string;
38
+ scopes?: MCPScope[];
39
+ resource: ResourceTemplate;
40
+ read: ReadResourceTemplateCallback;
41
+ };
42
+
43
+ export async function formatResult(
44
+ result: Result<unknown, Error>,
45
+ uri: URL,
46
+ init: { response?: Response | undefined },
47
+ ): Promise<ReadResourceResult> {
48
+ if (!result.ok) {
49
+ throw result.error;
50
+ }
51
+
52
+ const { value } = result;
53
+ if (typeof value === "undefined") {
54
+ return { contents: [] };
55
+ }
56
+
57
+ const { response } = init;
58
+ const mimeType = response?.headers.get("content-type") ?? "";
59
+ let contents: ReadResourceResult["contents"] = [];
60
+
61
+ if (mimeType.search(/\bjson\b/g)) {
62
+ contents = [{ uri: uri.toString(), mimeType, text: JSON.stringify(value) }];
63
+ } else if (
64
+ mimeType.startsWith("text/event-stream")
65
+ && isAsyncIterable(value)
66
+ ) {
67
+ contents = [
68
+ {
69
+ uri: uri.toString(),
70
+ mimeType: "application/json",
71
+ text: await stringifySSEToJSON(value),
72
+ },
73
+ ];
74
+ } else if (mimeType.startsWith("text/") && typeof value === "string") {
75
+ contents = [{ uri: uri.toString(), mimeType, text: value }];
76
+ } else if (isBinaryData(value)) {
77
+ const blob = await valueToBase64(value);
78
+ contents = blob == null ? [] : [{ uri: uri.toString(), blob, mimeType }];
79
+ } else {
80
+ throw new Error(`Unsupported content type: "${mimeType}"`);
81
+ }
82
+
83
+ return { contents };
84
+ }
85
+
86
+ async function stringifySSEToJSON(
87
+ value: AsyncIterable<unknown>,
88
+ ): Promise<string> {
89
+ const payloads = [];
90
+
91
+ for await (const chunk of value) {
92
+ payloads.push(chunk);
93
+ }
94
+
95
+ return JSON.stringify(payloads);
96
+ }
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ export const mcpScopes = [] as const;
6
+
7
+ export type MCPScope = (typeof mcpScopes)[number];