smithery mcp
Enables AI agents to interact with Novu's notification system, facilitating operations like sending notifications, managing subscribers, and organizing topics.
Enables AI agents to interact with Novu's notification system, facilitating operations like sending notifications, managing subscribers, and organizing topics.
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 notificationget_notifications
: List notifications with paginationget_notification_stats
: Get notification statisticsget_subscribers
: List subscribers with paginationcreate_subscriber
: Create a new subscriberupdate_subscriber
: Update subscriber detailsdelete_subscriber
: Remove a subscriberget_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 topicTo 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
.