← Back to search

@p-l-ta/mail-mcp

GitHub Actions Scanned 13d ago

MCP server exposing Mail.app to Claude and other MCP hosts

B
81.4 / 100

Versions

1.3.5latest
Jul 10, 2026
1.3.4
Jul 10, 2026
1.3.3
Jul 10, 2026
1.3.2
Jul 9, 2026
1.3.1
Jul 9, 2026
+ show 7 moreshow less
1.3.0
Jun 24, 2026
1.2.0
May 10, 2026
1.1.1
May 8, 2026
1.1.0
May 8, 2026
1.0.2
May 8, 2026
1.0.1
May 8, 2026
1.0.0
May 8, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 23

get_unsubscribe_link
annotations: none low

Extract unsubscribe URLs from a message — checks the List-Unsubscribe header first (reliable), then scans the plain-text body as a fallback.

bulk_flag
annotations: none low

Flag or unflag multiple messages in one call — by mailbox, sender substring, or both. Queries the Envelope Index for matching IDs then updates in a single batched AppleScript call.

bulk_move
annotations: none low

Move multiple messages to a destination mailbox in one call — by mailbox, sender substring, or both. Queries the Envelope Index for matching IDs then moves in a single batched AppleScript call.

send_email
annotations: none low

Send a new email via Mail.app from an existing account.

read_email
annotations: none low

Read full body of a message by its RFC message-id. Uses Mail.app via AppleScript so it works for IMAP/iCloud/Exchange messages without filesystem access.

bulk_mark_read
annotations: none low

Mark multiple messages as read in one call — by mailbox, sender substring, or both. Far faster than calling set_message_flags per message.

list_accounts_and_mailboxes
annotations: none low

List all configured Mail.app accounts and their mailboxes with unread counts.

empty_mailbox
annotations: none low

Delete every message in a mailbox at once — moves to Deleted Messages, or permanently removes if the mailbox is already Deleted Messages/Trash. Use for Junk, Trash, or bulk-cleanup folders.

trash_email
annotations: none low

Move a message to Deleted Messages (trash) by RFC message-id. Does not permanently delete.

bulk_trash
annotations: none low

Move multiple messages to trash in one call — by mailbox, sender substring, or both. Queries the Envelope Index for matching IDs then trashes in a single batched AppleScript call.

list_rules
annotations: none low

List all Mail.app rules with their conditions and actions. Reads directly from SyncedRules.plist.

update_rule
annotations: none low

Update an existing Mail.app rule by its RuleId (use list_rules to find IDs). A timestamped backup is made before writing. Mail.app may need to be restarted for changes to take effect.

reply_to_email
annotations: none low

Reply to an existing message identified by RFC message-id.

check_compatibility
annotations: none low

Probe each mail-mcp dependency (Envelope Index schema, SyncedRules.plist, AppleScript, MailData directory) and report pass/fail. Run this after a macOS update to verify nothing broke.

list_senders
annotations: none low

Return a grouped count of senders across mailboxes — who sends how many messages, how many are unread, and when the last arrived. By default excludes Deleted Messages, Junk, Sent, and Drafts so counts reflect live mail only. Ideal for identifying bulk senders and noise.

create_rule
annotations: none low

Create a new Mail.app rule. A timestamped backup of SyncedRules.plist is made before writing. Mail.app may need to be restarted for the rule to take effect.

bulk_apply
annotations: none low

Apply one action (mark_read, mark_unread, flag, unflag, trash, or move) to a list of messages by RFC message-id, in a single batched call — far faster than calling set_message_flags/trash_email/move_email once per message.

move_email
annotations: none low

Move a message to a different mailbox by RFC message-id. Use list_accounts_and_mailboxes to get exact mailbox names.

create_mailbox
annotations: none low

Create a new mailbox (folder) in a Mail.app account.

delete_rule
annotations: none low

Permanently delete a Mail.app rule by its RuleId. A timestamped backup of SyncedRules.plist is made before writing so the deletion can be undone. Mail.app may need to be restarted for the change to take effect.

search_emails
annotations: none low

Search Mail.app messages via the Envelope Index database. Returns rich metadata including RFC message-id (usable with read_email, reply_to_email, set_message_flags).

set_message_flags
annotations: none low

Set read and/or flagged status on a message identified by RFC message-id.

list_recent
annotations: none low

List recent messages in a mailbox of a specific account.

Permissions 2

filesystem low
Server uses filesystem capabilities via: fs/promises
shell high
Server uses shell capabilities via: child_process, spawn()

Scan Findings 54

low
Tool 'get_unsubscribe_link' has no annotations annotation_checker · 100%
low
Tool 'bulk_flag' has no annotations annotation_checker · 100%
low
Tool 'bulk_move' has no annotations annotation_checker · 100%
low
Tool 'send_email' has no annotations annotation_checker · 100%
low
Tool 'read_email' has no annotations annotation_checker · 100%
low
Tool 'bulk_mark_read' has no annotations annotation_checker · 100%
low
Tool 'list_accounts_and_mailboxes' has no annotations annotation_checker · 100%
low
Tool 'empty_mailbox' has no annotations annotation_checker · 100%
low
Tool 'trash_email' has no annotations annotation_checker · 100%
low
Tool 'bulk_trash' has no annotations annotation_checker · 100%
low
Tool 'list_rules' has no annotations annotation_checker · 100%
low
Tool 'update_rule' has no annotations annotation_checker · 100%
low
Tool 'reply_to_email' has no annotations annotation_checker · 100%
low
Tool 'check_compatibility' has no annotations annotation_checker · 100%
low
Tool 'list_senders' has no annotations annotation_checker · 100%
low
Tool 'create_rule' has no annotations annotation_checker · 100%
low
Tool 'bulk_apply' has no annotations annotation_checker · 100%
low
Tool 'move_email' has no annotations annotation_checker · 100%
low
Tool 'create_mailbox' has no annotations annotation_checker · 100%
low
Tool 'delete_rule' has no annotations annotation_checker · 100%
low
Tool 'search_emails' has no annotations annotation_checker · 100%
low
Tool 'set_message_flags' has no annotations annotation_checker · 100%
low
Tool 'list_recent' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
package.json metadata manifest_parser · 100%
info
Tool: get_unsubscribe_link manifest_parser · 70%
info
Tool: bulk_flag manifest_parser · 70%
info
Tool: bulk_move manifest_parser · 70%
info
Tool: send_email manifest_parser · 70%
info
Tool: read_email manifest_parser · 70%
info
Tool: bulk_mark_read manifest_parser · 70%
info
Tool: list_accounts_and_mailboxes manifest_parser · 70%
info
Tool: empty_mailbox manifest_parser · 70%
info
Tool: trash_email manifest_parser · 70%
info
Tool: bulk_trash manifest_parser · 70%
info
Tool: list_rules manifest_parser · 70%
info
Tool: update_rule manifest_parser · 70%
info
Tool: reply_to_email manifest_parser · 70%
info
Tool: check_compatibility manifest_parser · 70%
info
Tool: list_senders manifest_parser · 70%
info
Tool: create_rule manifest_parser · 70%
info
Tool: bulk_apply manifest_parser · 70%
info
Tool: move_email manifest_parser · 70%
info
Tool: create_mailbox manifest_parser · 70%
info
Tool: delete_rule manifest_parser · 70%
info
Tool: search_emails manifest_parser · 70%
info
Tool: set_message_flags manifest_parser · 70%
info
Tool: list_recent manifest_parser · 70%
info
Transport: stdio manifest_parser · 90%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
low
Permission: filesystem access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
info
SBOM generated: 199 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%