MCPInstall

apple-mail

Interact with Apple Mail on macOS. Use for reading, sending, searching, and managing emails.

Installs
1.4K
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/rbouschery/marketplace --skill apple-mail
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads apple-mail automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Apple Mail Skill

This skill provides commands to interact with Apple Mail on macOS via AppleScript.

Available Scripts

All scripts are in the ../../scripts/ directory (relative to this file). Execute them via bash from the plugin root.

Account & Mailbox Management

ScriptPurposeArguments
list-accounts.shList all email accountsnone
list-mailboxes.shList mailboxes/folders[account] (optional)
get-unread-count.shGet unread email count[account] [mailbox] (optional)

Reading Emails

ScriptPurposeArguments
get-emails.shGet recent emails[account] [mailbox] [limit] [include_content] [unread_only]
get-email-by-id.shGet specific email by ID<id> [account] [mailbox] [include_content]
search-emails.shSearch emails<query> [account] [mailbox] [limit]

Sending & Composing

ScriptPurposeArguments
send-email.shSend an email<to> <subject> <body> [cc] [bcc] [from]
create-draft.shCreate a draft email<subject> <body> [to] [cc] [bcc] [from]
create-reply-draft.shCreate reply to email<message_id> <body> [reply_all] [account] [mailbox]
send-draft.shSend front-most draftnone

Email Management

ScriptPurposeArguments
archive-email.shArchive an email<message_id> [account] [mailbox] [archive_mailbox]
delete-email.shDelete an email<message_id> [account] [mailbox]
mark-read.shMark email as read<message_id> [account] [mailbox]
mark-unread.shMark email as unread<message_id> [account] [mailbox]

Output Format

Scripts use delimiters for structured output:

  • <<>> separates fields within a record
  • ||| separates multiple records
  • ERROR: prefix indicates an error message

Email Record Format

id<<>>subject<<>>sender<<>>to<<>>cc<<>>bcc<<>>dateSent<<>>isRead<<>>content|||

Usage Examples

List accounts

./scripts/list-accounts.sh

Get recent emails from INBOX

./scripts/get-emails.sh "" "INBOX" 10 false false

Get recent unread emails with content

./scripts/get-emails.sh "" "INBOX" 10 true true

Get specific email by ID

./scripts/get-email-by-id.sh 12345 "iCloud" "INBOX" true

Search emails

./scripts/search-emails.sh "meeting notes" "" "" 20

Send an email

./scripts/send-email.sh "recipient@example.com" "Subject" "Body text"

Send with CC and BCC

./scripts/send-email.sh "to@example.com" "Subject" "Body" "cc@example.com" "bcc@example.com"

Create a draft

./scripts/create-draft.sh "Draft Subject" "Draft body" "recipient@example.com"

Reply to an email

./scripts/create-reply-draft.sh 12345 "Thanks for your message!" false "iCloud" "INBOX"

Send the front-most draft

./scripts/send-draft.sh

Archive an email

./scripts/archive-email.sh 12345 "iCloud" "INBOX"

Mark as read/unread

./scripts/mark-read.sh 12345 "iCloud" "INBOX"
./scripts/mark-unread.sh 12345 "iCloud" "INBOX"

Parsing Output

When receiving email records, parse them like this:

  1. Split by ||| to get individual records
  2. Split each record by <<>> to get fields
  3. Fields are: id, subject, sender, to, cc, bcc, dateSent, isRead, content

Example parsing in bash:

IFS='|||' read -ra emails <<< "$output"
for email in "${emails[@]}"; do
    IFS='<<>>' read -ra fields <<< "$email"
    id="${fields[0]}"
    subject="${fields[1]}"
    sender="${fields[2]}"
    # ... etc
done

Notes

  • Scripts require macOS with Apple Mail configured
  • Apple Mail must have at least one account set up
  • First run may trigger macOS permission prompts for automation
  • Empty optional arguments should be passed as empty strings ""
  • For scripts that need arrays (multiple recipients), pass comma-separated values

Reference

For advanced AppleScript patterns and customization, see ./reference/applescript-patterns.md.

FAQ

What does the apple-mail skill do?

Interact with Apple Mail on macOS. Use for reading, sending, searching, and managing emails.

How do I install apple-mail?

Run npx skills add https://github.com/rbouschery/marketplace --skill apple-mail in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/apple-mail/ (personal) or .claude/skills/apple-mail/ (project).

Which AI agents can use apple-mail?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is apple-mail safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains apple-mail?

It is published by rbouschery in rbouschery/marketplace. It has 1,379 recorded installs.

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs