mcpField
E
elaan

elaan

Local
elaan.ioCommunication0Updated 11w ago

About elaan

elaan is an MCP server for configuring and operating notification features in Elaan. It supports notification types, templates, brands, contacts, sending, and delivery diagnostics, while keeping transport credentials outside its tools.

Key features

  1. 01Manage notification types
  2. 02Create and preview channel templates
  3. 03Configure tenant brands
  4. 04Manage contacts and preferences
  5. 05Trigger sends and inspect delivery

Use cases

  1. 01Set up notification types and templates
  2. 02Send notifications to recipients
  3. 03Investigate a missing message's delivery

MCP support

Exposes Elaan notification configuration, contact, sending, and diagnostics tools to MCP clients. Email and push transport credentials are not exposed.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"io-elaan": {
"command": "npx",
"args": [
"-y",
"@elaanio/mcp"
],
"env": {
"ELAAN_API_KEY": "<ELAAN_API_KEY>"
}
}
}
}
Run commandnpx -y @elaanio/mcp
Environment variables to set
ELAAN_API_KEYSecretElaan service key (sk_...) from console.elaan.io. Read from the environment only, never passed as a tool argument.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@elaanio/mcp0.1.3

Tools

26

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
include_deletedbooleanNoInclude soft-deleted types. Default false.

Details

From the project README

@elaanio/mcp

A Model Context Protocol server for Elaan, so the tedious half of a notification integration happens in your editor instead of by hand in a console: creating notification types, writing templates for three channels, setting up per-tenant brands, and working out why a message did not arrive.

Documentation: elaan.io/docs.html

Setup

Create a service key (sk_…) in the console, then add the server to your assistant's MCP config. Nothing to install — npx fetches it on first run.

Claude Code — .mcp.json in your project, or ~/.claude.json for every project:

{
  "mcpServers": {
    "elaan": {
      "command": "npx",
      "args": ["-y", "@elaanio/mcp"],
      "env": { "ELAAN_API_KEY": "sk_..." }
    }
  }
}

Cursor — the same block in .cursor/mcp.json. Most other MCP clients take the same shape.

Self-hosting Elaan? Point it at your own install:

"env": {
  "ELAAN_API_KEY": "sk_...",
  "ELAAN_API_BASE": "https://elaan.internal.example.com/v1"
}

What it can do

AreaTools
Notification typeslist, get, create, update (channel defaults, variables, opt-out policy), delete, restore
Templateslist, get, create, update, delete across email / inbox / push; preview an email render; report templates affected by a type's variables
Brandslist, create, update (values and sender), delete
Contactslist, get, create, read and set preferences
Sendingtrigger a notification to 1–100 recipients
Debuggingevent status with per-channel outcomes, the delivery log with filters, aggregate stats

Ask for what you want and let it do the fan-out:

Create an order_shipped type that goes to email and the inbox, with an order_id variable, then write both templates using our acme brand.

A customer says they never got their shipping email. Event id is 01J… — what happened?

What it deliberately cannot do

Transport credentials. /v1/email-transport and /v1/push-transport are not exposed at all. They hold SMTP passwords and FCM service accounts, and an agent has no business reading or rotating them. Configure those in the console.

See your API key. It is read from the environment, never accepted as a tool argument, because arguments are model-visible and end up in transcripts.

Note that delete_template is a hard delete with no restore, while delete_notification_type is soft and reversible with restore_notification_type. trigger_notification sends real messages.

Development

pnpm install
pnpm --filter @elaanio/mcp build
pnpm --filter @elaanio/mcp test    # spawns the server, speaks JSON-RPC to a stub API

The test drives the real binary over stdio rather than importing the source, which is how it caught a zod v4 behaviour that made every create_notification_type call fail before it left the process.

Licence

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.