Skip to main content
Glama
jakobfigur

Apple Mail MCP

by jakobfigur

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
APPLE_MAIL_MCP_DRY_RUNNoSet to true to validate sends but prevent delivery.
APPLE_MAIL_MCP_AUDIT_LOGNoLocal path for write-action audit metadata. Defaults to ~/.apple-mail-mcp/audit.jsonl.~/.apple-mail-mcp/audit.jsonl
APPLE_MAIL_MCP_DATA_STORENoLocal path for the approval inbox and relationship context JSON store. Defaults to ~/.apple-mail-mcp/data.json.~/.apple-mail-mcp/data.json
APPLE_MAIL_MCP_SENDING_WINDOWNoLocal time window during which sending is allowed, for example 09:00-18:00.
APPLE_MAIL_MCP_ALLOWED_SENDERSNoComma-separated allowlist of configured Apple Mail addresses to allow sending from.
APPLE_MAIL_MCP_ALLOWED_RECIPIENTSNoRecipient restrictions for sending.
APPLE_MAIL_MCP_ALLOWED_RECIPIENT_DOMAINSNoRecipient domain restrictions for sending.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_accountsA

List Apple Mail accounts and their configured sender addresses. Read-only.

list_mailboxesA

List the top-level mailboxes in one Apple Mail account. Read-only.

list_messagesB

List message summaries from an Apple Mail mailbox. Read-only; bodies are not included.

search_messagesA

Search recent messages by subject or sender in one mailbox. Read-only; bodies are not searched.

get_messageA

Read one message body by its id. Use after list_messages or search_messages. Read-only.

create_draftA

Create a visible unsent draft in Apple Mail. Use this before sending whenever the user should review the message.

send_emailA

Send an email using Apple Mail. Only call after the user explicitly approved this exact recipient, subject, and body.

create_reply_draftA

Open a visible reply draft for an existing message. The original message controls the recipient and subject. This does not send anything.

set_message_read_statusA

Mark a message read or unread. Only call after the user explicitly approved this exact action.

set_message_flag_statusA

Flag or unflag a message. Only call after the user explicitly approved this exact action.

move_messageA

Move a message to another mailbox in the same account. Only call after the user explicitly approved this exact action.

get_audit_logA

Read recent local audit metadata for write actions. Email bodies are never stored in this log.

get_send_policyA

Show the active local sending safeguards without exposing credentials. Read-only.

preview_sendA

Validate a proposed email against the active local send policy without creating or sending anything. Read-only.

queue_email_for_approvalA

Save a proposed email in the local approval inbox. It does not create a Mail draft or send anything.

list_approval_queueB

List proposed emails in the local approval inbox. Read-only.

approve_queued_emailA

Turn one pending approval-queue item into a visible draft or send it. Only call after the user explicitly approved this exact item and delivery mode.

discard_queued_emailA

Discard one pending approval-queue item. It will not affect Apple Mail. Only call after explicit user approval.

save_contact_contextB

Save local relationship context for one contact. This does not modify Apple Mail or contact the person.

get_contact_contextB

Read the local relationship context for one email address. Read-only.

get_contact_briefB

Build a local contact brief from saved relationship context and recent inbox summaries. Read-only; message bodies are excluded.

list_follow_up_radarA

List local contact records with a follow-up date due now or within a chosen horizon. Read-only; it never sends anything.

get_work_modeA

Show the active local AI-mail work mode and its allowed MCP actions. Read-only.

set_work_modeA

Set the local AI-mail work mode. The mode controls whether this MCP may queue, draft, or send. This does not change Apple Mail.

save_thread_summaryB

Save a local, user-approved summary of a selected contact thread, including the exact source message ids used. It does not modify Apple Mail.

get_daily_briefingB

Create a read-only daily briefing from one inbox, the local approval queue, and saved follow-up dates. It never drafts, sends, or changes email.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 26 tools

Disambiguation4/5

Most tools target clearly distinct resources, and descriptions add explicit ordering hints (e.g. 'use after list_messages'). However, the send path is crowded—create_draft, create_reply_draft, queue_email_for_approval, approve_queued_email, preview_send, and send_email all overlap enough that an agent could pick the wrong one without careful reading.

Naming Consistency5/5

Every tool follows a clean verb_noun snake_case pattern (list_messages, create_draft, set_message_read_status, get_audit_log, queue_email_for_approval). No mixing of conventions or vague single-word verbs.

Tool Count3/5

At 26 tools this sits at the heavy end, spanning mail actions, an approval queue, contact context, audit, and work modes. Each tool is scoped, but the count is large for a single mail server and risks cognitive overhead.

Completeness4/5

Strong lifecycle coverage: messages can be listed, searched, read, moved, flagged, and marked read; drafts/send/reply exist; the approval queue has full queue/list/approve/discard support; contacts and work modes are covered. Minor gaps remain (no message delete/archive, no mailbox creation or attachment handling).

Maintenance

ActivityMaintained
ResponsivenessNo issues