About Mailbox
Mailbox is an MCP server in the Communication category: wrongStack project Mailbox as an MCP server with read, management, administration, and live-watch capability tiers.
The repository has 374 stars and 0 forks.
Install
claude mcp add mailbox -- npx -y @wrongstack/mailbox-mcpnpx -y @wrongstack/mailbox-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (33)
archive_emailArchive a message (remove from inbox)
Parameters not published.
authenticateAdd a new account
Parameters not published.
batch_modify_emailsBulk modify labels
Parameters not published.
bulk_modifyAdd/remove labels on every message matching a query (search-then-batch; `dry_run` supported)
Parameters not published.
bulk_trashTrash every message matching a query (`dry_run` supported)
Parameters not published.
count_unread_by_labelShow unread message counts per label/folder
Parameters not published.
create_draftCreate a draft (supports reply drafts via `in_reply_to`, plus `from`, `attachments`)
Parameters not published.
create_labelCreate a label/folder
Parameters not published.
delete_labelDelete a label/folder
Parameters not published.
download_attachmentDownload an attachment
Parameters not published.
Show all 33 tools
emails_sinceList messages received after a given timestamp
Parameters not published.
export_emailSave a message as a `.eml` file
Parameters not published.
export_threadSave every message in a thread as `.eml` files (Gmail + JMAP)
Parameters not published.
forward_emailForward a message (supports `from`, `attachments`)
Parameters not published.
inbox_summaryInbox overview
Parameters not published.
list_accountsList configured accounts
Parameters not published.
list_draftsList drafts for an account
Parameters not published.
list_labelsList labels/folders
Parameters not published.
list_recent_bulk_opsList recorded bulk operations from the transaction log
Parameters not published.
mark_readMark a message as read or unread
Parameters not published.
modify_emailModify message labels
Parameters not published.
multi_account_searchRun the same query across every configured account in parallel
Parameters not published.
read_emailRead a message
Parameters not published.
read_threadRead a conversation thread (Gmail + JMAP)
Parameters not published.
reauthRe-run OAuth for an existing Gmail account (use when refresh token expires with `invalid_grant`)
Parameters not published.
remove_accountRemove an account
Parameters not published.
reply_emailReply to a message (supports `from`, `attachments`)
Parameters not published.
search_emailsSearch messages (optional `folder` to scope the search)
Parameters not published.
send_draftSend an existing draft
Parameters not published.
send_emailSend a new email (supports `from`, `attachments`)
Parameters not published.
star_emailStar or unstar a message
Parameters not published.
trash_emailsTrash messages
Parameters not published.
undo_bulk_opReverse a recorded bulk operation against the exact ids it touched
Parameters not published.
Ask AI
Ask AI about Mailbox
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
mailbox-mcp
Give your AI tools access to your email. Search, read, send, and manage messages across multiple accounts without leaving your terminal.
mailbox-mcp is an MCP server that connects your email to Claude Code, Cursor, Windsurf, or any AI tool that supports the Model Context Protocol. Instead of switching between your terminal and Gmail, you ask the AI to find that invoice, summarize a thread, or draft a reply — and it does.
What makes this different from the 60+ other email MCP servers:
- Multiple accounts, one server. Work email, personal email, client accounts — all accessible through a single server. No need to run separate instances.
- Not just Gmail. Supports Gmail (full API), any IMAP/SMTP provider (ProtonMail, corporate mail, self-hosted), and JMAP (Fastmail, Stalwart, Topicbox). Add providers without changing a line of tool code.
- Security-conscious. Encrypted credentials (AES-256-GCM), prompt injection fencing on email content, rate limiting, TLS enforcement, SSRF protection with IP encoding evasion detection, input validation.
- Tools for the workflows that matter. Search, read, send, reply, forward, drafts, labels, filters, templates, signatures, vacation replies, attachments, unsubscribe, and more.
- Zero native dependencies. Pure Node.js. Install and run anywhere.
Quick Start
Install
git clone https://github.com/jgalea/mailbox-mcp.git
cd mailbox-mcp
npm install && npm run build
Then add to your Claude Code MCP config (~/.claude.json):
{
"mcpServers": {
"mailbox": {
"command": "node",
"args": ["/path/to/mailbox-mcp/dist/server.js"]
}
}
}
Replace /path/to/mailbox-mcp with the actual path where you cloned the repo.
Add a Gmail Account
1. Create a Google Cloud project
- Go to Google Cloud Console and create a new project
- Enable the Gmail API: APIs & Services > Library > Gmail API > Enable
2. Set up OAuth consent screen
- Go to Google Auth Platform > Branding
- Set App name and User support email
- Go to Audience, select External
- Add the Google account you'll sign in with as a test user (this must be the exact
@gmail.comaddress you use to authenticate, not a workspace alias)
3. Create OAuth credentials
- Go to Google Auth Platform > Clients > Create Client
- Application type: Desktop app
- Click Create
- Go to APIs & Services > Credentials, find your client, and click the download icon to get the JSON
- Save the file as
~/.mailbox-mcp/oauth-keys.json
4. Authenticate
In Claude Code, run: authenticate alias="personal" provider="gmail" email="you@gmail.com"
This opens a browser window to complete the OAuth flow. Your tokens are stored locally in ~/.mailbox-mcp/accounts/.
Add an IMAP Account
In Claude Code, run:
authenticate alias="work" provider="imap" email="you@company.com" host="imap.company.com" smtpHost="smtp.company.com" username="you@company.com" password="your-app-password"
Credentials are encrypted at rest using AES-256-GCM.
Add a JMAP Account
In Claude Code, run:
authenticate alias="fastmail" provider="jmap" email="you@fastmail.com" host="fastmail.com" username="you@fastmail.com" password="your-app-password"
JMAP auto-discovers the API endpoint via .well-known/jmap. Credentials are encrypted at rest using AES-256-GCM.
Supported JMAP servers: Fastmail, Stalwart, Topicbox, Cyrus IMAP, and any RFC 8620-compliant server.
JMAP advantages over IMAP:
- Native thread support (real conversations, not synthetic)
- Server-side search (faster, more accurate)
- Batch operations in a single HTTP request
- No persistent connection required
Tools
Universal (Gmail + IMAP + JMAP)
| Tool | Description |
|---|---|
list_accounts |
List configured accounts |
authenticate |
Add a new account |
reauth |
Re-run OAuth for an existing Gmail account (use when refresh token expires with invalid_grant) |
remove_account |
Remove an account |
search_emails |
Search messages (optional folder to scope the search) |
multi_account_search |
Run the same query across every configured account in parallel |
read_email |
Read a message |
read_thread |
Read a conversation thread (Gmail + JMAP) |
send_email |
Send a new email (supports attachments) |
reply_email |
Reply to a message (supports attachments) |
forward_email |
Forward a message (supports attachments) |
create_draft |
Create a draft (supports reply drafts via in_reply_to, attachments) |
list_drafts |
List drafts for an account |
send_draft |
Send an existing draft |
trash_emails |
Trash messages |
mark_read |
Mark a message as read or unread |
star_email |
Star or unstar a message |
archive_email |
Archive a message (remove from inbox) |
list_labels |
List labels/folders |
create_label |
Create a label/folder |
delete_label |
Delete a label/folder |
modify_email |
Modify message labels |
batch_modify_emails |
Bulk modify labels |
count_unread_by_label |
Show unread message counts per label/folder |
download_attachment |
Download an attachment |
export_email |
Save a message as a .eml file |
export_thread |
Save every message in a thread as .eml files (Gmail + JMAP) |
emails_since |
List messages received after a given timestamp |
inbox_summary |
Inbox overview |
Gmail-Only
| Tool | Description |
|---|---|
create_filter |
Create a filter |
list_filters |
List filters |
delete_filter |
Delete a filter |
save_template |
Save a template |
list_templates |
List templates |
delete_template |
Delete a template |
send_template |
Send from template |
get_signature |
Get signature |
set_signature |
Update signature |
get_vacation |
Get vacation settings |
set_vacation |
Configure vacation reply (supports date ranges, domain-only) |
unsubscribe |
Find unsubscribe link |
bulk_unsubscribe |
Bulk unsubscribe |
list_send_as |
List send-as aliases |
Sending attachments
send_email, reply_email, forward_email, and create_draft accept an optional attachments parameter — an array of local file paths. The server reads each file, detects its MIME type from the extension, and embeds it in the outgoing message (or draft).
send_email account="personal" to=["friend@example.com"] subject="The report" body="See attached." attachments=["/path/to/report.pdf", "/path/to/chart.png"]
- Each file must be a regular file ≤ 25 MB; total per message is capped at 25 MB (Gmail's hard limit).
- Paths are resolved through any symlinks, and filenames are stripped of CRLF before going into headers.
- Gmail routes messages with attachments through the multipart upload endpoint (35 MB API limit) instead of the JSON endpoint, so the 25 MB message cap is the real ceiling.
- JMAP uploads each file to the server's upload URL first, then references the resulting blobIds in the Email/set call.
License
MIT
Built at AgentVania.
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.