Skip to main content
Glama
Maxtechexplore

mail-macos-mcp

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.

  1. Télécharger le fichier mail-macos.mcpb : 👉 Télécharger la dernière version

  2. Installer 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.mcpb té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.

  3. 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é

tester_acces

Vérifie que Claude peut contrôler Mail (diagnostic, ne touche pas aux mails)

lecture seule

lister_mails

Liste les derniers mails (filtre non lus / expéditeur)

lecture seule

rechercher_mails

Recherche dans les mails récents (sujet, expéditeur, corps en option)

lecture seule

lire_mail

Renvoie le contenu complet d'un mail

lecture seule

lister_comptes

Liste les comptes mail connectés (nom et adresse(s))

lecture seule

creer_brouillon

Crée un brouillon sans l'envoyer (CC, CCI, expéditeur)

non destructif

envoyer_mail

Envoie un mail (CC, CCI, expéditeur ; Claude Desktop demande confirmation)

sortant

repondre_mail

Répond à un mail en reprenant le fil ; brouillon par défaut

non destructif

transferer_mail

Transfère un mail vers un ou plusieurs destinataires ; brouillon par défaut

non destructif

marquer_mail

Marque un mail lu / non lu

réversible

deplacer_mail

Déplace un mail vers un dossier

réversible

corbeille_mail

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_mails et rechercher_mails ne 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 tester

Reconstruire 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 dev

Architecture

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 FR

Le 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 tools
corbeille_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIdentifiant du mail

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It explicitly states the action is recoverable and not permanent deletion, which is a key behavioral trait. It does not cover permissions, idempotency, or effects on existing state, but for a simple move operation this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, immediately states the action, and adds the critical recoverability information. No unnecessary words. Perfectly front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the operation (move to trash with one parameter), the description is mostly complete. It lacks details on return values or error cases, but no output schema exists. A note about idempotency or what happens if mail already in trash would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter 'id' is described in the schema as 'Identifiant du mail'. The description adds no additional meaning beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Déplace un mail vers la Corbeille') and the resource ('mail'). It adds specificity by noting the action is recoverable, distinguishing it from permanent deletion. However, it does not explicitly differentiate from sibling tools like 'deplacer_mail' which moves to other folders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use cases by emphasizing recoverability, suggesting it should be used when deletion should be reversible. It does not explicitly state when not to use it or mention alternatives beyond implying contrast with definitive deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoAdresse(s) en copie (CC), séparées par des virgules
cciNoAdresse(s) en copie cachée (CCI), séparées par des virgules
corpsYesCorps du mail (texte)
sujetYesSujet du mail
expediteurNoAdresse d'envoi (doit correspondre à un compte ; voir lister_comptes). Si absent, compte par défaut
destinataireYesAdresse(s) du/des destinataire(s), séparées par des virgules

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses basic behavior: draft created (not sent), appears in drafts folder, multiple recipients allowed. However, it misses details like authentication needs, error handling, or return value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no wasted words. The first sentence front-loads the core purpose. Every sentence adds essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, no output schema, and no annotations, the description explains the core function (draft creation) and location. But it lacks detail on return values or error cases, leaving some gaps for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters. The description adds minimal extra meaning beyond the schema, such as clarifying multiple recipients with commas, but this is already in the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Crée un brouillon dans Mail SANS l'envoyer', specifying a specific verb and resource. It distinguishes from siblings like 'envoyer_mail' by emphasizing 'SANS l'envoyer'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: use this tool to create a draft without sending. It implies when to use but does not explicitly exclude other scenarios or list alternatives like 'repondre_mail'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIdentifiant du mail
dossierYesNom exact du dossier de destination

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the action is reversible, which is a key behavioral trait. However, it does not mention what happens if the folder doesn’t exist, permissions needed, or other side effects, making it moderately transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with zero wasted words. The key action and constraint are front-loaded, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basic move operation and reversibility, but it does not differentiate from the sibling corbeille_mail (trash) nor explain what constitutes a valid folder or error behavior. Given the simple tool, it is marginally adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both parameters have descriptions). The description adds no new semantic info beyond emphasizing exact folder name, which is already in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Déplace un mail vers un dossier' (verb + resource) and specifies the exact folder name requirement, distinguishing it from sibling tools like corbeille_mail (which likely moves to trash). The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on usage by stating the folder name must be exact as it appears in Mail, and notes the action is reversible. However, it does not explicitly contrast with sibling tools or state when to avoid using this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoAdresse(s) en copie (CC), séparées par des virgules
cciNoAdresse(s) en copie cachée (CCI), séparées par des virgules
corpsYesCorps du mail (texte)
sujetYesSujet du mail
expediteurNoAdresse d'envoi (doit correspondre à un compte ; voir lister_comptes). Si absent, compte par défaut
destinataireYesAdresse(s) du/des destinataire(s), séparées par des virgules

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even without annotations, the description transparently discloses the irreversible, immediate nature of the action: 'action sortante et définitive : le mail part'. This fully informs the agent of the tool's side effect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise two-sentence description with front-loaded key action ('ENVOIE immédiatement') and no unnecessary words. Each sentence serves a purpose: action, usage guidance, and parameter hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple send-email tool with no output schema and well-covered parameters, the description is complete. It covers irrevocability, alternative for draft, multi-recipients, and account requirement for sender. No critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by noting that 'expediteur' must correspond to an account, referencing a related tool 'lister_comptes'. Other parameters are adequately described in the schema, and the description reinforces the comma-separated list for recipients.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends an email immediately, using strong verbs 'ENVOIE immédiatement' and differentiating from the sibling 'creer_brouillon' which prepares a draft. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use only when the user truly wants to send, and provides a direct alternative ('creer_brouillon') for previewing. Also notes that multiple recipients are allowed, separated by commas.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIdentifiant du mail

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that the tool returns full email content but does not disclose whether reading the email changes any state (e.g., marking as read) or any other side effects. This is a non-negligible gap for a read operation, but the core behavior is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the tool's action and includes all essential information: what it does, what fields it returns, and how to obtain the input. There is no waste or redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, no output schema, no nested objects), the description adequately covers the purpose, input source, and returned fields. It lacks error scenarios or output format details, but the complexity is low, so the description is sufficiently complete for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for the 'id' parameter. The tool description adds value beyond the schema by explaining that the id is obtained from lister_mails or rechercher_mails, guiding the agent on how to acquire a valid input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Renvoie') and clearly states the resource ('contenu complet d'un mail') and the fields returned (sender, subject, date, status, body). It distinguishes the tool from siblings like lister_mails and rechercher_mails by specifying that it returns full content from an ID obtained via those tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent that the input ID should come from lister_mails or rechercher_mails, providing clear usage context. It does not include explicit when-not-to-use statements, but the sibling tool names (e.g., envoyer_mail, deplacer_mail) imply alternatives for other actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. It accurately describes the output (name and email addresses) and implies read-only behavior. No side effects or contradictions are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the main action, no redundant information. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter listing tool with no output schema, the description is complete: it specifies what is listed (accounts) and what details (name and email). No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so it provides no meaning. The description adds value by explaining the output and its purpose, compensating for the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists connected email accounts with name and email addresses, using a specific verb ('liste') and resource ('comptes'). It distinguishes from sibling email tools (e.g., lister_mails, envoyer_mail) by focusing on accounts rather than messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says it is useful for knowing which address to use before creating a draft or sending an email, providing clear use context. It does not specify exclusions, but for a simple listing tool, this is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtreNo'tous' ou 'non_lus' (par défaut 'tous')tous
limiteNoNombre maximum de mails à renvoyer (1 à 50, par défaut 10)
expediteurNoFiltre optionnel : ne garde que les mails de cet expéditeur (sous-chaîne)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description mentions it lists latest emails from all combined inboxes and returns IDs for reuse, but does not disclose ordering, rate limits, authentication needs, or any other behavioral traits beyond basic read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main purpose. It is concise and covers key points without unnecessary detail, though the second sentence could be slightly more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (3 optional parameters, no output schema), the description adequately specifies return fields and the reuse of identifiers with other tools. However, it lacks details on ordering and pagination, which slightly reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema_description_coverage is 100%, so baseline is 3. The description repeats parameter info (filter by unread/sender, limit) without adding new meaning beyond what the schema already provides in parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists latest inbox emails with filtering options and specifies return fields (ID, sender, subject, date, status). It distinguishes itself from siblings like 'rechercher_mails' by focusing on browsing recent emails rather than full-text search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for browsing latest emails and filtering by unread/sender, but does not explicitly state when to use this tool vs alternatives like 'rechercher_mails' or provide exclusions. No when-not guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

marquer_mailMarquer lu / non luA

Marque un mail comme lu ou non lu, à partir de son identifiant.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIdentifiant du mail
luYestrue = marquer comme lu, false = marquer comme non lu

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the core behavior (toggle read/unread) but omits any side effects, permissions, or idempotency details. For a simple toggle, this is acceptable but not exemplary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence that efficiently conveys the tool's purpose without unnecessary detail. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity of the tool and the absence of an output schema, the description is adequate. However, it does not specify the return value or confirm success/failure behavior, which would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the input schema already defines both parameters ('id' as mail identifier, 'lu' as boolean flag). The description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: marking an email as read or unread using its identifier. It uses a specific verb+resource combination and distinguishes the tool from siblings like 'lire_mail' (reading) and 'corbeille_mail' (trashing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., moving, deleting, or sending). There is no mention of prerequisites or exclusion criteria, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
limiteNoNombre maximum de résultats (1 à 50, par défaut 10)
mot_cleYesMot-clé à rechercher
expediteurNoFiltre optionnel sur l'expéditeur (sous-chaîne)
depuis_joursNoNe garder que les mails reçus depuis ce nombre de jours
inclure_corpsNoRechercher aussi dans le corps du mail (plus lent). Défaut : false

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the scope (400 most recent), search fields (subject, sender, body optionally), and performance consideration (slower with body). Missing details on result format or sorting, but sufficient for a search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with core purpose. Every sentence adds value: scope, search targets, conditional body search, optional filters. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers core behavior and all parameters. It could mention what the results contain (e.g., subject, sender, date), but for a search tool, the description is sufficiently complete for an agent to use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds meaning: 'mot_cle' is searched in subject/sender, 'expediteur' is a substring filter, 'depuis_jours' filters by recency, 'inclure_corps' makes it slower. This goes beyond schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches recent inbox emails by keyword in subject and sender, with optional body search and filters. This distinguishes it from sibling tools like 'lister_mails' which lists all mails without search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use: to search emails by keyword with optional filters. It does not explicitly state when not to use or provide alternatives, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoAdresse(s) en copie (CC)
idYesIdentifiant du mail auquel répondre
cciNoAdresse(s) en copie cachée (CCI)
corpsYesTexte de la réponse (ajouté au-dessus du message cité)
envoyerNotrue = envoyer ; false = créer un brouillon (défaut)
expediteurNoAdresse d'envoi (voir lister_comptes). Si absent, Mail choisit le compte du mail d'origine
repondre_a_tousNoRépondre à tous les destinataires. Défaut : false

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses key behaviors: default draft creation (envoyer=false), inclusion of original thread/recipient/subject, and the effect of repondre_a_tous. It does not mention return values, error handling, or authorization needs, but covers the primary behavioral traits well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two front-loaded sentences. The first sentence states the core function, and the second clarifies the default behavior and the a_tous option. No unnecessary words, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no output schema) and 100% schema coverage, the description is reasonably complete. It covers the main use case, default behavior, and the optional a_tous. It lacks explicit mention of return values or error conditions, but for a reply tool this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds limited value over the schema. It echoes the repondre_a_tous parameter's effect and the envoyer default, but does not provide additional semantic meaning beyond what the schema already explains. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: replying to an email by its ID, with specific behaviors like copying the thread, recipient, and subject with 'Re:'. It distinguishes itself from sibling tools like creer_brouillon (creating a fresh draft) or transferer_mail (forwarding), as it explicitly handles replying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for replying to an existing email, mentioning the default draft creation and the option to send directly. However, it does not explicitly state when to use this tool versus alternatives like creer_brouillon or envoyer_mail, nor does it mention prerequisites or constraints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description fully discloses that the tool is non-destructive ('sans toucher aux messages' – touches no messages) and confirms it is a safe access check. This gives complete behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no waste. The first sentence states purpose and key safety property; the second provides usage guidance and output interpretation. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple test tool with no parameters and no output schema, the description is complete: it explains purpose, behavior, result interpretation, and context within the sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so description adds no param info beyond schema. Baseline of 4 is appropriate given 100% schema coverage and zero parameters; the description provides context for the tool's function.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool tests whether Claude can control the Mail app, emphasizing no message interaction. This distinguishes it from sibling tools that perform actual mail operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates use in case of problems and explains how to interpret the response (success means access OK, error indicates next steps). It does not explicitly list when to avoid using it or alternative tools, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoAdresse(s) en copie (CC), séparées par des virgules
idYesIdentifiant du mail à transférer
cciNoAdresse(s) en copie cachée (CCI), séparées par des virgules
corpsNoTexte à ajouter avant le message transféré (optionnel)
envoyerNotrue = envoyer ; false = créer un brouillon (défaut)
expediteurNoAdresse d'envoi (voir lister_comptes). Si absent, Mail choisit le compte par défaut
destinataireYesAdresse(s) du/des destinataire(s), séparées par des virgules

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses draft-by-default, sending behavior, and that it adds header/content. Side effects are minimal and implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. Front-loaded with verb and object: 'Transfère un mail...'. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters (2 required) and no output schema, the description provides essential behavior and parameter context. Could mention result/return but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 7 parameters with descriptions. The description adds value by noting default for 'envoyer' and optional 'expediteur', going beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool transfers a mail to recipients, adding headers and original content. It distinguishes from siblings like 'repondre_mail' (reply) and 'envoyer_mail' (send).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains default draft behavior and the optional 'envoyer' parameter to send directly. It references 'lister_comptes' for sender but doesn't explicitly differentiate from siblings in when to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.1/5.0
Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

12 tools is well-scoped for a mail client MCP, covering essential operations without being overwhelming. Each tool serves a specific need.

Completeness4/5

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

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables Claude to interact with email accounts via IMAP and SMTP, providing tools for searching, reading, sending, and managing emails across multiple providers.
    40
    604
    90
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude to read, search, draft, send, flag, and move email across multiple IMAP/SMTP mailboxes while keeping credentials local.
  • A
    license
    B
    quality
    A
    maintenance
    Enables Claude to interact with Apple apps on macOS including Mail, Calendar, Contacts, Reminders, Notes, and iCloud Drive for personal productivity tasks like triaging email, managing calendar, and cross-app context.
    76
    6
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Maxtechexplore/mail-macos-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server