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

io.github.jgalea/mailbox-mcp

NPM · MAILBOX-MCP · SCANNED AUG 3

Multi-account email MCP server for Gmail, IMAP, and JMAP: search, send, drafts, labels.

Available components

+29 this week 75 Trust /100
Trust breakdown (6 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 →

Supply Chain Security70
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects nodemailer 8.0.5, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (143 of 148), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to jgalea/mailbox-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 22 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability77
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 3442 tokens (~70/item across 49 items; 49 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · mailbox-mcp

# add to Claude Code
claude mcp add jgalea-mailbox-mcp -- npx -y mailbox-mcp
# add to Codex CLI
codex mcp add jgalea-mailbox-mcp -- npx -y mailbox-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jgalea-mailbox-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mailbox-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add jgalea-mailbox-mcp --command npx --arg -y --arg mailbox-mcp
# ~/.hermes/config.yaml
mcp_servers:
  jgalea-mailbox-mcp:
    command: "npx"
    args: ["-y", "mailbox-mcp"]
// mcp.json
{
  "mcpServers": {
    "jgalea-mailbox-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mailbox-mcp"
      ]
    }
  }
}
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.

  • 3 Aug 26 +4
    • Stability: unverified → 0.27 functional
  • 2 Aug 26 +50
    • GHSA-r7g4-qg5f-qqm2 affects this package: high security
    • GHSA-268h-hp4c-crq3 affects this package: high security
    • GHSA-p6gq-j5cr-w38f affects this package: high security
    • GHSA-wqvq-jvpq-h66f affects this package: high security
    • CVE-2026-41907 affects this package: high security
    • GHSA-frvp-7c67-39w9 affects this package: high security
    • Known CVEs: unverified → fail security
    • Install scripts: unverified → pass security
    • Provenance: unverified → pass security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • The attested source repository moved: jgalea/mailbox-mcp security
    • Tool coverage: 100 → unverified functional
    • Schema quality: unverified → excellent functional
    • License: unverified → pass functional
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Dependency health: unverified → partial functional
    • First check of Schema quality: unverified functional
    • Licence: MIT functional
  • 31 Jul 26 −25
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 46

    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 3 Aug 2026 · Analysed npm/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
jgalea/mailbox-mcp
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/jgalea/mailbox-mcp/.github/workflows/publish.yml@refs/tags/v0.9.2
Rekor log index:
1848507687
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:a43442787689f1189b18f978388d4b65f60b2ac1410d5f053227ee5b85d59d5571d06c649db15f56f47d19b47463219a924a65a1df0e3081fc057936c
Discovery method:
attestation_endpoint
Vulnerabilities 6 findings
ID CVE Severity Vector Fix available
GHSA-frvp-7c67-39w9 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N yes
GHSA-268h-hp4c-crq3 medium CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N yes
GHSA-p6gq-j5cr-w38f high CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N yes
GHSA-r7g4-qg5f-qqm2 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N yes
GHSA-wqvq-jvpq-h66f medium CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N yes
GHSA-w5hq-g745-h8pq CVE-2026-41907 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N yes
Dependencies 143 packages

143 packages in the resolved dependency tree · 143 deprecated · 45 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 49 exposed · ~3,442 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.

Tool Tokens
archive_email ~59

Archive an email (remove from inbox). Gmail removes the INBOX label; IMAP moves to the Archive folder; JMAP moves out of the inbox mailbox.

NameTypeReqDescription
accountstringyesAccount alias
message_idstringyesMessage ID

No output schema declared.

No examples provided.

authenticate ~215

Add a new email account. For Gmail: opens a browser for OAuth. For IMAP/JMAP: stores encrypted credentials. Sensitive fields (username, password) can also be set via environment variables.

NameTypeReqDescription
aliasstringyesShort name for this account (e.g. 'personal', 'work')
emailstringyesEmail address
hoststringIMAP server hostname (IMAP only)
passwordstringIMAP/SMTP password or app password (IMAP only)
portnumberIMAP server port (IMAP only, default 993)
providerstringyesEmail provider type
sessionUrlstringJMAP session URL override (JMAP only, auto-discovered from host by default)
smtpHoststringSMTP server hostname (IMAP only)
smtpPortnumberSMTP server port (IMAP only, default 587)
usernamestringIMAP/SMTP username (IMAP only)

No output schema declared.

No examples provided.

batch_modify_emails ~61

Add or remove labels/flags on multiple messages

NameTypeReqDescription
accountstringyesAccount alias
add_labelsarrayLabels to add
message_idsarrayyesMessage IDs
remove_labelsarrayLabels to remove

No output schema declared.

No examples provided.

bulk_modify ~224

Add or remove labels on all messages matching a query. Same fast search-then-batch pattern as bulk_trash, but for arbitrary label ops. Use this for archive (remove_labels=['INBOX']), bulk star/unstar, mark-read across a label, moving messages between labels, etc. Use dry_run to see the count first.

NameTypeReqDescription
accountstringyesAccount alias
add_labelsarrayLabels to add to each matching message.
dry_runbooleanIf true, return the matching count without modifying anything.
folderstringOptional folder/label scope. On Gmail becomes a 'label:' prefix; on IMAP/JMAP scopes the search to that mailbox.
maxnumberSafety cap on number of messages to modify. Defaults to no cap.
querystringyesSearch query (Gmail syntax for Gmail accounts, e.g. 'in:inbox older_than:30d')
remove_labelsarrayLabels to remove from each matching message. Use ['INBOX'] for archive.

No output schema declared.

No examples provided.

bulk_trash ~193

Trash all messages matching a query. Paginates the search and batch-trashes the IDs in one call. Use dry_run to see the count before committing. Useful for label cleanups (e.g. trash everything in 'Newsletters' or older than 90 days).

NameTypeReqDescription
accountstringyesAccount alias
dry_runbooleanIf true, return the matching count without trashing anything.
folderstringOptional folder/label scope. On Gmail this becomes a 'label:' prefix; on IMAP/JMAP it scopes the search to that mailbox.
maxnumberSafety cap on number of messages to trash. Defaults to no cap; set this to bound destructive scope.
querystringyesSearch query (Gmail syntax for Gmail accounts, e.g. 'label:Meetups' or 'from:[email protected] older_than:30d')

No output schema declared.

No examples provided.

bulk_unsubscribe ~37

Find unsubscribe links for multiple mailing list messages

NameTypeReqDescription
accountstringyesAccount alias
message_idsarrayyesMessage IDs

No output schema declared.

No examples provided.

count_unread_by_label ~36

Count unread messages per label/folder. Useful for deciding where to look first.

NameTypeReqDescription
accountstringyesAccount alias

No output schema declared.

No examples provided.

create_draft ~140

Create a draft email

NameTypeReqDescription
accountstringyesAccount alias
attachmentsarrayOptional list of local file paths to attach. Each path must point to a regular file under 25 MB; total per message is also capped at 25 MB.
bccarrayBCC recipients
bodystringyesEmail body
ccarrayCC recipients
htmlbooleanSend as HTML (default false)
in_reply_tostringMessage ID to create draft as reply to
subjectstringyesEmail subject
toarrayyesRecipient email addresses

No output schema declared.

No examples provided.

create_filter ~105

Create a Gmail filter

NameTypeReqDescription
accountstringyesAccount alias
add_labelstringLabel to apply
archivebooleanSkip inbox
fromstringFilter by sender
mark_readbooleanMark as read
querystringFilter by search query
remove_labelstringLabel to remove
subjectstringFilter by subject
tostringFilter by recipient

No output schema declared.

No examples provided.

create_label ~42

Create a new label (Gmail) or folder (IMAP)

NameTypeReqDescription
accountstringyesAccount alias
namestringyesLabel/folder name

No output schema declared.

No examples provided.

delete_draft ~42

Permanently delete a Gmail draft. This cannot be undone.

NameTypeReqDescription
accountstringyesAccount alias
draft_idstringyesDraft ID to delete

No output schema declared.

No examples provided.

delete_filter ~34

Delete a Gmail filter

NameTypeReqDescription
accountstringyesAccount alias
filter_idstringyesFilter ID to delete

No output schema declared.

No examples provided.

delete_label ~44

Delete a label (Gmail) or folder (IMAP)

NameTypeReqDescription
accountstringyesAccount alias
label_idstringyesLabel/folder ID to delete

No output schema declared.

No examples provided.

delete_template ~33

Delete a saved template

NameTypeReqDescription
accountstringyesAccount alias
message_idstringyesTemplate message ID

No output schema declared.

No examples provided.

download_attachment ~94

Download an email attachment to a safe directory

NameTypeReqDescription
accountstringyesAccount alias
attachment_idstringyesAttachment filename (recommended — stable) or ID from read_email (Gmail IDs are ephemeral)
message_idstringyesMessage ID
save_tostringDirectory to save to (default ~/Downloads/mailbox-mcp). Allowed: ~/Downloads/mailbox-mcp or /tmp.

No output schema declared.

No examples provided.

emails_since ~95

List messages received after a given timestamp. Use for polling new mail since a last-check marker.

NameTypeReqDescription
accountstringyesAccount alias
folderstringOptional folder/label to scope the search
max_resultsnumberMax results (default 50)
sincestringyesISO 8601 timestamp, e.g. '2026-04-20T10:00:00Z'

No output schema declared.

No examples provided.

export_email ~87

Export an email as a raw RFC 822 .eml file to a safe directory. Useful for archival, legal discovery, or migration.

NameTypeReqDescription
accountstringyesAccount alias
message_idstringyesMessage ID
save_tostringDirectory to save to (default ~/Downloads/mailbox-mcp). Allowed: ~/Downloads/mailbox-mcp or /tmp.

No output schema declared.

No examples provided.

export_thread ~81

Export all messages in a thread as individual .eml files to a safe directory. Gmail/JMAP only.

NameTypeReqDescription
accountstringyesAccount alias
save_tostringDirectory to save to (default ~/Downloads/mailbox-mcp). Allowed: ~/Downloads/mailbox-mcp or /tmp.
thread_idstringyesThread ID

No output schema declared.

No examples provided.

forward_email ~114

Forward an email message to new recipients

NameTypeReqDescription
accountstringyesAccount alias
attachmentsarrayOptional list of local file paths to attach. Each path must point to a regular file under 25 MB; total per message is also capped at 25 MB.
htmlbooleanSend as HTML (default false)
messagestringOptional message to add above the forwarded content
message_idstringyesMessage ID to forward
toarrayyesRecipient email addresses

No output schema declared.

No examples provided.

get_signature ~26

Get the email signature for a Gmail account

NameTypeReqDescription
accountstringyesAccount alias

No output schema declared.

No examples provided.

get_vacation ~26

Get vacation auto-reply settings

NameTypeReqDescription
accountstringyesAccount alias

No output schema declared.

No examples provided.

inbox_summary ~30

Get a summary of recent inbox activity including total and unread counts

NameTypeReqDescription
accountstringyesAccount alias

No output schema declared.

No examples provided.

list_accounts ~21

List all configured email accounts with their provider type and email address

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_drafts ~40

List drafts for an account

NameTypeReqDescription
accountstringyesAccount alias
max_resultsnumberMax drafts to return (default 20)

No output schema declared.

No examples provided.

list_filters ~21

List Gmail filters

NameTypeReqDescription
accountstringyesAccount alias

No output schema declared.

No examples provided.

list_labels ~34

List all labels (Gmail) or folders (IMAP) for an account

NameTypeReqDescription
accountstringyesAccount alias

No output schema declared.

No examples provided.

list_recent_bulk_ops ~61

List recent bulk_modify and bulk_trash operations recorded in the transaction log. Use to find an op id for undo_bulk_op.

NameTypeReqDescription
accountstringOptional account filter.
limitnumberMax records to return (default 20).

No output schema declared.

No examples provided.

list_send_as ~28

List send-as aliases configured on a Gmail account

NameTypeReqDescription
accountstringyesAccount alias

No output schema declared.

No examples provided.

list_templates ~22

List saved email templates

NameTypeReqDescription
accountstringyesAccount alias

No output schema declared.

No examples provided.

mark_read ~54

Mark an email as read or unread

NameTypeReqDescription
accountstringyesAccount alias
message_idstringyesMessage ID
readbooleantrue to mark read, false to mark unread (default true)

No output schema declared.

No examples provided.

modify_email ~59

Add or remove labels/flags on a message

NameTypeReqDescription
accountstringyesAccount alias
add_labelsarrayLabels to add
message_idstringyesMessage ID
remove_labelsarrayLabels to remove

No output schema declared.

No examples provided.

multi_account_search ~67

Run the same search across all configured accounts in parallel. Returns results grouped by account alias.

NameTypeReqDescription
max_resultsnumberMax results per account (default 10)
querystringyesSearch query (Gmail syntax for Gmail accounts; plain text for IMAP/JMAP)

No output schema declared.

No examples provided.

read_email ~39

Read a single email message with full content

NameTypeReqDescription
accountstringyesAccount alias
message_idstringyesMessage ID from search results

No output schema declared.

No examples provided.

read_thread ~41

Read an entire email conversation thread (Gmail and JMAP only)

NameTypeReqDescription
accountstringyesAccount alias
thread_idstringyesThread ID

No output schema declared.

No examples provided.

reauth ~56

Re-run OAuth for an existing Gmail account without removing it. Opens a browser for Google sign-in. Use when the refresh token expires (invalid_grant) or scopes change.

NameTypeReqDescription
aliasstringyesAccount alias to re-authenticate

No output schema declared.

No examples provided.

remove_account ~29

Remove a configured email account and its stored credentials

NameTypeReqDescription
aliasstringyesAccount alias to remove

No output schema declared.

No examples provided.

reply_email ~134

Reply to an email message

NameTypeReqDescription
accountstringyesAccount alias
attachmentsarrayOptional list of local file paths to attach. Each path must point to a regular file under 25 MB; total per message is also capped at 25 MB.
bccarrayAdditional BCC recipients
bodystringyesReply body
ccarrayAdditional CC recipients
htmlbooleanSend as HTML (default false)
message_idstringyesMessage ID to reply to
reply_allbooleanReply to all recipients (default false)

No output schema declared.

No examples provided.

save_template ~58

Save an email template (stored as a Gmail draft with TEMPLATE label)

NameTypeReqDescription
accountstringyesAccount alias
bodystringyesTemplate body
namestringyesTemplate name
subjectstringyesTemplate subject

No output schema declared.

No examples provided.

search_emails ~105

Search emails in an account. Gmail supports full Gmail search syntax. IMAP searches subject and body. Optional folder parameter scopes the search to a specific label/folder.

NameTypeReqDescription
accountstringyesAccount alias
folderstringOptional folder/label to scope the search (IMAP mailbox path, Gmail label name, or JMAP mailbox name/id)
max_resultsnumberMax results (default 20)
querystringyesSearch query

No output schema declared.

No examples provided.

send_draft ~72

Send an existing draft as-is. For Gmail/JMAP the draft is finalised and submitted; for IMAP the message is sent via SMTP and removed from the Drafts folder.

NameTypeReqDescription
accountstringyesAccount alias
draft_idstringyesDraft ID from list_drafts or create_draft

No output schema declared.

No examples provided.

send_email ~122

Send a new email

NameTypeReqDescription
accountstringyesAccount alias
attachmentsarrayOptional list of local file paths to attach. Each path must point to a regular file under 25 MB; total per message is also capped at 25 MB.
bccarrayBCC recipients
bodystringyesEmail body
ccarrayCC recipients
htmlbooleanSend as HTML (default false)
subjectstringyesEmail subject
toarrayyesRecipient email addresses

No output schema declared.

No examples provided.

send_template ~45

Send an email using a saved template

NameTypeReqDescription
accountstringyesAccount alias
message_idstringyesTemplate message ID
toarrayyesRecipients

No output schema declared.

No examples provided.

set_signature ~36

Update the email signature for a Gmail account

NameTypeReqDescription
accountstringyesAccount alias
signaturestringyesHTML signature content

No output schema declared.

No examples provided.

set_vacation ~135

Configure vacation auto-reply

NameTypeReqDescription
accountstringyesAccount alias
bodystringAuto-reply body (HTML)
contacts_onlybooleanOnly reply to contacts
domain_onlybooleanOnly reply to same domain
enabledbooleanyesEnable or disable auto-reply
end_timestringEnd date (ISO format, e.g. '2026-03-20')
start_timestringStart date (ISO format, e.g. '2026-03-10')
subjectstringAuto-reply subject

No output schema declared.

No examples provided.

star_email ~52

Star or unstar an email

NameTypeReqDescription
accountstringyesAccount alias
message_idstringyesMessage ID
starredbooleantrue to star, false to unstar (default true)

No output schema declared.

No examples provided.

trash_emails ~35

Move messages to trash

NameTypeReqDescription
accountstringyesAccount alias
message_idsarrayyesMessage IDs to trash

No output schema declared.

No examples provided.

undo_bulk_op ~76

Reverse a previously recorded bulk_modify or bulk_trash by replaying the inverse label change against the exact ids that were touched. Find the op id from list_recent_bulk_ops. Idempotent on already-reversed ops (refuses to re-reverse).

NameTypeReqDescription
op_idstringyesThe op id from list_recent_bulk_ops.

No output schema declared.

No examples provided.

unsubscribe ~44

Unsubscribe from a mailing list by finding the List-Unsubscribe header

NameTypeReqDescription
accountstringyesAccount alias
message_idstringyesMessage ID from the mailing list

No output schema declared.

No examples provided.

update_draft ~138

Replace the contents of an existing Gmail draft. The draft's thread association is preserved automatically.

NameTypeReqDescription
accountstringyesAccount alias
attachmentsarrayOptional list of local file paths to attach. Each must be a regular file under 25 MB.
bccarrayBCC recipients
bodystringyesEmail body
ccarrayCC recipients
draft_idstringyesDraft ID returned by create_draft
htmlbooleanSend as HTML (default false)
subjectstringyesEmail subject
toarrayyesRecipient email addresses

No output schema declared.

No examples provided.