dev.mailkite/mailkite
NPM · @MAILKITE/MCP · 2 COMPONENTS · SCANNED AUG 3
Send email, manage domains, DNS, webhooks, templates, and inbound routing on MailKite
Available components
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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
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
claude mcp add dev-mailkite-mailkite -- npx -y @mailkite/mcp
codex mcp add dev-mailkite-mailkite -- npx -y @mailkite/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"dev-mailkite-mailkite": {
"type": "local",
"command": [
"npx",
"-y",
"@mailkite/mcp"
],
"enabled": true
}
}
} openclaw mcp add dev-mailkite-mailkite --command npx --arg -y --arg @mailkite/mcp
mcp_servers:
dev-mailkite-mailkite:
command: "npx"
args: ["-y", "@mailkite/mcp"] {
"mcpServers": {
"dev-mailkite-mailkite": {
"command": "npx",
"args": [
"-y",
"@mailkite/mcp"
]
}
}
} 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.
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.
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.
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.
| Name | Type | Req | Description |
|---|---|---|---|
| contactIds | array | yes | — |
| id | string | yes | Path 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_…).
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | — | Target the agent whose route matches this address. Alternative to routeId. |
| from | string | — | Optional sender address the agent sees as the originator. Defaults to the account's API caller address. |
| html | string | — | Optional HTML body. `text` is still required — the agent reasons over the plain-text content. |
| model | string | — | Override the model the agent runs on for this call (e.g. claude-sonnet-4-6). |
| routeId | string | — | Target a specific agent by its route id (rte_…). Omit to use the account's default agent (its most recently created agent route). |
| subject | string | — | Optional subject line the agent sees on the message. |
| text | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | Query 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.
| Name | Type | Req | Description |
|---|---|---|---|
| audience | object | — | — |
| footerAddress | string | — | — |
| from | string | yes | — |
| html | string | — | — |
| name | string | — | — |
| preview | string | — | — |
| replyTo | string | — | — |
| subject | string | — | — |
| templateId | string | — | — |
| text | string | — | — |
No output schema declared.
No examples provided.
mailkite_create_domain ~34
Add a domain. Returns the domain + DNS records. Requires a management session token.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | yes | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | — |
No output schema declared.
No examples provided.
mailkite_create_route ~102
Create a route (match, action, destination). Requires a management session token.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | — | What to do with matching mail. Defaults to webhook. |
| agentPrompt | string | — | Required for action agent — instructions for the inbox agent. |
| destination | string | — | Required for action webhook (URL) or forward (address). |
| match | string | yes | Address 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.
| Name | Type | Req | Description |
|---|---|---|---|
| baseId | string | — | Clone this base template (base_…) into your own. When set, name is optional (defaults to the base's name). |
| html | string | — | Rendered, send-ready HTML. |
| json | string | — | Editor (TipTap) JSON source, for re-editing in the dashboard. |
| name | string | — | Template name. Required unless baseId is given. |
| subject | string | — | Default subject line for sends. |
| text | string | — | Plaintext fallback. |
| theme | string | — | Brand 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path parameter `id`. |
No output schema declared.
No examples provided.
mailkite_delete_domain ~31
Remove a domain. Requires a management session token.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path parameter `id`. |
No output schema declared.
No examples provided.
mailkite_delete_webhook ~34
Remove the domain's webhook. Requires a management session token.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path parameter `id`. |
No output schema declared.
No examples provided.
mailkite_get_message ~35
Get a message with deliveries + attachments. Requires a management session token.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| contact | object | yes | — |
| domain | string | yes | — |
| dryRun | boolean | — | — |
| years | integer | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| contactId | string | yes | Path parameter `contactId`. |
| id | string | yes | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path 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_…).
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | — | Target route by the address it matches. One of routeId or address is required. |
| from | string | yes | Sender address recorded on the message. |
| html | string | — | HTML body. |
| routeId | string | — | Target route by id (rte_…). One of routeId or address is required. The route must already be registered on this account. |
| subject | string | — | Optional subject line. |
| text | string | — | Plain-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_…).
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Query 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_…).
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | — | — |
| bcc | — | — | — |
| cc | — | — | — |
| from | string | yes | An address on a verified domain. |
| headers | object | — | Extra 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… |
| html | string | — | — |
| inReplyTo | string | — | — |
| replyTo | string | — | — |
| subject | string | — | Required unless supplied by a template. |
| templateData | object | — | Values substituted into the template's {{merge_tags}} (e.g. {"name":"Ann"} fills {{name}}). HTML values are auto-escaped. |
| templateId | string | — | Send 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. |
| text | string | — | — |
| to | — | yes | One 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path parameter `id`. |
| scheduledAt | string | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path parameter `id`. |
| url | string | yes | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| audience | object | — | — |
| footerAddress | string | — | — |
| from | string | — | — |
| html | string | — | — |
| id | string | yes | Path parameter `id`. |
| name | string | — | — |
| preview | string | — | — |
| replyTo | string | — | — |
| subject | string | — | — |
| templateId | string | — | — |
| text | string | — | — |
No output schema declared.
No examples provided.
mailkite_update_list ~39
Rename a contact list. Requires a management session token.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path parameter `id`. |
| name | string | yes | — |
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_…).
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | — | The file bytes, base64-encoded. The lowest-common-denominator fallback when you can't send a path, URL, or raw bytes. |
| contentType | string | — | MIME type, e.g. "application/pdf". Defaults to application/octet-stream (or is inferred from the file extension / fetched response). |
| filename | string | — | The file's name, e.g. "invoice.pdf". Shown to recipients on download. Optional when it can be derived from `path` or `url`. |
| path | string | — | Local 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). |
| retentionDays | integer | — | How long the file (and its signed URL) stays valid. One of 7, 30, 90, 365. Defaults to 7. |
| url | string | — | A 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| payload | string | yes | The raw, unparsed webhook request body — the exact bytes you received. |
| secret | string | yes | Your webhook signing secret (from the dashboard). |
| signature | string | yes | The `x-mailkite-signature` header value, e.g. `t=1750000000000,v1=4f1a9c…`. |
| toleranceMs | integer | — | Reject 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.