mcp-for-apple-mail
Provides tools for interacting with Apple Mail on macOS via AppleScript, enabling searching messages, listing mailboxes, saving PDF attachments, reading message bodies, and flagging messages.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-for-apple-mail find the hosting invoice PDF from last month and save it to my Downloads folder"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-for-apple-mail
Ein kleiner MCP-Server (Model Context Protocol), der Apple Mail auf dem Mac per AppleScript kapselt. Er hilft, Rechnungs-PDFs aus dem Posteingang zu finden und gezielt abzulegen, ohne Zugangsdaten zu hinterlegen: Apple Mail hat eine vollständige AppleScript-Schnittstelle und die Konten sind bereits eingerichtet.
Was ist ein MCP-Server?
MCP (Model Context Protocol) ist ein offener Standard, über den KI-Anwendungen (der Host, etwa Claude Desktop oder Claude Code) mit externen Werkzeugen und Daten sprechen. Ein Server stellt Fähigkeiten bereit und weiß selbst nichts von KI. Drei Arten:
Tools — Aktionen, die das Modell aufrufen kann (hier: suchen, speichern).
Resources — Daten zum Lesen (hier nicht genutzt).
Prompts — Vorlagen (hier nicht genutzt).
Kommunikation läuft über JSON-RPC 2.0, hier per stdio (lokaler Prozess).
Related MCP server: apple-mail-mcp
Tools
Tool | Zweck |
| Alle Konten und Mailboxen als |
| Nach Absender-Stichworten und/oder nur geflaggten Nachrichten im Zeitfenster suchen, mit Anhangnamen und Flaggen-Markierung (⚑) |
| Ersten passenden PDF-Anhang (Name enthält Schlüssel, endet auf .pdf) speichern |
| Klartext-Inhalt der ersten passenden Nachricht lesen (für Belege ohne PDF) |
| Fahne an genau einer Nachricht setzen/entfernen, optional mit Farbe; bei mehrdeutigem Schlüssel passiert nichts |
Installation
npm installKein Build-Schritt: reines ESM-JavaScript, läuft direkt mit Node (>= 18).
Konfiguration
Die zu durchsuchenden Mailboxen stehen in einer lokalen config.json, die
nicht eingecheckt wird (in .gitignore). Vorlage kopieren und die eigenen
Konten eintragen:
cp config.example.json config.jsonFormat je Eintrag <Konto>:<Mailbox>. Die exakten Namen liefert das Tool
list_mailboxes. Fehlt die config.json, greifen generische Platzhalter.
Alternativ übergibt der Aufrufer die Mailboxen je Tool direkt im
mailboxes-Parameter.
Lokal testen
Mit dem MCP Inspector zum Durchklicken der Tools:
npm run inspectOder direkt starten (wartet dann auf JSON-RPC über stdin):
npm startBeim ersten echten Lauf fragt macOS nach Automatisierungs-Zugriff auf Mail. Einmal erlauben.
In Claude Code registrieren
claude mcp add apple-mail -- node /absolute/path/to/mcp-for-apple-mail/src/index.jsIn Claude Desktop registrieren
In ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"apple-mail": {
"command": "node",
"args": ["/absolute/path/to/mcp-for-apple-mail/src/index.js"]
}
}
}Beispielablauf
list_mailboxes, um die exakten Konto- und Mailboxnamen zu sehen.search_messagesmitvendors: ["hosting", "software-vendor"]undfromDate: "2026-04-01", um zu sehen, welche Rechnungen als PDF vorliegen (Treffer zeigen die Anhangnamen inATT{...}).Pro Treffer
save_attachmentmitsubjKey,attKeyunddestPath, z. B. nach dem SchemaYYYY-MM/YYYY-MM-DD <Anbieter> <Beleg>.pdf.
Grenzen
Nur macOS mit Apple Mail.
Anbieter mit reinem Portal liefern per Mail kein PDF und müssen weiter manuell geladen werden.
Steht die Rechnungsnummer nur im Anhang, nicht im Betreff, erst mit
search_messagesprüfen, wo der Schlüssel steht.
Lizenz
MIT
Available Tools
5 toolsflag_messageNachricht flaggenA
Setzt oder entfernt die Fahne an GENAU EINER Nachricht, optional mit Farbe (flagIndex 0-6: rot, orange, gelb, grün, blau, lila, grau). Passt der Schlüssel auf mehrere Nachrichten, wird nichts geändert und die Mehrdeutigkeit gemeldet (Schlüssel verengen). Praktisch, um eine verarbeitete Rechnung zu markieren. Mindestens subjKey oder senderKey angeben. Verändert die Nachricht.
Inputs: flagged, subjKey, flagIndex, mailboxes, +1 more.
get_message_bodyMailtext lesenA
Liefert den Klartext-Inhalt der ersten passenden Nachricht samt Kopf (From, Subject, Date). Für Belege, die nur im Mailtext stehen und kein PDF anhängen. Mindestens subjKey oder senderKey angeben.
Inputs: subjKey, maxChars, mailboxes, senderKey.
list_mailboxesMailboxen auflistenA
Listet alle Apple-Mail-Konten und Mailboxen als ":"-Zeilen. Damit findet man die exakten Namen für den mailboxes-Parameter der anderen Tools.
Inputs: no named parameters.
save_attachmentAnhang speichernA
Speichert den ersten passenden PDF-Anhang einer über den Betreff gefundenen Nachricht. Ein Anhang passt nur, wenn sein Name attKey enthält und auf .pdf endet (sortiert AGB, Werbe-PDFs, XML und Bilder aus). Der Zielordner wird angelegt.
Inputs: attKey (required), subjKey (required), destPath (required), mailboxes.
search_messagesNachrichten suchenA
Sucht Nachrichten in einem Zeitfenster und listet Treffer samt Anhangnamen (ATT{...}) und Flaggen-Markierung (⚑). So sieht man sofort, was als PDF vorliegt. Filtert nach Absender-Stichworten und/oder nur geflaggten Nachrichten; ohne einen der beiden Filter käme alles zurück. Dedupliziert über die message id.
Inputs: fromDate (required), days, vendors, mailboxes, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Most tools are clearly distinct in purpose: save_attachment extracts files, get_message_body reads text, flag_message toggles flags, list_mailboxes enumerates folders, search_messages queries. The main potential confusion is between get_message_body and save_attachment since both target 'the first matching message' and both depend on subjKey/senderKey, but their outputs differ enough that overlap is limited.
All names follow a verb_noun snake_case convention (save_attachment, get_message_body, flag_message, list_mailboxes, search_messages), which is fairly consistent. The verbs vary in tone (save, get, flag, list, search) without a strong single pattern, but overall the naming is readable and predictable.
Five tools is on the smaller side but appropriate for a narrowly-scoped mail-processing server aimed at handling invoices/attachments. Each tool serves a distinct, useful purpose and the count feels justified for the stated domain rather than overly thin.
The tools cover the core workflow of finding messages, reading bodies, extracting attachments, and flagging, which is reasonable. However, there are notable gaps: no way to move messages between mailboxes, delete messages, search by content within attachments beyond the first PDF, or handle multiple-attachment messages. The set is oriented around a narrow 'process invoices/receipts' workflow rather than general mail management.
Maintenance
Related MCP Connectors
Your IMAP mailbox as an MCP server: read, search and (if you allow it) organize mail. Open source.
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Email inboxes for AI agents: send, receive, reply, search, and manage threaded email over MCP.
Hosted email MCP for your own Gmail, Outlook.com, Microsoft 365, iCloud or IMAP inbox: read, search, draft, reply in thread, forward and file mail. It moves or flags up to 500 messages in one call, and a send leaves exactly one copy in Sent. A calendar is a separate connection, and connecting one adds diary and scheduling tools.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server that gives Claude and other MCP hosts full access to Mail.app on macOS — search, read, send, reply, flag, move, and more across all accounts configured in Mail.app.2470 npm1MIT
- AlicenseAqualityAmaintenanceThis MCP server allows AI assistants to read, send, search, and manage emails in Apple Mail on macOS. It uses AppleScript to interact with the Mail app locally.533,339 npm111MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI assistants comprehensive access to Apple Mail accounts, enabling email discovery, reading, flag management, and server-side message retrieval.MIT
- AlicenseBqualityBmaintenanceAn MCP server that gives AI assistants full access to Apple Mail -- read, search, compose, organize, and analyze emails via natural language.38MIT