Skip to main content
Glama

jmap-mcp

Local MCP server that exposes a Stalwart mail server's JMAP surface to an AI assistant: mail, calendar, contacts, files, sharing, Sieve.

No data leaves your machine except the exchange with your own server.

Status: early. The scaffolding, the JMAP client and the policy guard are in place. No domain tool is implemented yet, so the server currently registers zero tools.

Why

Prior art stops at mail and executes writes without asking. This server differs on two points:

  • Six JMAP domains, not one.

  • A write policy that gates every irreversible operation behind an explicit confirmation.

Related MCP server: fastmail-mcp

Write policy

Every tool call is classified from its arguments, not from its method name — one argument is enough to turn a write into a deletion. Each class has a configurable level: allow, confirm, or deny.

Class

Covers

Default

read

Reading, searching, listing

allow

draft

Reversible writes, drafts

allow

send

Outbound sending, irreversible

confirm

destroy

Permanent deletion

confirm

confirm relies on MRTR, the required-input pattern of MCP revision 2026-07-28. When the client does not expose it, the tool refuses — it never executes silently. Claude Desktop does not support elicitation today, so send and destroy operations fail there by design.

Configuration

Set both variables, or put the same keys in ~/.config/jmap-mcp/config.json. The environment wins.

export JMAP_SESSION_URL="https://mail.example.com/.well-known/jmap"
export JMAP_BEARER_TOKEN="…"   # never passed as a CLI argument

Optional: JMAP_ACCOUNT_ID pins one account when the session exposes several.

Register with a client

claude mcp add jmap -- npx -y jmap-mcp

Development

Requires Node 24 (nvm use) and pnpm.

pnpm install
pnpm typecheck   # tsc, native Go compiler
pnpm test        # vitest
pnpm lint        # biome
pnpm build       # emits dist/

Architecture, decisions and the full file tree live in aidd_docs/INSTALL.md. Contribution workflow in CONTRIBUTING.md.

License

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to manage Fastmail email accounts via JMAP, including reading, sending, organizing emails, and handling mailboxes, drafts, and masked emails.
    43
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI assistants to read, organize, and send Proton Mail through the local Proton Bridge, with careful gating for sending and attachment access.
    6
    34
    1
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Governed email for AI agents (Mailbuttons / mbag.ai): sandbox inboxes, policy gate, audit log.

  • Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.

  • Give an AI agent its own email address: send, reply, read, and wait for mail.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BryanBerger98/jmap-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server