smithery-mcp
TypeScript implementation of an MCP server that facilitates AI agents' interaction with Novu's notification infrastructure, enabling them to trigger and manage notifications.
Author

novuhq
Quick Info
Actions
Tags
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 start
For development, you can use:
npm run dev
Configuration
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.
