This file provides guidance for AI agents (Claude, etc.) when using this MCP server.
This MCP server enables AI assistants to interact with Apple Mail on macOS via AppleScript. All operations are local - no data leaves the user's machine.
query for general text search across subject, sender, contentfrom to filter by sender email addresssubject for subject line matchingmailbox and account to narrow search scopeto must be an array of email addresses, even for single recipientbody is plain text by defaultaccount to send from a specific accountsend-emailid to reply toreplyAll: true to reply to all recipientssend: false to save as draft instead of sendingid to forwardto must be an array of recipient addressesbody to prepend a messagesend: false to save as draft instead of sendingidsearch-messages or list-messagesid and destination mailbox nameaccount if mailbox is in a specific accountmailbox for specific folder countlist-accounts to see available accountsaccount parameter to target specific account| Error | Likely Cause |
|---|---|
| "Mail.app not responding" | Mail.app frozen or not running |
| "Message not found" | Message ID is invalid or message was deleted |
| "Permission denied" | macOS automation permission needed |
| "Account not found" | Account name doesn't match exactly |
| "Failed to send email" | Network issue or Mail.app configuration problem |
1. list-accounts → get available accounts
2. search-messages from="boss@company.com" → find emails from boss
3. get-message id="..." → read the full content
1. get-message id="..." → read original message
2. reply-to-message id="..." body="Thanks for the update!" → reply to sender
OR
reply-to-message id="..." body="..." replyAll=true → reply to all
1. create-draft to=["recipient@example.com"] subject="..." body="..."
2. Tell user to review the draft in Mail.app before sending
1. get-message id="..." → read the message to forward
2. forward-message id="..." to=["colleague@company.com"] body="FYI - see below"
1. search-messages isRead=false → find unread
2. For each: get-message, then move-message to appropriate folder