naftiko: 1.0.0-alpha2 info: label: Novu API — Messages description: 'Notifications — Messages. 3 operations. Lead operation: List All Messages. Self-contained Naftiko capability covering one Novu business surface.' tags: - Novu - Notifications - Messages created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: NOVU_API_KEY: NOVU_API_KEY capability: consumes: - type: http namespace: novu-messages baseUri: https://api.novu.co description: Novu REST API — Messages business capability. Self-contained, no shared references. authentication: type: apikey key: Authorization value: '{{env.NOVU_API_KEY}}' placement: header resources: - name: v1-messages path: /v1/messages operations: - name: MessagesController_getMessages method: GET description: Novu List All Messages inputParameters: - name: channel in: query type: string required: false description: channel - name: subscriberId in: query type: string required: false description: subscriberId - name: transactionId in: query type: array required: false description: transactionId - name: contextKeys in: query type: array required: false description: 'Filter by exact context keys, order insensitive (format: "type:id")' - name: page in: query type: number required: false description: page - name: limit in: query type: number required: false description: limit outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-messages-messageid path: /v1/messages/{messageId} operations: - name: MessagesController_deleteMessage method: DELETE description: Novu Delete a Message inputParameters: - name: messageId in: path type: string required: true description: messageId outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-messages-transaction-transactionid path: /v1/messages/transaction/{transactionId} operations: - name: MessagesController_deleteMessagesByTransactionId method: DELETE description: Novu Delete Messages by TransactionId inputParameters: - name: channel in: query type: string required: false description: The channel of the message to be deleted - name: transactionId in: path type: string required: true description: transactionId outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: novu-messages-rest port: 8080 description: REST adapter for Novu API — Messages. One Spectral-compliant resource per consumed operation. resources: - path: /v1/messages name: v1-messages description: REST surface for /v1/messages. operations: - method: GET name: MessagesController_getMessages description: Novu List All Messages call: novu-messages.MessagesController_getMessages with: channel: rest.channel subscriberId: rest.subscriberId transactionId: rest.transactionId contextKeys: rest.contextKeys page: rest.page limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/messages/{messageId} name: v1-messages-messageid description: REST surface for /v1/messages/{messageId}. operations: - method: DELETE name: MessagesController_deleteMessage description: Novu Delete a Message call: novu-messages.MessagesController_deleteMessage with: messageId: rest.messageId outputParameters: - type: object mapping: $. - path: /v1/messages/transaction/{transactionId} name: v1-messages-transaction-transactionid description: REST surface for /v1/messages/transaction/{transactionId}. operations: - method: DELETE name: MessagesController_deleteMessagesByTransactionId description: Novu Delete Messages by TransactionId call: novu-messages.MessagesController_deleteMessagesByTransactionId with: channel: rest.channel transactionId: rest.transactionId outputParameters: - type: object mapping: $. - type: mcp namespace: novu-messages-mcp port: 9090 transport: http description: MCP adapter for Novu API — Messages. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-all-messages description: Novu List All Messages hints: readOnly: true destructive: false idempotent: true call: novu-messages.MessagesController_getMessages with: channel: tools.channel subscriberId: tools.subscriberId transactionId: tools.transactionId contextKeys: tools.contextKeys page: tools.page limit: tools.limit outputParameters: - type: object mapping: $. - name: delete-message description: Novu Delete a Message hints: readOnly: false destructive: true idempotent: true call: novu-messages.MessagesController_deleteMessage with: messageId: tools.messageId outputParameters: - type: object mapping: $. - name: delete-messages-transactionid description: Novu Delete Messages by TransactionId hints: readOnly: false destructive: true idempotent: true call: novu-messages.MessagesController_deleteMessagesByTransactionId with: channel: tools.channel transactionId: tools.transactionId outputParameters: - type: object mapping: $.