Skip to content

Connectors · Email & messaging

Novu MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Novu and the rest of your systems. It gives your agent 146 Novu actions (50 reads, 73 writes and 23 that wait for a confirmation) and holds the Novu credential itself, so the agent never does. It paces Novu's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "novu.subscribers.list",  intent: "check which Novu account is connected"}# Search subscribers · read · 1 upstream call
  • 146actionsin one signed file
  • 50readlook, never change
  • 73writecreate and update
  • 23wait for a yesdestructive, confirmed first

Set up

Connect Novu in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect Novu.

    API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • api_keyNovu secret key (Novu dashboard > Developer > API Keys > Secret Key) for the environment you want to act on
    • hostWhere your Novu lives: your host
    account { op: "connections.requirements", service: "novu" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "novu.subscribers.list" }# search subscribers · read · 1 upstream callcheck { action: "novu.events.trigger", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Novu at a glance

Sign-in
API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
api_key
Setup fields
host
Limits we pace to
20 calls a second, per connection
API covered
Novu API (OpenAPI 3.0.0, 3.19.2), at your Novu instance's API base URL, which you enter when connecting
Built from
Novu's documentation, read 23 October 2026api.novu.codocs.novu.co
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
35 of 50 reads, for up to 5 minutes; a write clears what it affects
Shared entities
2, so ask can line Novu up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Novu.

146 actions in 27 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 50readlook, never change
  • 73writecreate and update
  • 23destructivewait for a confirmation
  1. Subscriber notifications

    18

    4 read · 12 write · 2 destructive

    Delete a notification · Retrieve subscriber notifications · Retrieve subscriber notifications · Archive a notification

  2. Integrations

    13

    2 read · 10 write · 1 destructive

    Create an integration · Issue a short-lived mobile setup link for an existing integration · Generate chat OAuth URL · Generate OAuth URL for a workspace/tenant connection

  3. Domains

    9

    4 read · 4 write · 1 destructive

    Create a domain · Diagnose inbound DNS for a domain · List domains for an environment · Retrieve a domain by name

  4. Layouts

    8

    4 read · 3 write · 1 destructive

    Create a layout · Duplicate a layout · List all layouts · Generate layout preview

  5. Agents

    7

    2 read · 4 write · 1 destructive

    Create an agent · List all agents · Send an agent reply · Retrieve an agent

  6. Environments

    7

    3 read · 3 write · 1 destructive

    List all environments · Create an environment · Update an environment · Delete an environment

  7. Subscribers

    7

    2 read · 4 write · 1 destructive

    Search subscribers · Retrieve a subscriber · Update a subscriber · Create a subscriber

  8. Workflows

    7

    2 read · 4 write · 1 destructive

    List all workflows · Create a workflow · Retrieve a workflow · Update a workflow

19 more areas · 70 actions
  • Domain routes 6
  • Environment variables 6
  • Channel connections 5
  • Channel endpoints 5
  • Contexts 5
  • Topic subscriptions 5
  • Topics 5
  • Translations 5
  • Agent integrations 4
  • Events 4
  • Messages 3
  • Subscriber credentials 3
  • Subscriber messages 3
  • Subscriber preferences 3
  • Notifications 2
  • Translation groups 2
  • Workflow steps 2
  • Subscriber topics 1
  • Topic subscribers 1

Top actions

The Novu API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 22 of Novu's 23 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
novu.subscribers.listSearch subscribersSearch subscribers.readcomm.audience_member.list23 connectors
novu.subscribers.getRetrieve a subscriberRetrieve a subscriber.readcomm.audience_member.get17 connectors
novu.topics.listList all topicsList all topics.readcomm.subscription_topic.list4 connectors
novu.notifications.listList all eventsList all events.readcomm.notification.list19 connectors
novu.events.triggerTrigger eventTrigger event.writecomm.notification.send16 connectors
novu.workflows.listList all workflowsList all workflows.readautomation.workflow.list51 connectors
novu.workflows.createCreate a workflowCreate a workflow.writeautomation.workflow.create38 connectors
novu.workflows.deleteDelete a workflowDelete a workflow.destructiveautomation.workflow.delete40 connectors
novu.environments.listList all environmentsList all environments.readdevops.environment.list24 connectors
novu.environments.createCreate an environmentCreate an environment.writedevops.environment.create18 connectors
novu.topics.getRetrieve a topicRetrieve a topic.readcomm.subscription_topic.get2 connectors
novu.agents.listList all agentsList all agents.readthis connector

Try it

Prompts to paste into Claude.

Each one names the Novu actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Search subscribers in Novu and tell me what stands out.

    callsnovu.subscribers.list

  2. Writewrite

    Trigger event in Novu. Show me exactly what you will send before you save it.

    callsnovu.events.trigger

Governance for Novu

Destructive actions wait for a yes.

23 Novu actions are destructive. These are all of them:

  • Delete a workflownovu.workflows.delete
  • Delete a notificationnovu.subscriber_notifications.delete
  • Delete a topicnovu.topics.delete
  • Delete an environmentnovu.environments.delete
  • Delete an agentnovu.agents.delete
  • Delete a domainnovu.domains.delete
  • Delete a layoutnovu.layouts.delete
  • Delete a contextnovu.contexts.delete
  • Delete a messagenovu.messages.delete
  • Delete a subscribernovu.subscribers.delete
  • Delete an integrationnovu.integrations.delete
  • Delete a routenovu.domain_routes.delete
  • Delete a channel endpointnovu.channel_endpoints.delete
  • Delete an agent integrationnovu.agent_integrations.delete
  • Delete a translation groupnovu.translation_groups.delete
  • Delete a channel connectionnovu.channel_connections.delete
  • Delete topic subscriptionsnovu.topic_subscriptions.delete
  • Delete environment variablenovu.environment_variables.delete
  • Delete provider credentialsnovu.subscriber_credentials.delete
  • Delete messages by transactionIdnovu.messages.delete_by_transaction
  • Delete all notificationsnovu.subscriber_notifications.delete_all
  • Delete a translationnovu.translations.delete
  • Cancel triggered eventnovu.events.cancel

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

donovu.workflows.deleteconfirm_policy: human

Delete a workflow?

intent: the user asked me to delete a workflow

run suspended · waiting for a named person · key novu-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "novu-agent",  allowed_actions: ["novu.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "novu.workflows.delete", approver: "[email protected]" },    { match: "novu.subscriber_notifications.delete", approver: "[email protected]" },    { match: "novu.topics.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Novu only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Novu costs on actionlake.

Every Novu action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Novu refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 146 Novu actions
  • 146actions pageeach page of a long list is one call
  • 35reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Novu action.

146 actions by area: the id your agent calls, what it does, and its effect.

Subscriber notifications18
  • novu.subscriber_notifications.archiveArchive a notificationwrite
  • novu.subscriber_notifications.archive_allArchive all notificationswrite
  • novu.subscriber_notifications.archive_all_readArchive all read notificationswrite
  • novu.subscriber_notifications.complete_actionComplete a notification actionwrite
  • novu.subscriber_notifications.countRetrieve subscriber notifications countread
  • novu.subscriber_notifications.deleteDelete a notificationdestructive
  • novu.subscriber_notifications.delete_allDelete all notificationsdestructive
  • novu.subscriber_notifications.feedRetrieve subscriber notificationsread
  • novu.subscriber_notifications.listRetrieve subscriber notificationsread
  • novu.subscriber_notifications.mark_all_readMark all notifications as readwrite
  • novu.subscriber_notifications.mark_readMark a notification as readwrite
  • novu.subscriber_notifications.mark_seenMark notifications as seenwrite
  • novu.subscriber_notifications.mark_unreadMark a notification as unreadwrite
  • novu.subscriber_notifications.revert_actionRevert a notification actionwrite
  • novu.subscriber_notifications.snoozeSnooze a notificationwrite
  • novu.subscriber_notifications.unarchiveUnarchive a notificationwrite
  • novu.subscriber_notifications.unseen_countRetrieve unseen notifications countread
  • novu.subscriber_notifications.unsnoozeUnsnooze a notificationwrite
Integrations13
  • novu.integrations.auto_configureAuto-configure an integration for inbound webhookswrite
  • novu.integrations.configure_webhookConfigure a chat integration webhookwrite
  • novu.integrations.createCreate an integrationwrite
  • novu.integrations.create_mobile_linkIssue a short-lived mobile setup link for an existing integrationwrite
  • novu.integrations.deleteDelete an integrationdestructive
  • novu.integrations.generate_chat_oauth_urlGenerate chat OAuth URLwrite
  • novu.integrations.generate_connect_oauth_urlGenerate OAuth URL for a workspace/tenant connectionwrite
  • novu.integrations.generate_link_user_oauth_urlGenerate OAuth URL to link a subscriber user identitywrite
  • novu.integrations.link_channel_endpointIssue a URL to link a subscriber chat identitywrite
  • novu.integrations.listList all integrationsread
  • novu.integrations.list_activeList active integrationsread
  • novu.integrations.set_primaryUpdate integration as primarywrite
  • novu.integrations.updateUpdate an integrationwrite
Domains9
  • novu.domains.createCreate a domainwrite
  • novu.domains.deleteDelete a domaindestructive
  • novu.domains.diagnoseDiagnose inbound DNS for a domainread
  • novu.domains.getRetrieve a domain by nameread
  • novu.domains.get_auto_configureRetrieve auto-configuration availabilityread
  • novu.domains.listList domains for an environmentread
  • novu.domains.start_auto_configureStart DNS auto-configurationwrite
  • novu.domains.updateUpdate a domainwrite
  • novu.domains.verifyVerify a domainwrite
Layouts8
  • novu.layouts.createCreate a layoutwrite
  • novu.layouts.deleteDelete a layoutdestructive
  • novu.layouts.duplicateDuplicate a layoutwrite
  • novu.layouts.getRetrieve a layoutread
  • novu.layouts.get_usageGet layout usageread
  • novu.layouts.listList all layoutsread
  • novu.layouts.previewGenerate layout previewread
  • novu.layouts.updateUpdate a layoutwrite
Agents7
  • novu.agents.createCreate an agentwrite
  • novu.agents.deleteDelete an agentdestructive
  • novu.agents.getRetrieve an agentread
  • novu.agents.listList all agentsread
  • novu.agents.send_replySend an agent replywrite
  • novu.agents.updateUpdate an agentwrite
  • novu.agents.update_bridgeUpdate an agent bridgewrite
Environments7
  • novu.environments.createCreate an environmentwrite
  • novu.environments.deleteDelete an environmentdestructive
  • novu.environments.diffCompare resources between environmentsread
  • novu.environments.listList all environmentsread
  • novu.environments.list_tagsList environment tagsread
  • novu.environments.publishPublish resources to target environmentwrite
  • novu.environments.updateUpdate an environmentwrite
Subscribers7
  • novu.subscribers.createCreate a subscriberwrite
  • novu.subscribers.create_bulkBulk create subscriberswrite
  • novu.subscribers.deleteDelete a subscriberdestructive
  • novu.subscribers.getRetrieve a subscriberread
  • novu.subscribers.listSearch subscribersread
  • novu.subscribers.updateUpdate a subscriberwrite
  • novu.subscribers.update_online_statusUpdate subscriber online statuswrite
Workflows7
  • novu.workflows.createCreate a workflowwrite
  • novu.workflows.deleteDelete a workflowdestructive
  • novu.workflows.getRetrieve a workflowread
  • novu.workflows.listList all workflowsread
  • novu.workflows.patchUpdate a workflowwrite
  • novu.workflows.syncSync a workflowwrite
  • novu.workflows.updateUpdate a workflowwrite
Domain routes6
  • novu.domain_routes.createCreate a routewrite
  • novu.domain_routes.deleteDelete a routedestructive
  • novu.domain_routes.getRetrieve a route by addressread
  • novu.domain_routes.listList routes for a domainread
  • novu.domain_routes.testTest an inbound routewrite
  • novu.domain_routes.updateUpdate a routewrite
Environment variables6
  • novu.environment_variables.createCreate a variablewrite
  • novu.environment_variables.deleteDelete environment variabledestructive
  • novu.environment_variables.getGet environment variableread
  • novu.environment_variables.get_usageRetrieve a variable usageread
  • novu.environment_variables.listList all variablesread
  • novu.environment_variables.updateUpdate a variablewrite
Channel connections5
  • novu.channel_connections.createCreate a channel connectionwrite
  • novu.channel_connections.deleteDelete a channel connectiondestructive
  • novu.channel_connections.getRetrieve a channel connectionread
  • novu.channel_connections.listList all channel connectionsread
  • novu.channel_connections.updateUpdate a channel connectionwrite
Channel endpoints5
  • novu.channel_endpoints.createCreate a channel endpointwrite
  • novu.channel_endpoints.deleteDelete a channel endpointdestructive
  • novu.channel_endpoints.getRetrieve a channel endpointread
  • novu.channel_endpoints.listList all channel endpointsread
  • novu.channel_endpoints.updateUpdate a channel endpointwrite
Contexts5
  • novu.contexts.createCreate a contextwrite
  • novu.contexts.deleteDelete a contextdestructive
  • novu.contexts.getRetrieve a contextread
  • novu.contexts.listList all contextsread
  • novu.contexts.updateUpdate a contextwrite
Topic subscriptions5
  • novu.topic_subscriptions.createCreate topic subscriptionswrite
  • novu.topic_subscriptions.deleteDelete topic subscriptionsdestructive
  • novu.topic_subscriptions.getRetrieve a topic subscriptionread
  • novu.topic_subscriptions.listList topic subscriptionsread
  • novu.topic_subscriptions.updateUpdate a topic subscriptionwrite
Topics5
  • novu.topics.deleteDelete a topicdestructive
  • novu.topics.getRetrieve a topicread
  • novu.topics.listList all topicsread
  • novu.topics.updateUpdate a topicwrite
  • novu.topics.upsertCreate a topicwrite
Translations5
  • novu.translations.createCreate a translationwrite
  • novu.translations.deleteDelete a translationdestructive
  • novu.translations.getRetrieve a translationread
  • novu.translations.get_master_jsonRetrieve master translations JSONread
  • novu.translations.import_master_jsonImport master translations JSONwrite
Agent integrations4
  • novu.agent_integrations.createCreate an agent integrationwrite
  • novu.agent_integrations.deleteDelete an agent integrationdestructive
  • novu.agent_integrations.listList agent integrationsread
  • novu.agent_integrations.updateUpdate an agent integrationwrite
Events4
  • novu.events.cancelCancel triggered eventdestructive
  • novu.events.triggerTrigger eventwrite
  • novu.events.trigger_broadcastBroadcast event to allwrite
  • novu.events.trigger_bulkBulk trigger eventwrite
Messages3
  • novu.messages.deleteDelete a messagedestructive
  • novu.messages.delete_by_transactionDelete messages by transactionIddestructive
  • novu.messages.listList all messagesread
Subscriber credentials3
  • novu.subscriber_credentials.appendUpsert provider credentialswrite
  • novu.subscriber_credentials.deleteDelete provider credentialsdestructive
  • novu.subscriber_credentials.updateUpdate provider credentialswrite
Subscriber messages3
  • novu.subscriber_messages.mark_allUpdate all notifications statewrite
  • novu.subscriber_messages.mark_asUpdate notifications statewrite
  • novu.subscriber_messages.update_actionUpdate notification action statuswrite
Subscriber preferences3
  • novu.subscriber_preferences.bulk_updateBulk update subscriber preferenceswrite
  • novu.subscriber_preferences.listRetrieve subscriber preferencesread
  • novu.subscriber_preferences.updateUpdate subscriber preferenceswrite
Notifications2
  • novu.notifications.getRetrieve an eventread
  • novu.notifications.listList all eventsread
Translation groups2
  • novu.translation_groups.deleteDelete a translation groupdestructive
  • novu.translation_groups.getRetrieve a translation groupread
Workflow steps2
  • novu.workflow_steps.getRetrieve workflow stepread
  • novu.workflow_steps.previewGenerate a step previewread
Subscriber topics1
  • novu.subscriber_topics.listRetrieve subscriber subscriptionsread
Topic subscribers1
  • novu.topic_subscribers.getCheck topic subscriberread

Questions

The Novu MCP server, answered.

Is there a Novu MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 146 Novu actions across subscriber notifications, integrations, domains and layouts, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Novu.

What do I need to connect Novu?

Novu secret key (Novu dashboard > Developer > API Keys > Secret Key) for the environment you want to act on. Plus your host. The free call account { op: "connections.requirements", service: "novu" } lists exactly what to paste.

Can an AI agent delete or change things in Novu?

Only if its key allows it, and only with an explicit confirmation. 23 Novu actions are destructive, including delete a workflow, delete a notification and delete a topic. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my Novu API limit?

actionlake paces every call to the limits in the Novu service file: 20 calls a second per connection. Repeated reads are answered from cache (35 Novu actions can be), which never reaches Novu.

What does a Novu action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (146 Novu actions page). Cache hits, searches, dry runs and calls Novu refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which Novu API does it cover?

The Novu API (OpenAPI 3.0.0, 3.19.2) at your Novu instance's API base URL, which you enter when connecting. It is built from Novu's documentation as read on 23 October 2026. 146 actions in 27 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my Novu data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Novu credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent Novu today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.