@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.
- package/README.md +52 -0
- package/bin/mcp-server.js +50045 -0
- package/bin/mcp-server.js.map +506 -0
- package/funcs/cancel.js +1 -1
- package/funcs/cancel.js.map +1 -1
- package/funcs/integrationsCreate.js +1 -1
- package/funcs/integrationsCreate.js.map +1 -1
- package/funcs/integrationsDelete.js +1 -1
- package/funcs/integrationsDelete.js.map +1 -1
- package/funcs/integrationsList.js +1 -1
- package/funcs/integrationsList.js.map +1 -1
- package/funcs/integrationsListActive.js +1 -1
- package/funcs/integrationsListActive.js.map +1 -1
- package/funcs/integrationsSetAsPrimary.js +1 -1
- package/funcs/integrationsSetAsPrimary.js.map +1 -1
- package/funcs/integrationsUpdate.js +1 -1
- package/funcs/integrationsUpdate.js.map +1 -1
- package/funcs/integrationsWebhooksRetrieve.js +1 -1
- package/funcs/integrationsWebhooksRetrieve.js.map +1 -1
- package/funcs/messagesDelete.js +1 -1
- package/funcs/messagesDelete.js.map +1 -1
- package/funcs/messagesDeleteByTransactionId.js +1 -1
- package/funcs/messagesDeleteByTransactionId.js.map +1 -1
- package/funcs/messagesRetrieve.js +1 -1
- package/funcs/messagesRetrieve.js.map +1 -1
- package/funcs/notificationsList.js +1 -1
- package/funcs/notificationsList.js.map +1 -1
- package/funcs/notificationsRetrieve.js +1 -1
- package/funcs/notificationsRetrieve.js.map +1 -1
- package/funcs/notificationsStatsGraph.js +1 -1
- package/funcs/notificationsStatsGraph.js.map +1 -1
- package/funcs/notificationsStatsRetrieve.js +1 -1
- package/funcs/notificationsStatsRetrieve.js.map +1 -1
- package/funcs/subscribersAuthenticationChatAccessOauth.js +1 -1
- package/funcs/subscribersAuthenticationChatAccessOauth.js.map +1 -1
- package/funcs/subscribersAuthenticationChatAccessOauthCallBack.js +1 -1
- package/funcs/subscribersAuthenticationChatAccessOauthCallBack.js.map +1 -1
- package/funcs/subscribersCreate.js +1 -1
- package/funcs/subscribersCreate.js.map +1 -1
- package/funcs/subscribersCreateBulk.js +1 -1
- package/funcs/subscribersCreateBulk.js.map +1 -1
- package/funcs/subscribersCredentialsAppend.js +1 -1
- package/funcs/subscribersCredentialsAppend.js.map +1 -1
- package/funcs/subscribersCredentialsDelete.js +1 -1
- package/funcs/subscribersCredentialsDelete.js.map +1 -1
- package/funcs/subscribersCredentialsUpdate.js +1 -1
- package/funcs/subscribersCredentialsUpdate.js.map +1 -1
- package/funcs/subscribersDelete.js +1 -1
- package/funcs/subscribersDelete.js.map +1 -1
- package/funcs/subscribersList.js +1 -1
- package/funcs/subscribersList.js.map +1 -1
- package/funcs/subscribersMessagesMarkAll.js +1 -1
- package/funcs/subscribersMessagesMarkAll.js.map +1 -1
- package/funcs/subscribersMessagesMarkAllAs.js +1 -1
- package/funcs/subscribersMessagesMarkAllAs.js.map +1 -1
- package/funcs/subscribersMessagesUpdateAsSeen.js +1 -1
- package/funcs/subscribersMessagesUpdateAsSeen.js.map +1 -1
- package/funcs/subscribersNotificationsFeed.js +1 -1
- package/funcs/subscribersNotificationsFeed.js.map +1 -1
- package/funcs/subscribersNotificationsUnseenCount.js +1 -1
- package/funcs/subscribersNotificationsUnseenCount.js.map +1 -1
- package/funcs/subscribersPatch.js +1 -1
- package/funcs/subscribersPatch.js.map +1 -1
- package/funcs/subscribersPreferencesList.js +1 -1
- package/funcs/subscribersPreferencesList.js.map +1 -1
- package/funcs/subscribersPreferencesUpdate.js +1 -1
- package/funcs/subscribersPreferencesUpdate.js.map +1 -1
- package/funcs/subscribersPropertiesUpdateOnlineFlag.js +1 -1
- package/funcs/subscribersPropertiesUpdateOnlineFlag.js.map +1 -1
- package/funcs/subscribersRetrieve.js +1 -1
- package/funcs/subscribersRetrieve.js.map +1 -1
- package/funcs/subscribersSearch.js +1 -1
- package/funcs/subscribersSearch.js.map +1 -1
- package/funcs/topicsCreate.js +1 -1
- package/funcs/topicsCreate.js.map +1 -1
- package/funcs/topicsDelete.js +1 -1
- package/funcs/topicsDelete.js.map +1 -1
- package/funcs/topicsList.js +1 -1
- package/funcs/topicsList.js.map +1 -1
- package/funcs/topicsRename.js +1 -1
- package/funcs/topicsRename.js.map +1 -1
- package/funcs/topicsRetrieve.js +1 -1
- package/funcs/topicsRetrieve.js.map +1 -1
- package/funcs/topicsSubscribersAssign.js +1 -1
- package/funcs/topicsSubscribersAssign.js.map +1 -1
- package/funcs/topicsSubscribersRemove.js +1 -1
- package/funcs/topicsSubscribersRemove.js.map +1 -1
- package/funcs/topicsSubscribersRetrieve.js +1 -1
- package/funcs/topicsSubscribersRetrieve.js.map +1 -1
- package/funcs/trigger.js +1 -1
- package/funcs/trigger.js.map +1 -1
- package/funcs/triggerBroadcast.js +1 -1
- package/funcs/triggerBroadcast.js.map +1 -1
- package/funcs/triggerBulk.js +1 -1
- package/funcs/triggerBulk.js.map +1 -1
- package/jsr.json +1 -1
- package/lib/config.d.ts +6 -6
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +3 -3
- package/lib/files.js.map +1 -1
- package/lib/primitives.d.ts +3 -0
- package/lib/primitives.d.ts.map +1 -1
- package/lib/primitives.js +8 -1
- package/lib/primitives.js.map +1 -1
- package/lib/sdks.d.ts +1 -1
- package/lib/sdks.d.ts.map +1 -1
- package/mcp-server/build.d.mts.map +1 -0
- package/mcp-server/build.mjs +14 -0
- package/mcp-server/build.mjs.map +1 -0
- package/mcp-server/cli/start/command.d.ts +2 -0
- package/mcp-server/cli/start/command.d.ts.map +1 -0
- package/mcp-server/cli/start/command.js +128 -0
- package/mcp-server/cli/start/command.js.map +1 -0
- package/mcp-server/cli/start/impl.d.ts +18 -0
- package/mcp-server/cli/start/impl.d.ts.map +1 -0
- package/mcp-server/cli/start/impl.js +105 -0
- package/mcp-server/cli/start/impl.js.map +1 -0
- package/mcp-server/cli.d.ts +9 -0
- package/mcp-server/cli.d.ts.map +1 -0
- package/mcp-server/cli.js +11 -0
- package/mcp-server/cli.js.map +1 -0
- package/mcp-server/console-logger.d.ts +7 -0
- package/mcp-server/console-logger.d.ts.map +1 -0
- package/mcp-server/console-logger.js +59 -0
- package/mcp-server/console-logger.js.map +1 -0
- package/mcp-server/mcp-server.d.ts +2 -0
- package/mcp-server/mcp-server.d.ts.map +1 -0
- package/mcp-server/mcp-server.js +29 -0
- package/mcp-server/mcp-server.js.map +1 -0
- package/mcp-server/resources.d.ts +27 -0
- package/mcp-server/resources.d.ts.map +1 -0
- package/mcp-server/resources.js +52 -0
- package/mcp-server/resources.js.map +1 -0
- package/mcp-server/scopes.d.ts +3 -0
- package/mcp-server/scopes.d.ts.map +1 -0
- package/mcp-server/scopes.js +8 -0
- package/mcp-server/scopes.js.map +1 -0
- package/mcp-server/server.d.ts +13 -0
- package/mcp-server/server.d.ts.map +1 -0
- package/mcp-server/server.js +119 -0
- package/mcp-server/server.js.map +1 -0
- package/mcp-server/shared.d.ts +7 -0
- package/mcp-server/shared.d.ts.map +1 -0
- package/mcp-server/shared.js +89 -0
- package/mcp-server/shared.js.map +1 -0
- package/mcp-server/tools/cancel.d.ts +9 -0
- package/mcp-server/tools/cancel.d.ts.map +1 -0
- package/mcp-server/tools/cancel.js +58 -0
- package/mcp-server/tools/cancel.js.map +1 -0
- package/mcp-server/tools/integrationsCreate.d.ts +10 -0
- package/mcp-server/tools/integrationsCreate.d.ts.map +1 -0
- package/mcp-server/tools/integrationsCreate.js +56 -0
- package/mcp-server/tools/integrationsCreate.js.map +1 -0
- package/mcp-server/tools/integrationsDelete.d.ts +9 -0
- package/mcp-server/tools/integrationsDelete.d.ts.map +1 -0
- package/mcp-server/tools/integrationsDelete.js +53 -0
- package/mcp-server/tools/integrationsDelete.js.map +1 -0
- package/mcp-server/tools/integrationsList.d.ts +8 -0
- package/mcp-server/tools/integrationsList.d.ts.map +1 -0
- package/mcp-server/tools/integrationsList.js +54 -0
- package/mcp-server/tools/integrationsList.js.map +1 -0
- package/mcp-server/tools/integrationsListActive.d.ts +8 -0
- package/mcp-server/tools/integrationsListActive.d.ts.map +1 -0
- package/mcp-server/tools/integrationsListActive.js +54 -0
- package/mcp-server/tools/integrationsListActive.js.map +1 -0
- package/mcp-server/tools/integrationsSetAsPrimary.d.ts +9 -0
- package/mcp-server/tools/integrationsSetAsPrimary.d.ts.map +1 -0
- package/mcp-server/tools/integrationsSetAsPrimary.js +53 -0
- package/mcp-server/tools/integrationsSetAsPrimary.js.map +1 -0
- package/mcp-server/tools/integrationsUpdate.d.ts +11 -0
- package/mcp-server/tools/integrationsUpdate.d.ts.map +1 -0
- package/mcp-server/tools/integrationsUpdate.js +55 -0
- package/mcp-server/tools/integrationsUpdate.js.map +1 -0
- package/mcp-server/tools/integrationsWebhooksRetrieve.d.ts +9 -0
- package/mcp-server/tools/integrationsWebhooksRetrieve.d.ts.map +1 -0
- package/mcp-server/tools/integrationsWebhooksRetrieve.js +55 -0
- package/mcp-server/tools/integrationsWebhooksRetrieve.js.map +1 -0
- package/mcp-server/tools/messagesDelete.d.ts +9 -0
- package/mcp-server/tools/messagesDelete.d.ts.map +1 -0
- package/mcp-server/tools/messagesDelete.js +55 -0
- package/mcp-server/tools/messagesDelete.js.map +1 -0
- package/mcp-server/tools/messagesDeleteByTransactionId.d.ts +16 -0
- package/mcp-server/tools/messagesDeleteByTransactionId.d.ts.map +1 -0
- package/mcp-server/tools/messagesDeleteByTransactionId.js +56 -0
- package/mcp-server/tools/messagesDeleteByTransactionId.js.map +1 -0
- package/mcp-server/tools/messagesRetrieve.d.ts +8 -0
- package/mcp-server/tools/messagesRetrieve.d.ts.map +1 -0
- package/mcp-server/tools/messagesRetrieve.js +54 -0
- package/mcp-server/tools/messagesRetrieve.js.map +1 -0
- package/mcp-server/tools/notificationsList.d.ts +8 -0
- package/mcp-server/tools/notificationsList.d.ts.map +1 -0
- package/mcp-server/tools/notificationsList.js +52 -0
- package/mcp-server/tools/notificationsList.js.map +1 -0
- package/mcp-server/tools/notificationsRetrieve.d.ts +9 -0
- package/mcp-server/tools/notificationsRetrieve.d.ts.map +1 -0
- package/mcp-server/tools/notificationsRetrieve.js +53 -0
- package/mcp-server/tools/notificationsRetrieve.js.map +1 -0
- package/mcp-server/tools/notificationsStatsGraph.d.ts +9 -0
- package/mcp-server/tools/notificationsStatsGraph.d.ts.map +1 -0
- package/mcp-server/tools/notificationsStatsGraph.js +53 -0
- package/mcp-server/tools/notificationsStatsGraph.js.map +1 -0
- package/mcp-server/tools/notificationsStatsRetrieve.d.ts +8 -0
- package/mcp-server/tools/notificationsStatsRetrieve.d.ts.map +1 -0
- package/mcp-server/tools/notificationsStatsRetrieve.js +52 -0
- package/mcp-server/tools/notificationsStatsRetrieve.js.map +1 -0
- package/mcp-server/tools/subscribersAuthenticationChatAccessOauth.d.ts +8 -0
- package/mcp-server/tools/subscribersAuthenticationChatAccessOauth.d.ts.map +1 -0
- package/mcp-server/tools/subscribersAuthenticationChatAccessOauth.js +51 -0
- package/mcp-server/tools/subscribersAuthenticationChatAccessOauth.js.map +1 -0
- package/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.d.ts +8 -0
- package/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.d.ts.map +1 -0
- package/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.js +52 -0
- package/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.js.map +1 -0
- package/mcp-server/tools/subscribersCreate.d.ts +10 -0
- package/mcp-server/tools/subscribersCreate.d.ts.map +1 -0
- package/mcp-server/tools/subscribersCreate.js +56 -0
- package/mcp-server/tools/subscribersCreate.js.map +1 -0
- package/mcp-server/tools/subscribersCreateBulk.d.ts +10 -0
- package/mcp-server/tools/subscribersCreateBulk.d.ts.map +1 -0
- package/mcp-server/tools/subscribersCreateBulk.js +59 -0
- package/mcp-server/tools/subscribersCreateBulk.js.map +1 -0
- package/mcp-server/tools/subscribersCredentialsAppend.d.ts +11 -0
- package/mcp-server/tools/subscribersCredentialsAppend.d.ts.map +1 -0
- package/mcp-server/tools/subscribersCredentialsAppend.js +58 -0
- package/mcp-server/tools/subscribersCredentialsAppend.js.map +1 -0
- package/mcp-server/tools/subscribersCredentialsDelete.d.ts +10 -0
- package/mcp-server/tools/subscribersCredentialsDelete.d.ts.map +1 -0
- package/mcp-server/tools/subscribersCredentialsDelete.js +55 -0
- package/mcp-server/tools/subscribersCredentialsDelete.js.map +1 -0
- package/mcp-server/tools/subscribersCredentialsUpdate.d.ts +11 -0
- package/mcp-server/tools/subscribersCredentialsUpdate.d.ts.map +1 -0
- package/mcp-server/tools/subscribersCredentialsUpdate.js +57 -0
- package/mcp-server/tools/subscribersCredentialsUpdate.js.map +1 -0
- package/mcp-server/tools/subscribersDelete.d.ts +9 -0
- package/mcp-server/tools/subscribersDelete.d.ts.map +1 -0
- package/mcp-server/tools/subscribersDelete.js +55 -0
- package/mcp-server/tools/subscribersDelete.js.map +1 -0
- package/mcp-server/tools/subscribersList.d.ts +10 -0
- package/mcp-server/tools/subscribersList.d.ts.map +1 -0
- package/mcp-server/tools/subscribersList.js +56 -0
- package/mcp-server/tools/subscribersList.js.map +1 -0
- package/mcp-server/tools/subscribersMessagesMarkAll.d.ts +11 -0
- package/mcp-server/tools/subscribersMessagesMarkAll.d.ts.map +1 -0
- package/mcp-server/tools/subscribersMessagesMarkAll.js +55 -0
- package/mcp-server/tools/subscribersMessagesMarkAll.js.map +1 -0
- package/mcp-server/tools/subscribersMessagesMarkAllAs.d.ts +11 -0
- package/mcp-server/tools/subscribersMessagesMarkAllAs.d.ts.map +1 -0
- package/mcp-server/tools/subscribersMessagesMarkAllAs.js +55 -0
- package/mcp-server/tools/subscribersMessagesMarkAllAs.js.map +1 -0
- package/mcp-server/tools/subscribersMessagesUpdateAsSeen.d.ts +8 -0
- package/mcp-server/tools/subscribersMessagesUpdateAsSeen.d.ts.map +1 -0
- package/mcp-server/tools/subscribersMessagesUpdateAsSeen.js +52 -0
- package/mcp-server/tools/subscribersMessagesUpdateAsSeen.js.map +1 -0
- package/mcp-server/tools/subscribersNotificationsFeed.d.ts +8 -0
- package/mcp-server/tools/subscribersNotificationsFeed.d.ts.map +1 -0
- package/mcp-server/tools/subscribersNotificationsFeed.js +52 -0
- package/mcp-server/tools/subscribersNotificationsFeed.js.map +1 -0
- package/mcp-server/tools/subscribersNotificationsUnseenCount.d.ts +8 -0
- package/mcp-server/tools/subscribersNotificationsUnseenCount.d.ts.map +1 -0
- package/mcp-server/tools/subscribersNotificationsUnseenCount.js +52 -0
- package/mcp-server/tools/subscribersNotificationsUnseenCount.js.map +1 -0
- package/mcp-server/tools/subscribersPatch.d.ts +11 -0
- package/mcp-server/tools/subscribersPatch.d.ts.map +1 -0
- package/mcp-server/tools/subscribersPatch.js +57 -0
- package/mcp-server/tools/subscribersPatch.js.map +1 -0
- package/mcp-server/tools/subscribersPreferencesList.d.ts +9 -0
- package/mcp-server/tools/subscribersPreferencesList.d.ts.map +1 -0
- package/mcp-server/tools/subscribersPreferencesList.js +55 -0
- package/mcp-server/tools/subscribersPreferencesList.js.map +1 -0
- package/mcp-server/tools/subscribersPreferencesUpdate.d.ts +11 -0
- package/mcp-server/tools/subscribersPreferencesUpdate.d.ts.map +1 -0
- package/mcp-server/tools/subscribersPreferencesUpdate.js +57 -0
- package/mcp-server/tools/subscribersPreferencesUpdate.js.map +1 -0
- package/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.d.ts +11 -0
- package/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.d.ts.map +1 -0
- package/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.js +57 -0
- package/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.js.map +1 -0
- package/mcp-server/tools/subscribersRetrieve.d.ts +9 -0
- package/mcp-server/tools/subscribersRetrieve.d.ts.map +1 -0
- package/mcp-server/tools/subscribersRetrieve.js +55 -0
- package/mcp-server/tools/subscribersRetrieve.js.map +1 -0
- package/mcp-server/tools/subscribersSearch.d.ts +8 -0
- package/mcp-server/tools/subscribersSearch.d.ts.map +1 -0
- package/mcp-server/tools/subscribersSearch.js +52 -0
- package/mcp-server/tools/subscribersSearch.js.map +1 -0
- package/mcp-server/tools/topicsCreate.d.ts +10 -0
- package/mcp-server/tools/topicsCreate.d.ts.map +1 -0
- package/mcp-server/tools/topicsCreate.js +56 -0
- package/mcp-server/tools/topicsCreate.js.map +1 -0
- package/mcp-server/tools/topicsDelete.d.ts +9 -0
- package/mcp-server/tools/topicsDelete.d.ts.map +1 -0
- package/mcp-server/tools/topicsDelete.js +54 -0
- package/mcp-server/tools/topicsDelete.js.map +1 -0
- package/mcp-server/tools/topicsList.d.ts +8 -0
- package/mcp-server/tools/topicsList.d.ts.map +1 -0
- package/mcp-server/tools/topicsList.js +54 -0
- package/mcp-server/tools/topicsList.js.map +1 -0
- package/mcp-server/tools/topicsRename.d.ts +11 -0
- package/mcp-server/tools/topicsRename.d.ts.map +1 -0
- package/mcp-server/tools/topicsRename.js +57 -0
- package/mcp-server/tools/topicsRename.js.map +1 -0
- package/mcp-server/tools/topicsRetrieve.d.ts +9 -0
- package/mcp-server/tools/topicsRetrieve.d.ts.map +1 -0
- package/mcp-server/tools/topicsRetrieve.js +55 -0
- package/mcp-server/tools/topicsRetrieve.js.map +1 -0
- package/mcp-server/tools/topicsSubscribersAssign.d.ts +11 -0
- package/mcp-server/tools/topicsSubscribersAssign.d.ts.map +1 -0
- package/mcp-server/tools/topicsSubscribersAssign.js +57 -0
- package/mcp-server/tools/topicsSubscribersAssign.js.map +1 -0
- package/mcp-server/tools/topicsSubscribersRemove.d.ts +11 -0
- package/mcp-server/tools/topicsSubscribersRemove.d.ts.map +1 -0
- package/mcp-server/tools/topicsSubscribersRemove.js +56 -0
- package/mcp-server/tools/topicsSubscribersRemove.js.map +1 -0
- package/mcp-server/tools/topicsSubscribersRetrieve.d.ts +10 -0
- package/mcp-server/tools/topicsSubscribersRetrieve.d.ts.map +1 -0
- package/mcp-server/tools/topicsSubscribersRetrieve.js +56 -0
- package/mcp-server/tools/topicsSubscribersRetrieve.js.map +1 -0
- package/mcp-server/tools/trigger.d.ts +10 -0
- package/mcp-server/tools/trigger.d.ts.map +1 -0
- package/mcp-server/tools/trigger.js +60 -0
- package/mcp-server/tools/trigger.js.map +1 -0
- package/mcp-server/tools/triggerBroadcast.d.ts +10 -0
- package/mcp-server/tools/triggerBroadcast.d.ts.map +1 -0
- package/mcp-server/tools/triggerBroadcast.js +57 -0
- package/mcp-server/tools/triggerBroadcast.js.map +1 -0
- package/mcp-server/tools/triggerBulk.d.ts +10 -0
- package/mcp-server/tools/triggerBulk.d.ts.map +1 -0
- package/mcp-server/tools/triggerBulk.js +59 -0
- package/mcp-server/tools/triggerBulk.js.map +1 -0
- package/mcp-server/tools.d.ts +25 -0
- package/mcp-server/tools.d.ts.map +1 -0
- package/mcp-server/tools.js +78 -0
- package/mcp-server/tools.js.map +1 -0
- package/package.json +17 -2
- package/sources/json-development.json +96 -0
- package/src/funcs/cancel.ts +1 -1
- package/src/funcs/integrationsCreate.ts +1 -1
- package/src/funcs/integrationsDelete.ts +1 -1
- package/src/funcs/integrationsList.ts +1 -1
- package/src/funcs/integrationsListActive.ts +1 -1
- package/src/funcs/integrationsSetAsPrimary.ts +1 -1
- package/src/funcs/integrationsUpdate.ts +1 -1
- package/src/funcs/integrationsWebhooksRetrieve.ts +1 -1
- package/src/funcs/messagesDelete.ts +1 -1
- package/src/funcs/messagesDeleteByTransactionId.ts +1 -1
- package/src/funcs/messagesRetrieve.ts +1 -1
- package/src/funcs/notificationsList.ts +1 -1
- package/src/funcs/notificationsRetrieve.ts +1 -1
- package/src/funcs/notificationsStatsGraph.ts +1 -1
- package/src/funcs/notificationsStatsRetrieve.ts +1 -1
- package/src/funcs/subscribersAuthenticationChatAccessOauth.ts +1 -1
- package/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts +1 -1
- package/src/funcs/subscribersCreate.ts +1 -1
- package/src/funcs/subscribersCreateBulk.ts +1 -1
- package/src/funcs/subscribersCredentialsAppend.ts +1 -1
- package/src/funcs/subscribersCredentialsDelete.ts +1 -1
- package/src/funcs/subscribersCredentialsUpdate.ts +1 -1
- package/src/funcs/subscribersDelete.ts +1 -1
- package/src/funcs/subscribersList.ts +1 -1
- package/src/funcs/subscribersMessagesMarkAll.ts +1 -1
- package/src/funcs/subscribersMessagesMarkAllAs.ts +1 -1
- package/src/funcs/subscribersMessagesUpdateAsSeen.ts +1 -1
- package/src/funcs/subscribersNotificationsFeed.ts +1 -1
- package/src/funcs/subscribersNotificationsUnseenCount.ts +1 -1
- package/src/funcs/subscribersPatch.ts +1 -1
- package/src/funcs/subscribersPreferencesList.ts +1 -1
- package/src/funcs/subscribersPreferencesUpdate.ts +1 -1
- package/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts +1 -1
- package/src/funcs/subscribersRetrieve.ts +1 -1
- package/src/funcs/subscribersSearch.ts +1 -1
- package/src/funcs/topicsCreate.ts +1 -1
- package/src/funcs/topicsDelete.ts +1 -1
- package/src/funcs/topicsList.ts +1 -1
- package/src/funcs/topicsRename.ts +1 -1
- package/src/funcs/topicsRetrieve.ts +1 -1
- package/src/funcs/topicsSubscribersAssign.ts +1 -1
- package/src/funcs/topicsSubscribersRemove.ts +1 -1
- package/src/funcs/topicsSubscribersRetrieve.ts +1 -1
- package/src/funcs/trigger.ts +1 -1
- package/src/funcs/triggerBroadcast.ts +1 -1
- package/src/funcs/triggerBulk.ts +1 -1
- package/src/lib/config.ts +6 -6
- package/src/lib/files.ts +1 -1
- package/src/lib/primitives.ts +14 -0
- package/src/lib/sdks.ts +1 -1
- package/src/mcp-server/cli/start/command.ts +107 -0
- package/src/mcp-server/cli/start/impl.ts +134 -0
- package/src/mcp-server/cli.ts +13 -0
- package/src/mcp-server/console-logger.ts +71 -0
- package/src/mcp-server/mcp-server.ts +26 -0
- package/src/mcp-server/resources.ts +96 -0
- package/src/mcp-server/scopes.ts +7 -0
- package/src/mcp-server/server.ts +134 -0
- package/src/mcp-server/shared.ts +75 -0
- package/src/mcp-server/tools/cancel.ts +42 -0
- package/src/mcp-server/tools/integrationsCreate.ts +41 -0
- package/src/mcp-server/tools/integrationsDelete.ts +37 -0
- package/src/mcp-server/tools/integrationsList.ts +37 -0
- package/src/mcp-server/tools/integrationsListActive.ts +37 -0
- package/src/mcp-server/tools/integrationsSetAsPrimary.ts +37 -0
- package/src/mcp-server/tools/integrationsUpdate.ts +41 -0
- package/src/mcp-server/tools/integrationsWebhooksRetrieve.ts +39 -0
- package/src/mcp-server/tools/messagesDelete.ts +39 -0
- package/src/mcp-server/tools/messagesDeleteByTransactionId.ts +40 -0
- package/src/mcp-server/tools/messagesRetrieve.ts +37 -0
- package/src/mcp-server/tools/notificationsList.ts +36 -0
- package/src/mcp-server/tools/notificationsRetrieve.ts +37 -0
- package/src/mcp-server/tools/notificationsStatsGraph.ts +37 -0
- package/src/mcp-server/tools/notificationsStatsRetrieve.ts +35 -0
- package/src/mcp-server/tools/subscribersAuthenticationChatAccessOauth.ts +36 -0
- package/src/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.ts +38 -0
- package/src/mcp-server/tools/subscribersCreate.ts +41 -0
- package/src/mcp-server/tools/subscribersCreateBulk.ts +43 -0
- package/src/mcp-server/tools/subscribersCredentialsAppend.ts +44 -0
- package/src/mcp-server/tools/subscribersCredentialsDelete.ts +39 -0
- package/src/mcp-server/tools/subscribersCredentialsUpdate.ts +43 -0
- package/src/mcp-server/tools/subscribersDelete.ts +39 -0
- package/src/mcp-server/tools/subscribersList.ts +41 -0
- package/src/mcp-server/tools/subscribersMessagesMarkAll.ts +42 -0
- package/src/mcp-server/tools/subscribersMessagesMarkAllAs.ts +40 -0
- package/src/mcp-server/tools/subscribersMessagesUpdateAsSeen.ts +37 -0
- package/src/mcp-server/tools/subscribersNotificationsFeed.ts +36 -0
- package/src/mcp-server/tools/subscribersNotificationsUnseenCount.ts +38 -0
- package/src/mcp-server/tools/subscribersPatch.ts +42 -0
- package/src/mcp-server/tools/subscribersPreferencesList.ts +39 -0
- package/src/mcp-server/tools/subscribersPreferencesUpdate.ts +43 -0
- package/src/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.ts +45 -0
- package/src/mcp-server/tools/subscribersRetrieve.ts +39 -0
- package/src/mcp-server/tools/subscribersSearch.ts +36 -0
- package/src/mcp-server/tools/topicsCreate.ts +40 -0
- package/src/mcp-server/tools/topicsDelete.ts +37 -0
- package/src/mcp-server/tools/topicsList.ts +37 -0
- package/src/mcp-server/tools/topicsRename.ts +42 -0
- package/src/mcp-server/tools/topicsRetrieve.ts +39 -0
- package/src/mcp-server/tools/topicsSubscribersAssign.ts +42 -0
- package/src/mcp-server/tools/topicsSubscribersRemove.ts +41 -0
- package/src/mcp-server/tools/topicsSubscribersRetrieve.ts +41 -0
- package/src/mcp-server/tools/trigger.ts +44 -0
- package/src/mcp-server/tools/triggerBroadcast.ts +42 -0
- package/src/mcp-server/tools/triggerBulk.ts +43 -0
- 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
|
|
package/src/funcs/topicsList.ts
CHANGED
|
@@ -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
|
|
package/src/funcs/trigger.ts
CHANGED
|
@@ -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
|
|
package/src/funcs/triggerBulk.ts
CHANGED
|
@@ -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.
|
|
59
|
-
genVersion: "2.
|
|
60
|
-
userAgent: "speakeasy-sdk/typescript 0.
|
|
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
package/src/lib/primitives.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
+
}
|