Skip to content
Agentmart
Submit a tool

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

IndexedApache-2.0Local (stdio)★ 6
Write a review

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.

We use your email only for this newsletter. Privacy

About

Local email connectivity for AI agents — read, draft, send, and organize Outlook mail via MCP

No 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_attachment
  • download_message
  • get_mailbox_status
  • list_attachments
  • list_emails
  • list_inbox_rules
  • list_mailboxes
  • read_email
  • search_emails

Write 6 · Create, change, send or run things.

  • create_draft
  • create_inbox_rule
  • reply_to_email
  • send_draft
  • send_email
  • update_draft

Delete 1 · Delete, drop, revoke or wipe things.

  • delete_inbox_rule

Network hosts it talks to 13

  • accounts.google.com · found in code
  • console.cloud.google.com · found in code
  • github.com · found in code
  • glama.ai · found in code
  • gmail.googleapis.com · found in code
  • googleapis.com · found in code
  • graph.microsoft.com · found in code
  • login.microsoft.com · found in code
  • mail.google.com · found in code
  • myaccount.google.com · found in code
  • oauth.usejunior.com · found in code
  • oauth2.googleapis.com · found in code
  • usejunior.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_draft

    Create 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_rule

    Create 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 data

    Delete 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-only

    Description is built at runtime.

  • download_messageread-only

    Save 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-only

    Get mailbox connection status, unread count, and warnings

  • list_attachmentsread-only

    List attachments for a specific email message

  • list_emailsread-only

    List 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-only

    List server-side inbox rules with all fields reported by the provider

  • list_mailboxesread-only

    List 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-only

    Read 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_email

    Reply 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-only

    Search 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_draft

    Send 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_email

    Compose 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_draft

    Update 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
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)