# Apple Mail

Lets your coding agent read, search, draft and send mail through Apple Mail on macOS, without leaving the chat.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 29
- Author: JonathanRReed
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/JonathanRReed/Apple-MCPs/tree/HEAD/applemail-mcp
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/mcp/apple-mail

## What it does

The server runs locally on your Mac and exposes mail tools to the client: search by sender or subject fragment, read conversations, prepare drafts, send. Thread work has its own helpers — `mail_get_thread`, `mail_reply_latest_in_thread`, `mail_archive_thread`. Resolve recipients through Contacts first when you do not have the exact address.

macOS and Python 3.11+ are required, and `uv` has to be installed before `uvx` can pull the package. Safety behaviour comes from `APPLE_MAIL_MCP_SAFETY_PROFILE`: `safe_manage` under `uvx` and `pip`, `full_access` in the Claude Desktop bundles. A blank or invalid value drops the server into `safe_readonly`, so writes stop working. Attachments stay off until `APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT` points at a folder set aside for them.

Nothing keeps the data on your machine by itself. Your client may forward what it gets to its model provider, and Apple apps sync through iCloud or whatever account is signed in. `stdio` is the default transport. Streamable HTTP binds only to `127.0.0.1`, `::1` or `localhost` — there is no remote authentication, so a tunnel or public proxy is off the table. You approve the macOS permissions yourself, in the system prompt or System Settings.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `APPLE_MAIL_MCP_SAFETY_PROFILE`, `APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT`, `APPLE_MAIL_MCP_VISIBLE_DRAFTS` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env APPLE_MAIL_MCP_SAFETY_PROFILE=<APPLE_MAIL_MCP_SAFETY_PROFILE> --env APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT=<APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT> --env APPLE_MAIL_MCP_VISIBLE_DRAFTS=<APPLE_MAIL_MCP_VISIBLE_DRAFTS> --transport stdio applemail-mcp -- uvx apple-mcp-mail
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from apple-mcp-mail <command>

### Codex

**Platform CLI**
```bash
codex mcp add applemail-mcp --env APPLE_MAIL_MCP_SAFETY_PROFILE=<APPLE_MAIL_MCP_SAFETY_PROFILE> --env APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT=<APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT> --env APPLE_MAIL_MCP_VISIBLE_DRAFTS=<APPLE_MAIL_MCP_VISIBLE_DRAFTS> -- uvx apple-mcp-mail
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from apple-mcp-mail <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "applemail-mcp": {
            "command": "uvx",
            "args": [
                "apple-mcp-mail"
            ],
            "env": {
                "APPLE_MAIL_MCP_SAFETY_PROFILE": "<APPLE_MAIL_MCP_SAFETY_PROFILE>",
                "APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT": "<APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT>",
                "APPLE_MAIL_MCP_VISIBLE_DRAFTS": "<APPLE_MAIL_MCP_VISIBLE_DRAFTS>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from apple-mcp-mail <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "applemail-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "apple-mcp-mail"
            ],
            "env": {
                "APPLE_MAIL_MCP_SAFETY_PROFILE": "<APPLE_MAIL_MCP_SAFETY_PROFILE>",
                "APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT": "<APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT>",
                "APPLE_MAIL_MCP_VISIBLE_DRAFTS": "<APPLE_MAIL_MCP_VISIBLE_DRAFTS>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from apple-mcp-mail <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e APPLE_MAIL_MCP_SAFETY_PROFILE=<APPLE_MAIL_MCP_SAFETY_PROFILE> -e APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT=<APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT> -e APPLE_MAIL_MCP_VISIBLE_DRAFTS=<APPLE_MAIL_MCP_VISIBLE_DRAFTS> applemail-mcp uvx apple-mcp-mail
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from apple-mcp-mail <command>

## When to use it
- find a message by sender or a fragment of the subject
- read a whole thread and reply to its latest message
- send from a specific address via `from_account`
- archive a thread once it is handled
- check Mail access without reading any messages

## Example prompts
- Search Apple Mail for messages from the finance team this week
- Open the thread about the contract and reply to the last message
- Send the draft from `work@example.com`

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

From the same set: [jonathanrreed/apple-mcps](https://affpapa.org/en/nevibecode/by/jonathanrreed/apple-mcps.md) — 4 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
