Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Apple Mail MCP

NPM · @JAKOBF1/APPLE-MAIL-MCP

Privacy-first local MCP for Apple Mail on macOS: inbox context, drafts, approvals, and follow-ups.

+29 this week 67 Trust /100

Last scanned (4 hours ago)

Scores higher than 38% of npm servers

Category Communication

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 11 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability70
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 1901 tokens (~73/item across 26 items; 26 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage86
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 59% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "send_email" implies "send" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 26 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 14 Oct 26 +28
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 59 functional
    • First check of Destructive annotations: 0 functional
    • First check of Schema quality: pass functional
    • First check of Schema quality: good functional
  • 12 Oct 26 +1
    • Security disclosure: unverified → pass ▲ functional
  • 11 Oct 26 −1
    • Security disclosure: pass → unverified ▼ functional
  • 7 Oct 26 39

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 18 Oct 2026 · Analysed npm/@jakobf1/apple-mail-mcp@0.6.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 93 packages
Packages resolved 93
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 26 exposed · ~1,901 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
approve_queued_email ~88

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.

NameTypeReqDescription
deliverystringyesCreate a visible draft or send the approved item.
item_idstringyes–
user_approvedbooleanyesMust be true only after the user explicitly approved this exact queue item and delivery mode.

No output schema declared.

No examples provided.

create_draft ~75

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

NameTypeReqDescription
fromstring–Configured Apple Mail sender address, if a specific one is required.
subjectstringyes–
textstringyes–
tostringyesRecipient email address.

No output schema declared.

No examples provided.

create_reply_draft ~94

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

NameTypeReqDescription
accountstringyesApple Mail account name.
mailboxstring–Mailbox containing the original message.
message_idstringyesMessage id returned by list_messages or search_messages.
textstringyesReply text to place above Apple Mail's quoted original message.

No output schema declared.

No examples provided.

discard_queued_email ~50

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

NameTypeReqDescription
item_idstringyes–
user_approvedbooleanyes–

No output schema declared.

No examples provided.

get_audit_log ~41

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

NameTypeReqDescription
limitinteger–Maximum recent audit entries to return.

No output schema declared.

No examples provided.

get_contact_brief ~60

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

NameTypeReqDescription
accountstringyes–
emailstringyes–
limitinteger––
mailboxstring––

No output schema declared.

No examples provided.

get_contact_context ~29

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

NameTypeReqDescription
emailstringyes–

No output schema declared.

No examples provided.

get_daily_briefing ~77

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.

NameTypeReqDescription
accountstringyesApple Mail account name.
follow_up_daysinteger––
mailboxstring––
unread_limitinteger––

No output schema declared.

No examples provided.

get_message ~82

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

NameTypeReqDescription
accountstringyesApple Mail account name.
mailboxstring–Mailbox containing the message.
max_body_charactersinteger–Maximum body characters to return.
message_idstringyesMessage id returned by list_messages or search_messages.

No output schema declared.

No examples provided.

get_send_policy ~22

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_work_mode ~26

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_accounts ~21

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_approval_queue ~36

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

NameTypeReqDescription
limitinteger––
statusstring––

No output schema declared.

No examples provided.

list_follow_up_radar ~44

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

NameTypeReqDescription
within_daysinteger––

No output schema declared.

No examples provided.

list_mailboxes ~41

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

NameTypeReqDescription
accountstringyesApple Mail account name, as returned by list_accounts.

No output schema declared.

No examples provided.

list_messages ~75

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

NameTypeReqDescription
accountstringyesApple Mail account name.
limitinteger–Maximum number of messages to return.
mailboxstring–Mailbox name. Usually INBOX.
unread_onlyboolean–Return only unread messages.

No output schema declared.

No examples provided.

move_message ~110

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

NameTypeReqDescription
accountstringyesApple Mail account name.
destination_mailboxstringyesDestination mailbox name, as returned by list_mailboxes.
mailboxstring–Mailbox containing the message.
message_idstringyesMessage id returned by list_messages or search_messages.
user_approvedbooleanyesMust be true only after the user explicitly approved this exact action.

No output schema declared.

No examples provided.

preview_send ~55

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

NameTypeReqDescription
fromstring––
subjectstringyes–
textstringyes–
tostringyes–

No output schema declared.

No examples provided.

queue_email_for_approval ~157

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

NameTypeReqDescription
fromstring––
intentstring–Desired outcome, such as booking a discovery call or resolving a support request.
notestring–Optional human-facing note.
rationalestring–Why this action and timing are appropriate, grounded in known context.
risksarray–Known uncertainties or reasons to review carefully.
source_message_idsarray–Message ids used as evidence for the proposal.
subjectstringyes–
textstringyes–
tostringyes–
tonestring–Proposed tone, such as concise and collaborative.

No output schema declared.

No examples provided.

save_contact_context ~163

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

NameTypeReqDescription
display_namestring––
emailstringyes–
follow_up_atstring–ISO-8601 date/time for a human-approved follow-up reminder.
notesarray––
open_commitmentsarray––
preferred_languagestring––
relationshipstring–For example: prospect, client, partner, or colleague.
timeline_directionstring––
timeline_summarystring––
tonestring–For example: concise and direct, or warm and detailed.
user_approvedbooleanyesMust be true only after the user approved saving this local contact context.

No output schema declared.

No examples provided.

save_thread_summary ~82

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

NameTypeReqDescription
emailstringyes–
source_message_idsarrayyes–
summarystringyes–
user_approvedbooleanyesMust be true only after the user approved saving this local thread summary.

No output schema declared.

No examples provided.

search_messages ~98

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

NameTypeReqDescription
accountstringyesApple Mail account name.
limitinteger–Maximum number of messages to return.
mailboxstring–Mailbox name. Usually INBOX.
querystringyesCase-insensitive text to match against sender or subject.
scan_limitinteger–How many recent messages Apple Mail may inspect.

No output schema declared.

No examples provided.

send_email ~96

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

NameTypeReqDescription
fromstring–Configured Apple Mail sender address, if a specific one is required.
subjectstringyes–
textstringyes–
tostringyesRecipient email address.
user_approvedbooleanyesMust be true only after the user explicitly approved this exact email.

No output schema declared.

No examples provided.

set_message_flag_status ~107

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

NameTypeReqDescription
accountstringyesApple Mail account name.
is_flaggedbooleanyesTrue to flag; false to remove the flag.
mailboxstring–Mailbox containing the message.
message_idstringyesMessage id returned by list_messages or search_messages.
user_approvedbooleanyesMust be true only after the user explicitly approved this exact action.

No output schema declared.

No examples provided.

set_message_read_status ~106

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

NameTypeReqDescription
accountstringyesApple Mail account name.
is_readbooleanyesTrue to mark read; false to mark unread.
mailboxstring–Mailbox containing the message.
message_idstringyesMessage id returned by list_messages or search_messages.
user_approvedbooleanyesMust be true only after the user explicitly approved this exact action.

No output schema declared.

No examples provided.

set_work_mode ~66

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

NameTypeReqDescription
modestringyes–
user_approvedbooleanyesMust be true only after the user explicitly approved the mode change.

No output schema declared.

No examples provided.

Install

How do I install the Apple Mail MCP server?

Apple Mail MCP runs locally as an npm package, launched with npx -y @jakobf1/apple-mail-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @jakobf1/apple-mail-mcp

# add to Claude Code
claude mcp add jakobfigur-apple-mail-mcp -- npx -y @jakobf1/apple-mail-mcp
Common questions

What is the Apple Mail MCP server?

Apple Mail MCP is listed in the public MCP registry as io.github.jakobfigur/apple-mail-mcp. Privacy-first local MCP for Apple Mail on macOS: inbox context, drafts, approvals, and follow-ups. This page covers its npm package (@jakobf1/apple-mail-mcp).

Is the Apple Mail MCP server safe to use?

Apple Mail MCP scores 67 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 18 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Apple Mail MCP server expose?

Apple Mail MCP exposes 26 tools: list_accounts, list_mailboxes, list_messages, search_messages, get_message, and 21 more. Their descriptions and schemas cost roughly 1,901 tokens of context every time the server is loaded.

Is the Apple Mail MCP server still maintained?

Apple Mail MCP is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Apple Mail MCP server under?

Apple Mail MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.