Novu MCP Implementation
This is a TypeScript implementation of a Model Context Protocol (MCP) server for Novu, allowing AI agents to interact with Novuβs notification infrastructure.
Setup
- Install dependencies:
npm install- Build the project:
npm run build- Start the MCP server:
npm startFor development, you can use:
npm run devConfiguration
The MCP server requires a Novu API key to be configured in smithery.yml. You can obtain an API key from your Novu dashboard.
Available Operations
The MCP server supports the following Novu operations:
Events
trigger_event: Send a notification to specific subscribersbroadcast_event: Send a notification to all subscriberscancel_triggered_event: Cancel a triggered notification
Notifications
get_notifications: List notifications with paginationget_notification_stats: Get notification statistics
Subscribers
get_subscribers: List subscribers with paginationcreate_subscriber: Create a new subscriberupdate_subscriber: Update subscriber detailsdelete_subscriber: Remove a subscriber
Topics
get_topics: List all topicscreate_topic: Create a new topicdelete_topic: Delete an existing topicadd_subscribers_to_topic: Add subscribers to a topicremove_subscribers_from_topic: Remove subscribers from a topic
Example Usage
To trigger a notification:
{
"type": "execute",
"payload": {
"operation": "trigger_event",
"params": {
"name": "welcome-email",
"to": "subscriber-id",
"payload": {
"name": "John Doe",
"company": "Acme Inc"
}
}
}
}To create a subscriber:
{
"type": "execute",
"payload": {
"operation": "create_subscriber",
"params": {
"subscriberId": "unique-id",
"email": "john@example.com",
"firstName": "John",
"lastName": "Doe"
}
}
}Development
The source code is written in TypeScript and follows modern development practices. The main implementation is in src/index.ts, with Novu-specific logic in src/novu-service.ts.
Last updated on