This is a TypeScript implementation of a Model Context Protocol (MCP) server for Novu, allowing AI agents to interact with Novu's notification infrastructure.
- Install dependencies:
npm install
- Build the project:
npm run build
- Start the MCP server:
npm start
For development, you can use:
npm run dev
The MCP server requires a Novu API key to be configured in smithery.yml
. You can obtain an API key from your Novu dashboard.
The MCP server supports the following Novu operations:
trigger_event
: Send a notification to specific subscribersbroadcast_event
: Send a notification to all subscriberscancel_triggered_event
: Cancel a triggered notification
get_notifications
: List notifications with paginationget_notification_stats
: Get notification statistics
get_subscribers
: List subscribers with paginationcreate_subscriber
: Create a new subscriberupdate_subscriber
: Update subscriber detailsdelete_subscriber
: Remove a subscriber
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
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": "[email protected]",
"firstName": "John",
"lastName": "Doe"
}
}
}
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
.