# wyattjoh/jmap-mcp [Health: Active]

**Category:** 💬 Communication  
**Repository:** https://github.com/wyattjoh/jmap-mcp  
**GitHub Stars:** 178  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/wyattjoh-jmap-mcp

## Description
A Model Context Protocol (MCP) server that provides tools for interacting with JMAP (JSON Meta Application Protocol) email servers. Built with Deno and using the jmap-jam client library.

## Tools
Capabilities this server exposes over MCP:

- **get_mailboxes** — List mailboxes/folders with their IDs, names, and metadata. **Call this first**
- **search_emails** — Search emails with filters. **All filters are AND'd together.** Returns only
- **get_emails** — Retrieve specific emails by their IDs. Use `properties` to request only what you
- **get_threads** — Get email threads by their IDs. Thread IDs come from `get_emails` responses
- **get_email_changes** — Get IDs of emails created, updated, or destroyed since a previous state. Use the
- **get_search_updates** — Get changes within a previous search query since its `queryState`. Must use the
- **mark_emails** — Mark emails as read/unread or flagged/unflagged.
- **move_emails** — Move emails to a different mailbox. Use `get_mailboxes` to find the target
- **patch_email_mailboxes** — Add or remove selected mailbox memberships without replacing unspecified
- **delete_emails** — Delete emails permanently (cannot be undone). Prefer moving to Trash via
- **send_email** — Send a new email. Requires either `textBody` or `htmlBody` (or both).
- **reply_to_email** — Reply to an existing email. Automatically sets To/CC, Re: subject prefix, and

## Claude Desktop Quick Installation
Remote MCP endpoint (confidence: high). Install path detected from listing signals. Add as a URL/SSE server in your client:

```json
"mcpServers": {
  "jmap-mcp": {
    "url": "https://api.fastmail.com/jmap/session"
  }
}
```

## Documentation

## What wyattjoh/jmap-mcp MCP server does

The wyattjoh/jmap-mcp MCP server connects an MCP client to a JMAP-compliant email service. It supports common mailbox and message workflows without requiring the agent to construct JMAP requests directly. Supported services include JMAP deployments such as Cyrus IMAP, Stalwart Mail Server, and FastMail, provided valid JMAP credentials are available.

Mailbox discovery is the starting point for many operations. `get_mailboxes` returns folder IDs, names, hierarchy information, and other metadata. Those IDs can then be used to constrain searches or select a destination for moved messages.

## How it works

The server is implemented in Deno and uses the `jmap-jam` client library for protocol access. MCP tools adapt typed JMAP operations and validate inputs with Zod schemas. Run it over stdio from an MCP client, using Deno permissions for network access and environment-variable access.

Search results contain email IDs rather than complete messages. Call `get_emails` with those IDs and request only the properties needed for the task. Body content requires the appropriate body-related properties. Thread lookup is a separate step: `get_threads` returns the message IDs associated with supplied thread IDs, after which `get_emails` can retrieve their content.

The server also supports state-based polling. `get_email_changes` reports message IDs created, changed, or destroyed since a previous email state. `get_search_updates` reports additions and removals for an earlier search, but the original filter parameters must be supplied again.

## Setup and configuration

The wyattjoh/jmap-mcp MCP server requires Deno 2 or later, access to a JMAP server, and valid authentication credentials. Configure these environment variables:

- `JMAP_SESSION_URL`: Required JMAP session endpoint, normally the server’s well-known JMAP URL.
- `JMAP_BEARER_TOKEN`: Required bearer token used for authentication.
- `JMAP_ACCOUNT_ID`: Optional account identifier; the client can detect it when omitted.

A stdio configuration invokes `deno run` with network permission for the JMAP host and environment permission for these variables. Replace the example FastMail hostname with the hostname of the selected JMAP service. The project also documents installation as a Claude Code plugin through its marketplace.

## Tools and capabilities

The wyattjoh/jmap-mcp MCP server provides tools for:

- Searching by text, sender, recipient, subject, mailbox, keywords, and date range. Filters are combined with AND behavior, and results support pagination.
- Fetching selected email properties, retrieving thread membership, and managing read or flagged status.
- Moving messages, adding or removing mailbox memberships, and permanently deleting messages. Permanent deletion cannot be undone; moving mail to Trash is the recoverable alternative.
- Sending new messages with plain-text or HTML bodies, and replying with automatic recipient and subject handling, including reply-all support.
- Tracking email changes and updates to an earlier search query.

Operations accept bounded batches and pagination parameters where documented. Capability-based registration distinguishes read-only and submission functionality.

_Full upstream README: https://allmcps.com/mcp/wyattjoh-jmap-mcp/readme_

