# dev.multimail/mcp-server (npm · @multimail/mcp-server)

Give your agent its own email address with graduated human oversight, from approval to autonomy.

- Trust score: 67/100 (medium)
- Change this week: +24
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.multimail.dev`: 39/100, [markdown](https://verifymcp.io/servers/dev-multimail-mcp-server/mcp.md), [page](https://verifymcp.io/servers/dev-multimail-mcp-server/mcp)
- npm · `@multimail/mcp-server`: 67/100 (this document), [markdown](https://verifymcp.io/servers/dev-multimail-mcp-server/multimail-mcp-server.md), [page](https://verifymcp.io/servers/dev-multimail-mcp-server/multimail-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `@multimail/mcp-server`
- Version: `0.13.0`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 52 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1161 tokens (~193/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add dev-multimail-mcp-server -- npx -y @multimail/mcp-server
```

### Codex

```bash
codex mcp add dev-multimail-mcp-server -- npx -y @multimail/mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dev-multimail-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@multimail/mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add dev-multimail-mcp-server --command npx --arg -y --arg @multimail/mcp-server
```

### Hermes

```yaml
mcp_servers:
  dev-multimail-mcp-server:
    command: "npx"
    args: ["-y", "@multimail/mcp-server"]
```

### Other

```json
{
  "mcpServers": {
    "dev-multimail-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@multimail/mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 67, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 63, +44)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: unverified
- [functional] Licence: MIT

### 2026-07-31 (score 19, −6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 25, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 43)

First indexed and scored.

## MCP tools (6)

### `setup_multimail` (~36 tokens)

Set up MultiMail

MultiMail is not configured yet. This tool explains how to get started and give your agent its own email address with human oversight.

### `request_challenge` (~234 tokens)

Request signup challenge

Request a proof-of-work challenge for account creation. Returns an ALTCHA challenge object with fields: algorithm (always SHA-256), challenge (hex hash to match), maxnumber (search space ceiling), salt, and signature. You must solve this before calling create_account. The challenge expires in 5 minutes. To solve: find a number N (0 <= N <= maxnumber) where hex(SHA-256(salt + N)) equals the challenge value. Use the salt string exactly as returned (it may contain query parameters like ?expires=...&) — concatenate it with the decimal string of N, compute SHA-256, and compare the hex digest to challenge. Submit the winning N as pow_solution.number in create_account. Echo back algorithm, challenge, salt, and signature unchanged — do not recompute signature; it is verified server-side. If the challenge expires or is already used, request a new one. Optionally provide oversight_email to calibrate difficulty — consumer email domains may receive easier challenges.

Input parameters:

- `oversight_email` (string): Oversight email address (optional, used to calibrate PoW difficulty)

### `request_did_challenge` (~197 tokens)

Request DID binding challenge

Request an account-binding challenge for DID onboarding (optional identity step before create_account). Send your agent_did (an Ed25519 did:key) and receive {challenge_id, nonce, expires_in}. Sign the UTF-8 bytes of MM-DID-BIND:v1\n<nonce>\n<agent_did>\n<normalize(oversight_email)>\ndid:web:multimail.dev (single LF joins, no trailing newline; normalize = ASCII-trim + ASCII-lowercase) with the DID's Ed25519 private key, base64url-encode the 64-byte signature, then pass agent_did + did_challenge_id + did_signature to create_account. The challenge is single-use and expires in 5 minutes. No API key required.

Input parameters:

- `agent_did` (string, required): Your agent's did:key encoding an Ed25519 public key (e.g. did:key:z6Mk...)

### `create_account` (~530 tokens)

Create MultiMail account

Create a new MultiMail account. Requires a solved proof-of-work challenge from request_challenge — the agent must solve the challenge itself (see request_challenge description for algorithm). After calling this tool, the human operator receives a confirmation email with an activation code. Call activate_account with that code to complete signup and receive an API key. The response is always {status: "confirmation_sent"} for privacy — it does not confirm whether the account was actually created or the email already exists. If no activation code arrives within 10 minutes, the email may already have an account (try resend_confirmation or ask the human operator). Slug conflicts return an explicit 409 with suggestions. Other explicit errors (400/429) may come from email validation failures, disposable domain blocking, rate limits, or invalid/expired PoW challenges. Optional DID onboarding: pass agent_did + did_challenge_id + did_signature (all three together, from request_did_challenge) to bind a verifiable Ed25519 agent identity to the account at activation.

Input parameters:

- `accepted_anti_spam_policy` (boolean, required): Must be true — acceptance of Anti-Spam Policy
- `accepted_operator_agreement` (boolean, required): Must be true — acceptance of Operator Agreement
- `accepted_tos` (boolean, required): Must be true — acceptance of Terms of Service
- `agent_did` (string): Optional DID binding: your agent's Ed25519 did:key. Must be provided together with did_challenge_id and did_signature (see request_did_challenge).
- `did_challenge_id` (string): Challenge ID from request_did_challenge (single-use, expires in 5 minutes)
- `did_signature` (string): Base64url-encoded Ed25519 signature over the MM-DID-BIND:v1 payload (see request_did_challenge for the exact bytes)
- `operator_name` (string, required): Organization or operator name (max 200 characters)
- `oversight_email` (string, required): Email address for oversight notifications and account confirmation
- `oversight_mode` (string): Initial oversight mode. gated_send (default) = approve outbound. gated_all = approve all. monitored = agent sends freely, operator gets BCC.
- `physical_address` (string): Physical mailing address for CAN-SPAM compliance
- `pow_solution` (object, required): Solved proof-of-work challenge from request_challenge
- `slug` (string): URL slug for the account (auto-generated from operator_name if omitted)
- `use_case` (string): What the agent will use email for (e.g. customer_support, notifications, scheduling)

### `activate_account` (~94 tokens)

Activate MultiMail account

Activate a MultiMail account using the activation code from the confirmation email. Accepts the code with or without dashes (e.g. 'SKP-7D2-4V8' or 'SKP7D24V8'). Rate limited to 5 attempts per hour.

Input parameters:

- `code` (string, required): The activation code from the confirmation email (e.g. SKP-7D2-4V8)

### `resend_confirmation` (~70 tokens)

Resend confirmation code

Resend the activation email with a new code. Requires the oversight email address, not an API key. Use this if the account is stuck in 'pending_operator_confirmation' status. Rate limited to 1 request per 5 minutes.

Input parameters:

- `oversight_email` (string, required): The oversight email address used during signup

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/dev-multimail-mcp-server/multimail-mcp-server#diagnostics

## Score history

- 2026-08-03: 67
- 2026-08-02: 63
- 2026-08-01: 19
- 2026-07-31: 19
- 2026-07-30: 25
- 2026-07-28: 43
- 2026-07-27: 43

## Links

- npm package: https://www.npmjs.com/package/@multimail/mcp-server
- Socket report: https://socket.dev/npm/package/@multimail/mcp-server
- Repository: https://github.com/multimail-dev/mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/dev-multimail-mcp-server/multimail-mcp-server/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/dev-multimail-mcp-server/multimail-mcp-server/changelog.json
- HTML version of this page: https://verifymcp.io/servers/dev-multimail-mcp-server/multimail-mcp-server
