smithy-mcp-gateway
A specialized TypeScript-based Model Context Protocol (MCP) endpoint designed to interface AI agents seamlessly with Novu's comprehensive notification delivery mechanisms, facilitating the initiation and lifecycle management of external communications.
Author

novuhq
Quick Info
Actions
Tags
Novu Communication Protocol Bridge
This repository contains the complete TypeScript source code for an MCP server instance, specifically engineered to broker interactions between autonomous software agents and the Novu notification platform infrastructure.
Initial Setup Procedures
- Install required package dependencies:
npm install
- Compile the source code into executable JavaScript:
npm run build
- Commence operation of the MCP service endpoint:
npm start
For iterative development cycles, utilize:
npm run dev
Configuration Requirements
The gateway mandates the presence of a valid Novu API authentication token, which must be configured within the smithery.yml configuration file. Obtain this credential from your designated Novu administrative portal.
Supported Functional Interfaces
The MCP gateway exposes the following interfaces mirroring Novu's capabilities:
Event Dispatching Module
trigger_event: Mechanism for dispatching targeted notifications to designated subscriber identifiers.broadcast_event: Functionality to disseminate a singular notification across the entire subscriber base.cancel_triggered_event: Operation to revoke or halt a previously dispatched notification instance.
Notification Retrieval Module
get_notifications: Endpoint for retrieving paginated records of sent notifications.get_notification_stats: Accessor for summary statistics pertaining to notification delivery performance.
Subscriber Management Module
get_subscribers: Utility for fetching paginated lists of registered users/endpoints.create_subscriber: Routine for provisioning a new unique subscriber entity.update_subscriber: Method for modifying extant subscriber profile attributes.delete_subscriber: Procedure for the permanent removal of a subscriber record.
Topic Management Module
get_topics: Retrieval of all currently defined communication topics.create_topic: Operation to establish a novel topic for grouping subscribers.delete_topic: Procedure to decommission an existing topic structure.add_subscribers_to_topic: Functionality to associate subscribers with a specified topic.remove_subscribers_from_topic: Functionality to disassociate subscribers from a specified topic.
Operational Examples
To initiate an informational alert:
{
"type": "execute",
"payload": {
"operation": "trigger_event",
"params": {
"name": "welcome-email",
"to": "subscriber-id",
"payload": {
"name": "John Doe",
"company": "Acme Inc"
}
}
}
}
To onboard a new user identity:
{
"type": "execute",
"payload": {
"operation": "create_subscriber",
"params": {
"subscriberId": "unique-id",
"email": "john@example.com",
"firstName": "John",
"lastName": "Doe"
}
}
}
Development Context
The core logic is implemented using modern TypeScript standards. Primary execution flow resides in src/index.ts, with all direct Novu API interactions encapsulated within src/novu-service.ts.
