You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every other email MCP uses IMAP — a 1986 protocol that was never designed for programmatic access. Fastmail Blade uses JMAP, Fastmail's native protocol:
JMAP-native — stateless, JSON-based, supports batch operations natively. No IDLE hacks, no MIME parsing, no connection state management.
Masked Email — full CRUD for Fastmail's privacy aliases (create, list, enable/disable). No IMAP MCP can touch this — it's a Fastmail extension that only exists in JMAP.
Push notifications — real-time EventSource via JMAP Push. Know when mail arrives without polling.
Incremental sync — JMAP state tokens for delta changes. Get only what's new since your last check, not the entire mailbox.
Token-efficient — concise pipe-delimited output, null-field omission. IMAP MCPs dump raw headers and MIME multipart.
Write-safe — env-gated writes, batch limits (50 max), credential scrubbing on all error paths.
Features
18 tools: email read/write/manage, masked email, push notifications, meta
Masked Email management — no other MCP server exposes this Fastmail extension
JMAP Push (EventSource) — real-time state change notifications
Write-gate — all write operations disabled by default (FASTMAIL_WRITE_ENABLED=true)
# Clone and installcd fastmail-blade-mcp
uv sync
# Set your API tokenexport FASTMAIL_API_TOKEN=fmu1-xxxxxxxx
# Run (stdio transport)
uv run fastmail-blade-mcp
Claude Code
claude mcp add fastmail-blade -- uv run --directory ~/src/fastmail-blade-mcp fastmail-blade-mcp
make install-dev # Install with dev dependencies
make test# Run unit tests (92 tests, mocked)
make test-e2e # Run E2E tests (requires live Fastmail)
make check # Lint + format + type-check
make run # Start the server