macos-mail-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_accountsA | List all Mail.app accounts with their type, enabled status, and email addresses |
| get_account_detailA | Get detailed information about a specific Mail.app account by name |
| list_mailboxesA | List mailboxes in a Mail.app account, or all mailboxes across all accounts |
| create_mailboxA | Create a new mailbox (folder) in a Mail.app account. Can create top-level or nested mailboxes. |
| get_mailbox_infoB | Get detailed information about a specific mailbox in a Mail.app account |
| list_messagesB | List messages in a mailbox with pagination. Provide accountName and mailboxName to scope the listing. |
| get_messageA | Get the full details of a single message by its ID, including body, headers, recipients, and attachments. If mailboxName is omitted, searches all mailboxes in the account (slower but useful when you don't know which mailbox the message is in). |
| search_messagesA | Search messages by subject, sender, or content. Prefer 'subject' or 'sender' fields which are fast metadata lookups. The 'content' field searches message bodies and is significantly slower and less reliable — it may trigger full message downloads on IMAP accounts and can time out. WARNING: Mail.app loads all matching messages into memory before applying the limit, so searches on large mailboxes can be very slow. Always narrow results with mailboxName and accountName when possible. |
| move_messageA | Move a message to a different mailbox. Gmail uses labels rather than folders. Moving a message adds the destination label but may not remove the original. |
| move_messagesA | Move multiple messages to a different mailbox in a single operation. More efficient than calling move_message multiple times. |
| delete_messageA | Delete a message. Uses Mail's delete verb which routes to the correct Trash. |
| flag_messageB | Set or clear the flag on a message. Optionally specify a flag colour index. |
| mark_readB | Mark a message as read or unread. |
| list_attachmentsA | List all attachments for a message, including their name, MIME type, file size, and download status. |
| save_attachmentA | Save a specific attachment from a message to disk. |
| save_all_attachmentsA | Save all downloaded attachments from a message to disk. |
| read_attachmentA | Read the text content of a text-based attachment inline. Supported types: .txt, .csv, .json, .html, .md, .xml, .log. Use save_attachment for binary files. |
| send_messageA | Compose and send a new email message as plain text. Returns success when the message is queued for sending, along with the |
| reply_to_messageA | Reply to an existing email message. Returns the |
| forward_messageA | Forward an existing email message to a new recipient. Returns the |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 20 tools
Each tool targets a distinct resource and action: accounts, mailboxes, messages, attachments, and sending. Even the singular/plural move_message and move_messages pair is clearly differentiated by their batch semantics.
All tool names follow a consistent lowercase snake_case verb_noun pattern, such as list_mailboxes, create_mailbox, get_message, and save_attachment. There are no mixed conventions or vague generic verbs.
At 20 tools, the surface is on the heavier side and covers many distinct mail-related operations. The set is mostly justifiable, but the singular/plural move pair and multiple attachment helpers make it feel slightly more granular than necessary.
The message lifecycle is well covered: list, get, search, move, delete, flag, read, and send/reply/forward. Notable gaps include no mailbox deletion or rename, no draft support, and no ability to send or forward messages with attachments.