Agent Email
Local email connectivity for AI agents — read, draft, send, and organize Outlook mail.
Connector by UseJunior · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/usejunior-email-agent-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 9 read · 6 write · 1 delete
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 16
Read from the source code; the running server may list different tools.
Read 9 · Look things up without changing anything.
download_attachmentdownload_messageget_mailbox_statuslist_attachmentslist_emailslist_inbox_ruleslist_mailboxesread_emailsearch_emails
Write 6 · Create, change, send or run things.
create_draftcreate_inbox_rulereply_to_emailsend_draftsend_emailupdate_draft
Delete 1 · Delete, drop, revoke or wipe things.
delete_inbox_rule
Network hosts it talks to 13
accounts.google.com· found in codeconsole.cloud.google.com· found in codegithub.com· found in codeglama.ai· found in codegmail.googleapis.com· found in codegoogleapis.com· found in codegraph.microsoft.com· found in codelogin.microsoft.com· found in codemail.google.com· found in codemyaccount.google.com· found in codeoauth.usejunior.com· found in codeoauth2.googleapis.com· found in codeusejunior.com· found in code
Files it touches
/opt/homebrew/bin/ffmpeg/usr/sbin/screencapture- Your home directory (~)
Tools (16)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
create_draftCreate an email draft with to/cc/bcc recipients. Supports body_file with YAML frontmatter (to, cc, bcc, subject, reply_to, format). Use reply_to for threaded reply drafts, where to and subject are derived from the parent message and may be omitted; pass reply_all=false with reply_to to draft a sender-only reply.
create_inbox_ruleCreate a persistent server-side inbox rule using safe actions only; forwarding, redirection, and deletion are blocked. Confirm with the user before calling — this creates a rule that keeps acting on the mailbox 24/7 after the session ends.
delete_inbox_rulecan change or delete dataDelete a server-side inbox rule by id (disabled by default, requires explicit configuration). Removing a rule can silently re-expose the mailbox to mail the rule was filtering.
download_attachmentread-onlyDescription is built at runtime.
download_messageread-onlySave a whole message, as received, to a sandboxed local directory as a raw RFC 822 .eml file (Graph /$value, Gmail format=raw). Returns {path, filename, mimeType, size, sha256}, never the bytes. Use it to keep a record copy next to attachments saved with download_attachment save_to.
get_mailbox_statusread-onlyGet mailbox connection status, unread count, and warnings
list_attachmentsread-onlyList attachments for a specific email message
list_emailsread-onlyList recent emails with filtering by unread status, folder, sender, and limit. Use offset for pagination. A row with `isDraft: true` is an unsent draft — it has NOT been sent, and its `receivedAt` is provider-supplied metadata, not evidence of delivery. Never describe such a row as a sent, delivered, or received email.
list_inbox_rulesread-onlyList server-side inbox rules with all fields reported by the provider
list_mailboxesread-onlyList every configured mailbox: its logical `name` (pass this as the `mailbox` argument to other tools), its `emailAddress`, provider, connection status, and which one is the default. Reports mailboxes that failed to authenticate too, so it stays useful for diagnosing a broken setup.
read_emailread-onlyRead the full content of an email by ID, transformed to token-efficient markdown. When the response has `isDraft: true` the message is an unsent draft — it has NOT been sent, and `receivedAt` is provider-supplied metadata, not evidence of delivery; never describe it as a sent, delivered, or received email. Set format to 'html' to get the raw body HTML instead of markdown — use this when you need to preserve inline styling (colour, background-colour, underline, strikethrough) that the markdown conversion discards, e.g. to change one sentence of a formatted body and leave the rest alone. Raw HTM…
reply_to_emailReply to an email within an existing thread. Default reply_all=true cc's the original thread; pass reply_all=false to reply only to the sender. Send path validates all effective recipients against the send allowlist; draft path bypasses. If a send fails with SEND_STATUS_UNKNOWN, the message may already have been delivered; do not resend without checking Sent Items. An identical reply repeated within the duplicate window is refused with a DUPLICATE_SEND_* code instead of delivering twice; pass allow_duplicate: true only when a human has decided to send the same reply again.
search_emailsread-onlySearch emails using full-text query across one or all mailboxes. Use offset for pagination. Results include unsent drafts: a row with `isDraft: true` has NOT been sent — its `receivedAt` is provider-supplied metadata, not evidence of delivery. Never describe such a row as a sent, delivered, or received email.
send_draftSend a previously created draft. Enforces send allowlist before sending. Rate-limited. If a send fails with SEND_STATUS_UNKNOWN, the message may already have been delivered; do not resend without checking Sent Items. Sending the same draft id twice within the duplicate window is refused with a DUPLICATE_SEND_* code instead of delivering twice; pass allow_duplicate: true only when a human has decided to send it again.
send_emailCompose and send a new email. Gated by send allowlist. Draft mode bypasses allowlist. If a send fails with SEND_STATUS_UNKNOWN, the message may already have been delivered; do not resend without checking Sent Items. An identical send repeated within the duplicate window is refused with a DUPLICATE_SEND_* code instead of delivering twice; pass allow_duplicate: true only when a human has decided to send the same message again.
Show 1 more tools
update_draftUpdate a draft email. Body edits are refused for reply drafts; non-reply body edits require replace_body=true and replace the body wholesale. Subject, recipients (to/cc/bcc), and attachments remain editable. Allowlist is enforced at send_draft time, not here.
Signals
- Stars
- 6
- Forks
- 2
- Open issues
- 15
- Last commit
- Oct 19, 2026 (9 days ago)
- Last release
- Oct 18, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.UseJunior/email-agent-mcp- Version
- 0.3.5
- Auth
- No auth
- Packages
- npm email-agent-mcp
- License
- Apache-2.0
- Repository
- github.com/UseJunior/email-agent-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from UseJunior
Cite this page
Agent Email MCP server. Agent Mart. https://agentmart.dev/connectors/usejunior-email-agent-mcp (last updated 2026-10-24)