mail-macos-mcp
This server allows Claude Desktop to control the macOS Mail application via AppleScript automation, enabling you to read, search, compose, send, and organize emails.
List accounts — View all configured mail accounts (names and addresses) to choose which to send from.
List emails — Browse recent emails with optional filters for unread status or sender; returns ID, sender, subject, date, and read status.
Search emails — Search up to 400 recent emails by keyword (subject, sender, or optionally body), with filters for sender and date range.
Read email — Retrieve the full content of a specific email by ID.
Create draft — Compose a new draft (with CC, BCC, custom sender) saved to Drafts without sending.
Send email — Immediately send an email to one or more recipients (with CC, BCC, sender options).
Reply to email — Reply to an existing email (preserving thread), with reply-all support and choice to draft or send directly.
Forward email — Forward an email to new recipients with an optional added message, as a draft or sent directly.
Mark as read/unread — Toggle the read/unread status of any email.
Move email — Transfer an email to a specified folder by name.
Trash email — Move an email to Trash (recoverable; no permanent deletion).
Safety note: No permanent deletion is possible; destructive actions (sending, trashing) are explicit or reversible.
Allows controlling the macOS Mail app to read, search, compose drafts, send, and manage emails.
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., "@mail-macos-mcp Show me my unread emails from today"
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.
Mail macOS — MCP pour Claude Desktop
Un serveur MCP qui permet à Claude de piloter l'app Mail de macOS : lire, rechercher, préparer des brouillons, envoyer et gérer ses mails — directement depuis Claude Desktop, y compris dans des routines et des agents.
Fonctionne uniquement sur macOS (utilise l'app Mail intégrée).
📥 Installation (pour l'utilisateur)
Aucune compétence technique requise, pas de terminal, pas de Node à installer.
Télécharger le fichier
mail-macos.mcpb: 👉 Télécharger la dernière versionInstaller dans Claude Desktop :
D'abord, mettre Claude Desktop à jour (dernière version requise).
Aller dans Réglages → Extensions
Cliquer « Advanced settings » / Paramètres avancés
Dans la section « Extension Developer », cliquer « Install Extension… »
Sélectionner le fichier
mail-macos.mcpbtéléchargéUn avertissement « développeur non vérifié » peut s'afficher : c'est normal (l'extension n'est pas signée par un éditeur commercial). Cliquer Installer quand même.
Le glisser-déposer fonctionne surtout pour les extensions du répertoire officiel d'Anthropic ; pour ce bundle privé, utiliser le bouton « Install Extension… » via les paramètres avancés.
Autoriser l'accès à Mail : Au premier usage, macOS demande : « Claude souhaite contrôler Mail ». Cliquer Autoriser. (Sinon : Réglages Système → Confidentialité et sécurité → Automatisation → activer Mail pour Claude.)
C'est prêt. 🎉
Related MCP server: IMAP MCP Server
💬 Exemples d'utilisation
Une fois installé, on parle simplement à Claude :
« Liste mes 5 derniers mails non lus »
« Cherche les mails de Clément des 7 derniers jours »
« Ouvre le mail [id] et résume-le »
« Prépare un brouillon de réponse à ce mail » (le brouillon reste dans Mail, rien n'est envoyé sans validation)
« Marque ce mail comme lu »
« Mets ce mail à la corbeille »
🧰 Outils fournis
Outil | Description | Sécurité |
| Vérifie que Claude peut contrôler Mail (diagnostic, ne touche pas aux mails) | lecture seule |
| Liste les derniers mails (filtre non lus / expéditeur) | lecture seule |
| Recherche dans les mails récents (sujet, expéditeur, corps en option) | lecture seule |
| Renvoie le contenu complet d'un mail | lecture seule |
| Liste les comptes mail connectés (nom et adresse(s)) | lecture seule |
| Crée un brouillon sans l'envoyer (CC, CCI, expéditeur) | non destructif |
| Envoie un mail (CC, CCI, expéditeur ; Claude Desktop demande confirmation) | sortant |
| Répond à un mail en reprenant le fil ; brouillon par défaut | non destructif |
| Transfère un mail vers un ou plusieurs destinataires ; brouillon par défaut | non destructif |
| Marque un mail lu / non lu | réversible |
| Déplace un mail vers un dossier | réversible |
| Met un mail à la Corbeille (récupérable) | récupérable |
Aucune suppression définitive : le pire cas possible est un mail envoyé ou un mail en corbeille (récupérable depuis Mail).
Multi-comptes
lister_comptes renvoie tous les comptes configurés dans l'app Mail, avec leur nom
et leurs adresses email. Tous les outils de rédaction (creer_brouillon,
envoyer_mail, repondre_mail, transferer_mail) acceptent un paramètre
optionnel expediteur : si tu passes une adresse qui correspond à un compte
connecté, Mail utilisera ce compte pour envoyer. Si le paramètre est absent, Mail
utilise le compte par défaut (ou le compte du mail d'origine pour les réponses).
Utilise d'abord lister_comptes pour connaître les adresses disponibles, puis
précise expediteur si tu veux choisir le compte d'envoi.
🆘 En cas de blocage (Mail qui rame ou se fige)
Sur un gros compte pro synchronisé serveur (IMAP/Exchange), Mail peut être lent à répondre aux requêtes. Le MCP est conçu pour rester sûr dans ce cas :
Demande « Teste l'accès à Mail » (outil
tester_acces) : c'est l'appel le plus léger. S'il répond, l'autorisation et l'accès sont bons ; le souci vient du volume.Le MCP a un délai max (20 s par défaut) : si Mail ne répond pas à temps, tu reçois un message clair au lieu d'un blocage. Réessaie quelques secondes plus tard (Mail finit souvent de se synchroniser).
Les lectures sont bornées aux mails récents :
lister_mailsetrechercher_mailsne parcourent qu'une fenêtre récente de la boîte de réception, jamais toute la boîte.Si Mail était figé : le quitter et le rouvrir, le laisser finir sa synchro, puis réessayer.
Pour allonger le délai (réseau lent) : variable d'environnement
MAIL_MCP_TIMEOUT_MS(en millisecondes).
🔧 Développement (pour reconstruire le bundle)
Prérequis : Node.js ≥ 18.
npm install # installe les dépendances
npm run build # compile TypeScript -> dist/
npm start # lance le serveur (transport stdio) pour testerReconstruire le bundle .mcpb :
npm run build
npm prune --omit=dev # ne garder que les deps runtime
npx @anthropic-ai/mcpb pack . mail-macos.mcpb # produit le .mcpb
npm install # restaurer les deps de devArchitecture
src/
index.ts # serveur MCP : déclare les 11 outils (validation via zod)
mail.ts # logique métier : construit les scripts AppleScript
applescript.ts # exécution osascript + parsing + messages d'erreur FRLe pilotage de Mail passe par AppleScript (via osascript), l'API
d'automatisation standard de macOS. Aucune adresse ni compte n'est codé en dur :
le MCP agit sur la boîte de réception unifiée de l'app Mail de la machine.
Licence
MIT
Available Tools
12 toolscorbeille_mailMettre à la corbeilleA
Déplace un mail vers la Corbeille. Action récupérable (pas de suppression définitive) : le mail peut être restauré depuis la Corbeille de Mail.
Inputs: id (required).
creer_brouillonCréer un brouillonA
Crée un brouillon dans Mail SANS l'envoyer. Le brouillon apparaît dans le dossier Brouillons où l'utilisateur peut le relire et l'envoyer manuellement. Plusieurs destinataires possibles en les séparant par des virgules.
Inputs: corps (required), sujet (required), destinataire (required), cc, +2 more.
deplacer_mailDéplacer un mailA
Déplace un mail vers un dossier (boîte aux lettres) en indiquant le nom exact du dossier tel qu'il apparaît dans Mail. Action réversible.
Inputs: id (required), dossier (required).
envoyer_mailEnvoyer un mailA
ENVOIE immédiatement un mail (action sortante et définitive : le mail part). À n'utiliser que si l'utilisateur veut réellement envoyer. Pour préparer un mail à relire avant envoi, utilise plutôt creer_brouillon. Plusieurs destinataires possibles en les séparant par des virgules.
Inputs: corps (required), sujet (required), destinataire (required), cc, +2 more.
lire_mailLire un mailA
Renvoie le contenu complet d'un mail (expéditeur, sujet, date, statut et corps) à partir de son identifiant obtenu via lister_mails ou rechercher_mails.
Inputs: id (required).
lister_comptesLister les comptesA
Liste les comptes mail connectés à l'app Mail (nom et adresse(s) email). Utile pour savoir depuis quelle adresse écrire avant de créer un brouillon ou d'envoyer.
Inputs: no named parameters.
lister_mailsLister les mailsA
Liste les derniers mails de la boîte de réception (tous comptes confondus). Permet de filtrer sur les non lus et/ou un expéditeur. Renvoie pour chaque mail son identifiant (à réutiliser avec les autres outils), l'expéditeur, le sujet, la date et le statut lu/non lu.
Inputs: filtre, limite, expediteur.
marquer_mailMarquer lu / non luA
Marque un mail comme lu ou non lu, à partir de son identifiant.
Inputs: id (required), lu (required).
rechercher_mailsRechercher des mailsA
Recherche dans les mails récents de la boîte de réception (jusqu'aux 400 plus récents). Cherche le mot-clé dans le sujet et l'expéditeur, et dans le corps si 'inclure_corps' est activé (plus lent). Filtres optionnels par expéditeur et par ancienneté (depuis_jours).
Inputs: mot_cle (required), limite, expediteur, depuis_jours, +1 more.
repondre_mailRépondre à un mailA
Répond à un mail (par son identifiant) en reprenant le fil, le destinataire et l'objet « Re: ». Crée un BROUILLON par défaut (envoyer=false) ; mettre envoyer=true pour envoyer directement. repondre_a_tous inclut tous les destinataires d'origine.
Inputs: id (required), corps (required), cc, cci, +3 more.
tester_accesTester l'accès à MailA
Vérifie rapidement que Claude peut contrôler l'app Mail, sans toucher aux messages. Utile en cas de problème : si cet outil répond, l'autorisation et l'accès sont OK ; sinon le message d'erreur indique quoi faire.
Inputs: no named parameters.
transferer_mailTransférer un mailA
Transfère un mail (par son identifiant) vers un ou plusieurs destinataires, en ajoutant l'en-tête « Message transféré » et le contenu d'origine. Crée un BROUILLON par défaut (envoyer=false) ; mettre envoyer=true pour envoyer directement.
Inputs: id (required), destinataire (required), cc, cci, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose: create draft, send, reply, forward, move, trash, read, list, search, mark, list accounts, test access. No two tools overlap in functionality.
Most tools follow a consistent verb_noun pattern in French (e.g., 'creer_brouillon', 'envoyer_mail'). The exception is 'corbeille_mail', which uses a noun instead of a verb, but it is still clear.
12 tools is well-scoped for a mail client MCP, covering essential operations without being overwhelming. Each tool serves a specific need.
The tool set covers core email workflows (read, send, reply, forward, trash, move, search, mark). Minor gaps exist, such as the absence of folder management (create/rename/delete) and permanent deletion.
Maintenance
Related MCP Connectors
Connect any IMAP/SMTP mailbox to Claude & ChatGPT: search, read, sort, draft. Sends only with OK.
Connect any mailbox to Claude, ChatGPT & AI: read, send, reply, schedule & search emails.
Search connected email, read and manage messages, draft and send, and manage rules for new mail.
Your mailboxes in ChatGPT and Claude: Gmail, iCloud, Fastmail, any IMAP. Passwords stay yours.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables seamless email management through natural language conversations with Claude. Supports searching, reading, and sending emails securely with Gmail and other email providers.4MIT
- AlicenseAqualityAmaintenanceEnables Claude to interact with email accounts via IMAP and SMTP, providing tools for searching, reading, sending, and managing emails across multiple providers.401,044 npm127MIT
- AlicenseAqualityBmaintenanceLets Claude Desktop read any IMAP mailbox and send emails via SMTP, with support for multiple mailboxes and locally stored credentials.1327 npmMIT
- AlicenseAqualityBmaintenanceConnects Claude to Apple Mail on macOS, enabling instant full-text search across all mail accounts, safe reading of messages and attachments, and reversible drafting, filing, and mailbox management.301MIT