Skip to content
Agentmart
Submit a tool

Elaan

Create Elaan notification types, templates and brands, trigger sends, and debug delivery.

Connector by elaan.ioOfficial · Domain verified by the MCP Registry

IndexedMITLocal (stdio)
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/elaan-io-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Create Elaan notification types, templates and brands, trigger sends, and debug delivery.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
13 read · 9 write · 4 delete
Secrets
1 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Node.js package

Tools by what they do 26

Read from the source code; the running server may list different tools.

Read 13 · Look things up without changing anything.

  • get_contact
  • get_contact_preferences
  • get_delivery_stats
  • get_notification_event
  • get_notification_type
  • get_template
  • list_brandings
  • list_contacts
  • list_deliveries
  • list_notification_types
  • list_templates
  • list_templates_affected_by
Show 1 more tools
  • preview_email_render

Write 9 · Create, change, send or run things.

  • create_branding
  • create_contact
  • create_notification_type
  • create_template
  • set_contact_preference
  • trigger_notification
  • update_branding
  • update_notification_type
  • update_template

Delete 4 · Delete, drop, revoke or wipe things.

  • delete_branding
  • delete_notification_type
  • delete_template
  • restore_notification_type

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • ELAAN_API_KEY

Tools (26)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • create_brandingCreate a brand

    Create a brand. `values` is an arbitrary key/value bag interpolated into templates, so one template can render for every customer you have — put whatever the templates reference here (product name, logo URL, colour, support address).

  • create_contactCreate a contact

    Create a contact. `attributes` are available to every template rendered for this recipient, so anything you would otherwise repeat in every trigger belongs here.

  • create_notification_typeCreate a notification type

    Create a notification type. The key is its permanent identity and is referenced by every template and preference, so choose it carefully — it cannot be renamed. Set allows_opt_out to false for transactional types (password resets, email verification) that a recipient must not be able to switch off; note that this removes only the recipient's veto, and channel_defaults still decides which channels fire.

  • create_templateCreate a template

    Create a template for one notification type on one channel. Content is Liquid. A value is read from one of three places, and the slot itself says which: {{ contact.first_name }} for the recipient (their attributes, plus contact.email, contact.language, contact.external_id), {{ brand.logo }} for the resolved brand's values, and {{ order_id }} for the trigger's own variables. `contact` and `brand` are reserved, so a variable cannot use either name. A slot nobody filled renders empty rather than failing the send. Loops handle list data: {% for line in lines %} ... {{ line.description }} ... {% en…

  • delete_brandingDelete a brandcan change or delete data

    Delete a brand. The account default cannot be deleted and will return 409. Templates overriding this brand are not deleted, but sends naming it will fall back to the default.

  • delete_notification_typeDelete a notification typecan change or delete data

    Soft-delete a notification type. The row survives because templates and preferences reference it by key, and restore_notification_type brings it back. Templates of a deleted type can still be edited.

  • delete_templateDelete a templatecan change or delete data

    Permanently delete a template. This is a hard delete with no restore. Deleting the last template for a (type, channel) also removes that channel from the contact-facing preference matrix, because a channel with no template can never be delivered.

  • get_contactGet a contactread-only

    Fetch one contact. Accepts either Elaan's internal id or your own identifier prefixed with 'ext:', e.g. 'ext:crm-12345'.

  • get_contact_preferencesGet a contact's preferencesread-only

    The per-type by per-channel matrix for one contact, with the effective on/off and whether they overrode the default. Only channels a type can actually reach (i.e. that have a template) are offered, and non-opt-out types are omitted entirely.

  • get_delivery_statsGet delivery statsread-only

    Aggregate delivery counts for the account.

  • get_notification_eventGet a notification event's statusread-only

    The outcome of one triggered event: pending, processed or failed, with per-channel errors. Channel failures are isolated, so a broken email template shows here without having blocked the inbox or push delivery of the same event. Start here when someone reports a notification did not arrive.

  • get_notification_typeGet a notification typeread-only

    Fetch a single notification type by its key.

  • get_templateGet a templateread-only

    Fetch one template by id.

  • list_brandingsList brandsread-only

    List the account's brands. Every account has exactly one default brand, which cannot be deleted and is the fallback whenever a send names no brand or an unknown one.

  • list_contactsList contactsread-only

    List or search contacts.

Show 11 more tools
  • list_deliveriesList deliveriesread-only

    The delivery log, filterable by channel, status, recipient, notification type and time range. This is the tool for 'did this person get it, and if not why'.

  • list_notification_typesList notification typesread-only

    List every notification type in the account, with its per-channel defaults, declared variables and opt-out policy. Start here when you need to know what already exists.

  • list_templatesList templates for a channelread-only

    List every template on one channel, across all notification types, brands and languages.

  • list_templates_affected_byList templates affected by a type's variablesread-only

    Report which email templates reference which of a notification type's declared variables. Advisory only — a template may legitimately use brand keys and contact attributes that are not declared variables — but it is the right check before changing or removing one.

  • preview_email_renderPreview a rendered email

    Render an email template with sample variables and a chosen brand, without sending anything. Use this to check that slots resolve and that the brand-major fallback picked the template you expected.

  • restore_notification_typeRestore a notification type

    Undo a soft delete, bringing the type and its configuration back.

  • set_contact_preferenceSet a contact preference

    Override one (type, channel) for one contact. Attempting this on a non-opt-out type returns 409.

  • trigger_notificationTrigger a notification

    Send a notification to 1-100 recipients. Returns 202 immediately with one event_id per recipient; delivery happens asynchronously, so use get_notification_event afterwards to see the outcome. An omitted or unknown branding_key falls back to the account default rather than failing. Variables are any JSON: strings, numbers, booleans, nested objects read as {{ order.customer.name }}, and arrays a template loops over with {% for %}. They fill slots at the TOP level; the recipient and the brand have their own namespaces, so `contact` and `brand` are refused as variable names. This sends real messag…

  • update_brandingUpdate a brand

    Update a brand's values and/or its email sender. Values are replaced wholesale, not merged — read the brand first if you mean to change one key.

  • update_notification_typeUpdate a notification type

    Update any combination of a type's channel defaults, declared variables and opt-out policy. Only the fields you pass are changed. Note that channel_defaults and variables are replaced wholesale, not merged.

  • update_templateUpdate a template

    Replace a template's content. Same field rules as create_template. The notification type, brand and channel of an existing template cannot be changed — delete and recreate to move it.

Signals

Stars
0
Forks
0
Open issues
0
Weekly downloads
17
Last commit (this folder)
Aug 15, 2026 (2 months ago)
Last release
Aug 3, 2026 (2 months ago)
Last package publish
Aug 15, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.elaan/mcp
Version
0.1.3
Auth
API key
Packages
npm @elaanio/mcp
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

Elaan MCP server. Agent Mart. https://agentmart.dev/connectors/elaan-io-mcp (last updated 2026-10-24)