MCP Hub
Back to servers

JMAP Email

Email management via JMAP — mailboxes, messages, identities, and Sieve scripts

Updated
Feb 18, 2026

jmap-mcp

MCP server exposing JMAP email and Sieve script operations as tools.

Built with the Go MCP SDK (go-sdk) and go-jmap library.

Tools

Tools map closely to JMAP methods. Email mutation tools provide structured convenience wrappers over Email/set patches.

Mailbox (RFC 8621)

ToolJMAP MethodDescription
mailbox_getMailbox/getGet mailboxes by ID, or list all
mailbox_setMailbox/setCreate, update, or destroy mailboxes

Email (RFC 8621)

ToolJMAP MethodDescription
email_queryEmail/querySearch emails with filters, returns IDs and total count
email_getEmail/getGet full content of emails by ID
email_createEmail/setCreate a new email draft in the Drafts mailbox
email_moveEmail/setMove emails to a different mailbox
email_flagEmail/setSet or remove flags (seen, flagged, answered, draft)
email_deleteEmail/setDelete emails (move to Trash or permanently destroy)

Identity

ToolJMAP MethodDescription
identity_getIdentity/getList sender identities (email addresses)

Submission (feature-gated)

ToolJMAP MethodDescription
email_submission_setEmailSubmission/setSubmit a draft for delivery (requires -enable-send)

Sieve Scripts (RFC 9661, feature-gated)

ToolJMAP MethodDescription
sieve_getSieveScript/getList all scripts, or get one with full content (requires -enable-sieve)
sieve_setSieveScript/setCreate, update, or destroy Sieve scripts (requires -enable-sieve)
sieve_validateSieveScript/validateValidate a Sieve script without saving (requires -enable-sieve)

Configuration

Env varRequiredDescription
JMAP_SESSION_URLalwaysJMAP session endpoint (e.g. https://api.fastmail.com/jmap/session)
JMAP_AUTH_TOKENstdio modeBearer token for JMAP authentication
FlagDefaultDescription
-modestdioServer mode: stdio or http
-listen:8080HTTP listen address (http mode only)
-enable-sendfalseEnable the email_submission_set tool (off by default)
-enable-sievefalseEnable Sieve script tools (off by default, requires JMAP server support)

In HTTP mode, the token can come from the jmap_token query parameter.

Installation

Kubernetes (Helm)

helm install jmap-mcp oci://ghcr.io/mikluko/helm-charts/jmap-mcp \
  --version 0.1.0 \
  --set jmap.sessionURL="https://api.fastmail.com/jmap/session"

In HTTP mode, JMAP auth tokens are passed per-request via ?jmap_token= query parameter — no static tokens are stored in the cluster.

Binary

go install github.com/mikluko/jmap-mcp@latest

From source

git clone https://github.com/mikluko/jmap-mcp.git
cd jmap-mcp
make install

Usage

# stdio mode (default)
export JMAP_SESSION_URL=https://api.fastmail.com/jmap/session
export JMAP_AUTH_TOKEN=your-token
./jmap-mcp

# HTTP mode
./jmap-mcp -mode http -listen :8080

Build

make build # Build and push container image + Helm chart
make image # Build and push container image with ko
make package # Package and push Helm chart to OCI registry
make test # Run tests
make install # Install binary locally

References

Reviews

No reviews yet

Sign in to write a review