mailappmcp

MCPcommunity
v0.4.1io.github.aernouddekkerMITUpdated 1mo agonpmGitHub

MCP server for macOS Mail.app — gives Claude native email access via AppleScript

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Automatically indexed from public sources. Not yet verified by the developer on Forge.Claim this listing →
45Downloads/wk
1mo agoLast update
Package
Authorio.github.aernouddekker
LicenseMIT
Version0.4.1
Sourcenpm+mcp-registry
Trust Status
B
60/100Good
✓Listed in Forge index+10/10
—Publisher identity verified+0/20
→ Publisher: run `forge publish` from the package repo to claim ownership
—Ed25519 publish signature+0/5
→ Included automatically when the publisher runs `forge publish`
—Domain verification+0/5
→ Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
—npm Trusted Publishing (Sigstore)+0/5
→ Publish from GitHub Actions with --provenance so the attestation binds this package to this repo
—npm maintainer match+0/5
→ Earned once your identity is verified above and that login is an npm maintainer of this package
✓CVE scan · clean+30/30
✓Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusCommunity-indexed
PublisherUnverified
SignatureUnsigned
Domain—
Provenance—
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface21 tools · 2 privileged
Security scan✓ Cleanv0.4.0 · 1mo agoHow well does this scan work?
EvalsNone
IndexedAug 26, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

21 tools · 2 privileged
Statically extracted from the published packagev0.4.0 · 1mo ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

list-mailboxesList all mailboxes across all Mail.app accounts with unread counts

List all mailboxes across all Mail.app accounts with unread counts

No input schema was published for this tool.

search-messagesSearch messages in a mailbox by subject or sender

Search messages in a mailbox by subject or sender

No input schema was published for this tool.

read-messageRead the full content of a specific email message

Read the full content of a specific email message

No input schema was published for this tool.

compose-messageCreate a new email draft in Mail.app (opens compose window, does NOT send). Pass from to pre-select a specific sender account (must be configured in Mail.app). Pass htmlBody for a rich-text/HTML draft; the recipient will see rendered formatting (headings, bold, links) instead of raw tags. When html…

Create a new email draft in Mail.app (opens compose window, does NOT send). Pass from to pre-select a specific sender account (must be configured in Mail.app). Pass htmlBody for a rich-text/HTML draft; the recipient will see rendered formatting (headings, bold, links) instead of raw tags. When html…

No input schema was published for this tool.

send-messageCreate and immediately send an email via Mail.app. Pass htmlBody to send a rich-text/HTML message; the recipient will see rendered formatting (headings, bold, links) instead of raw tags. When htmlBody is supplied, body is still used as a plain-text fallback for clients that read plain content.

Create and immediately send an email via Mail.app. Pass htmlBody to send a rich-text/HTML message; the recipient will see rendered formatting (headings, bold, links) instead of raw tags. When htmlBody is supplied, body is still used as a plain-text fallback for clients that read plain content.

No input schema was published for this tool.

reply-to-messageReply to an existing email message. The reply inherits correct threading headers (In-Reply-To / References) from Mail's native reply, so it nests in the thread even in strict clients (Outlook, Gmail web). Pass htmlBody for a branded rich-text/HTML reply; the HTML is rendered above the quoted thread…

Reply to an existing email message. The reply inherits correct threading headers (In-Reply-To / References) from Mail's native reply, so it nests in the thread even in strict clients (Outlook, Gmail web). Pass htmlBody for a branded rich-text/HTML reply; the HTML is rendered above the quoted thread…

No input schema was published for this tool.

delete-messagesprivilegedDelete one or more email messages by their RFC Message-IDs

Delete one or more email messages by their RFC Message-IDs

No input schema was published for this tool.

mark-as-readMark one or more email messages as read

Mark one or more email messages as read

No input schema was published for this tool.

move-messagesprivilegedMove one or more email messages to a different mailbox

Move one or more email messages to a different mailbox

No input schema was published for this tool.

forward-messageForward an existing email message to one or more recipients

Forward an existing email message to one or more recipients

No input schema was published for this tool.

save-attachmentSave email attachments to disk

Save email attachments to disk

No input schema was published for this tool.

flag-messageFlag or unflag one or more email messages with a color flag

Flag or unflag one or more email messages with a color flag

No input schema was published for this tool.

check-for-new-mailTrigger Mail.app to check for new mail on one or all accounts

Trigger Mail.app to check for new mail on one or all accounts

No input schema was published for this tool.

redirect-messageRedirect an email message to new recipients (preserves original sender, unlike forward)

Redirect an email message to new recipients (preserves original sender, unlike forward)

No input schema was published for this tool.

list-accountsList all Mail.app accounts with their email addresses, type, and enabled status

List all Mail.app accounts with their email addresses, type, and enabled status

No input schema was published for this tool.

list-signaturesList all email signatures configured in Mail.app

List all email signatures configured in Mail.app

No input schema was published for this tool.

mark-as-junkMark or unmark one or more email messages as junk/spam

Mark or unmark one or more email messages as junk/spam

No input schema was published for this tool.

get-message-sourceGet the raw RFC822 source of an email message

Get the raw RFC822 source of an email message

No input schema was published for this tool.

list-attachmentsList all attachments of an email message with metadata

List all attachments of an email message with metadata

No input schema was published for this tool.

set-message-colorSet the background color highlight of one or more email messages in Mail.app

Set the background color highlight of one or more email messages in Mail.app

No input schema was published for this tool.

extract-email-addressParse a formatted email string (e.g. 'John Doe <jdoe@example.com>') into name and address

Parse a formatted email string (e.g. 'John Doe <jdoe@example.com>') into name and address

No input schema was published for this tool.

21 of 21 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

MCP server for macOS Mail.app — gives Claude native email access via AppleScript

Keywords
mcp
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-08-30 — observed resolution, not a publisher declaration.

60 packages resolved · 2 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the depth-4 limit. Anything below that level was never resolved.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

54 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+42 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.