JMAP
STDIO提供JMAP邮件服务器集成的MCP服务器
提供JMAP邮件服务器集成的MCP服务器
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 @htunnicliff/jmap-jam client library.
Add the following to your agent of choice:
{ "mcpServers": { "fastmail": { "type": "stdio", "command": "deno", "args": [ "run", "--allow-net=api.fastmail.com", "--allow-env=JMAP_SESSION_URL,JMAP_BEARER_TOKEN,JMAP_ACCOUNT_ID", "jsr:@wyattjoh/[email protected]" ], "env": { "JMAP_SESSION_URL": "https://api.fastmail.com/jmap/session", "JMAP_BEARER_TOKEN": "API_TOKEN" } } } }
| Variable | Required | Description | 
|---|---|---|
JMAP_SESSION_URL | Yes | JMAP server session URL (usually ends with /.well-known/jmap) | 
JMAP_BEARER_TOKEN | Yes | Bearer token for authentication | 
JMAP_ACCOUNT_ID | No | Account ID (auto-detected if not provided) | 
search_emailsSearch for emails with various filters.
Parameters:
query (optional): Text search queryfrom (optional): Filter by sender email addressto (optional): Filter by recipient email addresssubject (optional): Filter by subject textinMailbox (optional): Search within specific mailboxhasKeyword (optional): Filter by keyword (e.g., '$seen', '$flagged')notKeyword (optional): Exclude by keywordbefore (optional): Only emails before date (ISO datetime)after (optional): Only emails after date (ISO datetime)limit (optional): Max results (1-100, default: 50)position (optional): Starting position for pagination (default: 0)get_emailsRetrieve specific emails by their IDs.
Parameters:
ids: Array of email IDs (1-50 IDs)properties (optional): Specific properties to returnget_mailboxesGet list of mailboxes/folders.
Parameters:
parentId (optional): Filter by parent mailboxlimit (optional): Max results (1-200, default: 100)position (optional): Starting position for paginationget_threadsGet email threads by their IDs.
Parameters:
ids: Array of thread IDs (1-20 IDs)mark_emailsMark emails with keywords (read/unread, flagged/unflagged).
Parameters:
ids: Array of email IDs (1-100 IDs)seen (optional): Mark as read (true) or unread (false)flagged (optional): Mark as flagged (true) or unflagged (false)move_emailsMove emails to a different mailbox.
Parameters:
ids: Array of email IDs (1-100 IDs)mailboxId: Target mailbox IDdelete_emailsDelete emails permanently.
Parameters:
ids: Array of email IDs (1-100 IDs)send_emailSend a new email.
Parameters:
to: Array of recipients with name and emailcc (optional): Array of CC recipientsbcc (optional): Array of BCC recipientssubject: Email subjecttextBody (optional): Plain text bodyhtmlBody (optional): HTML bodyidentityId (optional): Identity to send fromreply_to_emailReply to an existing email.
Parameters:
emailId: ID of email to reply toreplyAll (optional): Reply to all recipients (default: false)subject (optional): Custom reply subjecttextBody (optional): Plain text bodyhtmlBody (optional): HTML bodyidentityId (optional): Identity to send fromThis server should work with any JMAP-compliant email server, including:
deno run --allow-env --allow-net --watch src/mod.ts
# Test connection deno run --allow-env --allow-net src/mod.ts
The server is built using:
MIT License - see LICENSE file for details.