Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

dev.mailkite/mailkite

NPM · @MAILKITE/MCP · 2 COMPONENTS · SCANNED AUG 3

Send email, manage domains, DNS, webhooks, templates, and inbound routing on MailKite

+22 this week 67 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability70
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 3350 tokens (~83/item across 40 items; 40 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage88
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 63% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @mailkite/mcp

# add to Claude Code
claude mcp add dev-mailkite-mailkite -- npx -y @mailkite/mcp
# add to Codex CLI
codex mcp add dev-mailkite-mailkite -- npx -y @mailkite/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dev-mailkite-mailkite": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@mailkite/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add dev-mailkite-mailkite --command npx --arg -y --arg @mailkite/mcp
# ~/.hermes/config.yaml
mcp_servers:
  dev-mailkite-mailkite:
    command: "npx"
    args: ["-y", "@mailkite/mcp"]
// mcp.json
{
  "mcpServers": {
    "dev-mailkite-mailkite": {
      "command": "npx",
      "args": [
        "-y",
        "@mailkite/mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +46
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • Schema quality: unverified → good functional
    • Stability: unverified → 0.23 functional
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → partial functional
    • License: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Licence: MIT functional
  • 1 Aug 26 −5
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Capabilities: pass → unverified functional
  • 31 Jul 26 −20
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 45

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@mailkite/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 95 packages

95 packages in the resolved dependency tree · 94 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 40 exposed · ~3,350 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
mailkite_add_list_contacts ~64

Add contacts (by id, ctr_…) to a list. Returns how many were newly added; contacts already on the list are ignored. Requires a management session token.

NameTypeReqDescription
contactIdsarrayyes
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_agent ~260

Send a message to one of your inbox agents and get its reply. Defaults to the account's default agent; pass `routeId` or `address` to target a specific agent, or `model` to override the model. This is separate from inbound routing — it does not match or override routes. Requires an API key (mk_live_…).

NameTypeReqDescription
addressstringTarget the agent whose route matches this address. Alternative to routeId.
fromstringOptional sender address the agent sees as the originator. Defaults to the account's API caller address.
htmlstringOptional HTML body. `text` is still required — the agent reasons over the plain-text content.
modelstringOverride the model the agent runs on for this call (e.g. claude-sonnet-4-6).
routeIdstringTarget a specific agent by its route id (rte_…). Omit to use the account's default agent (its most recently created agent route).
subjectstringOptional subject line the agent sees on the message.
textstringyesThe message for the agent — it reads this as the incoming email body and decides what to do.

No output schema declared.

No examples provided.

mailkite_check_domain_availability ~49

Check whether a domain is available to register, and at what price. Read-only — no charge. Requires a management session token.

NameTypeReqDescription
domainstringyesQuery parameter `domain`.

No output schema declared.

No examples provided.

mailkite_create_broadcast ~145

Create a broadcast draft. `from` is required; set `audience` to { type: "all" } or { type: "list", id: "lst_…" }. Returns the broadcast with its id (bct_…). Send it with sendBroadcast. Requires a management session token.

NameTypeReqDescription
audienceobject
footerAddressstring
fromstringyes
htmlstring
namestring
previewstring
replyTostring
subjectstring
templateIdstring
textstring

No output schema declared.

No examples provided.

mailkite_create_domain ~34

Add a domain. Returns the domain + DNS records. Requires a management session token.

NameTypeReqDescription
domainstringyes

No output schema declared.

No examples provided.

mailkite_create_list ~46

Create a contact list. Returns the list with its id (lst_…); add contacts with addListContacts. Requires a management session token.

NameTypeReqDescription
namestringyes

No output schema declared.

No examples provided.

mailkite_create_route ~102

Create a route (match, action, destination). Requires a management session token.

NameTypeReqDescription
actionstringWhat to do with matching mail. Defaults to webhook.
agentPromptstringRequired for action agent — instructions for the inbox agent.
destinationstringRequired for action webhook (URL) or forward (address).
matchstringyesAddress pattern: exact, *@domain, addr+*@domain, or /regex/.

No output schema declared.

No examples provided.

mailkite_create_template ~172

Create a template. Pass `baseId` to clone a base template into your own, or provide name/subject/html/text/theme directly. Requires a management session token.

NameTypeReqDescription
baseIdstringClone this base template (base_…) into your own. When set, name is optional (defaults to the base's name).
htmlstringRendered, send-ready HTML.
jsonstringEditor (TipTap) JSON source, for re-editing in the dashboard.
namestringTemplate name. Required unless baseId is given.
subjectstringDefault subject line for sends.
textstringPlaintext fallback.
themestringBrand tokens JSON (bg, surface, primary, text, logo, …).

No output schema declared.

No examples provided.

mailkite_delete_broadcast ~33

Delete a broadcast draft. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_delete_domain ~31

Remove a domain. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_delete_list ~43

Delete a contact list. The list is removed; the contacts themselves are kept. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_delete_route ~63

Delete an inbound routing rule by id. Pair with createRoute to register and tear down a webhook destination — e.g. an automation platform subscribing on enable and cleaning up on disable. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_delete_webhook ~34

Remove the domain's webhook. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_get_broadcast ~38

Get one broadcast with its status and recipient summary. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_get_domain ~36

Get one domain with DNS records + webhook. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_get_list ~36

Get one contact list with its member count. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_get_message ~35

Get a message with deliveries + attachments. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_get_template ~56

Get one template (full: subject, html, text, theme). Works for your templates (tpl_…) and base templates (base_…). Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_list_base_templates ~47

List the premade base templates (light metadata). Clone one with createTemplate({ baseId }) or send from it directly via send({ templateId }). Requires a management session token.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mailkite_list_broadcasts ~33

List your broadcasts (one-to-many sends) with status and send stats. Requires a management session token.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mailkite_list_domains ~26

List your domains, each with its webhook URL. Requires a management session token.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mailkite_list_list_contacts ~96

List the contacts that are members of a list, newest first. Optionally page with `before` (a `last_seen_at`/`created_at` cursor) and `limit`. Response is a bare array — paginate by passing the last row's `last_seen_at` (or `created_at`) as the next `before`. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_list_lists ~33

List your contact lists (static, curated broadcast audiences), each with its member count. Requires a management session token.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mailkite_list_messages ~89

List stored messages, newest first. Optionally filter with `search` (matches sender, recipient, or subject) and page with `before` (a `received_at` cursor) and `limit`; omit all for the default newest 100. Response is a bare array — paginate by passing the last row's `received_at` as the next `before`. Requires a management session token.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mailkite_list_routes ~21

List inbound routing rules. Requires a management session token.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mailkite_list_templates ~37

List your saved email templates (light metadata only — no body). Use getTemplate for the full template. Requires a management session token.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mailkite_register_domain ~103

Register (buy) a domain on the customer's behalf; provisions mail DNS and adds it to the account in one call. Charges the registrar. Requires a management session token. Does NOT register automatically — returns a dashboard link for the user to review the price and confirm. An assistant can never purchase a domain on its own.

NameTypeReqDescription
contactobjectyes
domainstringyes
dryRunboolean
yearsinteger

No output schema declared.

No examples provided.

mailkite_remove_list_contact ~54

Remove one contact from a list (the contact itself is kept). Requires a management session token.

NameTypeReqDescription
contactIdstringyesPath parameter `contactId`.
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_retry_delivery ~37

Re-deliver a stored message to its webhook. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_route ~167

Route a message to one of your registered routes (by `routeId` or `address`), running that route's action — agent, webhook, or forward. The route must already exist on your account; arbitrary destinations are not allowed. Requires an API key (mk_live_…).

NameTypeReqDescription
addressstringTarget route by the address it matches. One of routeId or address is required.
fromstringyesSender address recorded on the message.
htmlstringHTML body.
routeIdstringTarget route by id (rte_…). One of routeId or address is required. The route must already be registered on this account.
subjectstringOptional subject line.
textstringPlain-text body.

No output schema declared.

No examples provided.

mailkite_semantic_search ~73

Semantic search over the MailKite documentation — returns the most relevant doc sections for a natural-language query (hybrid vector + keyword search over https://mailkite.dev/docs). Public; no authentication required. Requires an API key (mk_live_…).

NameTypeReqDescription
querystringyesQuery parameter `query`.

No output schema declared.

No examples provided.

mailkite_send ~286

Send a message over a verified domain. Pass `templateId` (+ optional `templateData`) to send from a saved or base template. Requires an API key (mk_live_…).

NameTypeReqDescription
attachmentsarray
bcc
cc
fromstringyesAn address on a verified domain.
headersobjectExtra raw MIME headers, applied after threading headers (caller wins). Use for what the structured fields can't express — e.g. `List-Unsubscribe`, a dedup/idempotency key (`X-Entity-Ref-ID`), or a ta…
htmlstring
inReplyTostring
replyTostring
subjectstringRequired unless supplied by a template.
templateDataobjectValues substituted into the template's {{merge_tags}} (e.g. {"name":"Ann"} fills {{name}}). HTML values are auto-escaped.
templateIdstringSend using a saved template — a user template (tpl_…) or a base template (base_…). Its subject/html/text seed the message; explicit subject/html/text here override them.
textstring
toyesOne recipient or a list.

No output schema declared.

No examples provided.

mailkite_send_broadcast ~102

Send a broadcast now, or pass an ISO 8601 `scheduledAt` to schedule it. A one-click unsubscribe is always added. Returns the status and resolved audience count. Requires a management session token. Does NOT register automatically — returns a dashboard link for the user to review the price and confirm. An assistant can never purchase a domain on its own.

NameTypeReqDescription
idstringyesPath parameter `id`.
scheduledAtstring

No output schema declared.

No examples provided.

mailkite_set_webhook ~45

Set or replace the domain's catch-all webhook. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.
urlstringyes

No output schema declared.

No examples provided.

mailkite_test_webhook ~39

Send a signed test event to the domain's webhook. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_update_broadcast ~121

Edit a draft broadcast (any of from/subject/audience/html/… ). Drafts only. Requires a management session token.

NameTypeReqDescription
audienceobject
footerAddressstring
fromstring
htmlstring
idstringyesPath parameter `id`.
namestring
previewstring
replyTostring
subjectstring
templateIdstring
textstring

No output schema declared.

No examples provided.

mailkite_update_list ~39

Rename a contact list. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.
namestringyes

No output schema declared.

No examples provided.

mailkite_upload_attachment ~399

Upload a file to MailKite storage and get back a secure, time-limited URL. Reference the returned `url` as an attachment in send() (`{ filename, url }`) or link it inline in your HTML — instead of base64-inlining large files on every send. Give the file ONE of four ways: a local `path` (read and streamed as raw bytes by the CLI/SDK/local MCP), a remote `url` (MailKite fetches and re-hosts it), base64 `content`, or — over raw HTTP — the file bytes as the POST body with `?filename=`. `retentionDays` (7/30/90/365, default 7) sets how long the file and URL live. Requires an API key (mk_live_…).

NameTypeReqDescription
contentstringThe file bytes, base64-encoded. The lowest-common-denominator fallback when you can't send a path, URL, or raw bytes.
contentTypestringMIME type, e.g. "application/pdf". Defaults to application/octet-stream (or is inferred from the file extension / fetched response).
filenamestringThe file's name, e.g. "invoice.pdf". Shown to recipients on download. Optional when it can be derived from `path` or `url`.
pathstringLocal filesystem path to the file. Read client-side by the CLI, SDKs, and the local MCP server, then uploaded as raw bytes. Not available on the hosted MCP (no filesystem).
retentionDaysintegerHow long the file (and its signed URL) stays valid. One of 7, 30, 90, 365. Defaults to 7.
urlstringA remote http(s) URL. MailKite fetches it and re-hosts the bytes under your account. Max 25 MB.

No output schema declared.

No examples provided.

mailkite_verify_domain ~33

Check DNS and update status. Requires a management session token.

NameTypeReqDescription
idstringyesPath parameter `id`.

No output schema declared.

No examples provided.

mailkite_verify_webhook ~193

Verify the `x-mailkite-signature` header on an inbound webhook delivery. Runs entirely locally (HMAC-SHA256 over `${t}.${payload}`) — no network call. Returns true only when the signature matches and the event is within the freshness window. Runs locally (no API call) — no credentials needed.

NameTypeReqDescription
payloadstringyesThe raw, unparsed webhook request body — the exact bytes you received.
secretstringyesYour webhook signing secret (from the dashboard).
signaturestringyesThe `x-mailkite-signature` header value, e.g. `t=1750000000000,v1=4f1a9c…`.
toleranceMsintegerReject events whose timestamp is more than this many milliseconds old, to block replays. Defaults to 300000 (5 minutes). Pass 0 to disable the freshness check.

No output schema declared.

No examples provided.