# email-agent-mcp

> email-agent-mcp is an open-source local MCP server from UseJunior that lets an agent read, search, draft, send and file mail in a person's own Microsoft 365 or Gmail mailbox, with allowlists and delete disabled by default.

- Canonical: https://www.anchorterminal.com/tools/email-agent-mcp
- Pricing: https://www.anchorterminal.com/tools/email-agent-mcp#pricing
- Reviews: https://www.anchorterminal.com/tools/email-agent-mcp#reviews
- Markdown: https://www.anchorterminal.com/tools/email-agent-mcp.md (~5,650 tokens)
- Slim: https://www.anchorterminal.com/tools/email-agent-mcp.min.md (~1,380 tokens, same facts, less prose, for token-sensitive contexts)
- JSON: https://www.anchorterminal.com/tools/email-agent-mcp.json (this page as data, same URL with Accept: application/json)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT email-agent-mcp.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

## Overview

**Grade B · 65.9/100 · rank #396 of 1486 · #4 in Mailbox access · not agent-ready · confidence medium**


## Assessment

A local MCP server for a person's own Outlook or Gmail mailbox with careful defaults, a read-only scope profile, send allowlists, gated deletes and annotated tools, released weekly under Apache-2.0. It is pre-1.0 from one maintainer, Gmail lacks label and move support, and Gmail sign-in relies on UseJunior's hosted broker.

## Facts

| Field | Value |
| --- | --- |
| Vendor | UseJunior (https://github.com/UseJunior/email-agent-mcp) |
| Kind | MCP server |
| Category | Mailbox access (https://www.anchorterminal.com/categories/mailbox-access) |
| Transport | stdio |
| Auth | OAuth · Signs in to the person's own mailbox with OAuth: Microsoft delegated scopes through MSAL, or Gmail `gmail.readonly` and `gmail.compose`. Tokens are kept in the OS keychain and local files under `~/.email-agent-mcp/`. For Gmail, a UseJunior-run broker on Vercel holds the OAuth client secret and relays code exchange and token refresh; mail itself goes straight to Google. |
| Pricing | Free (Free · OSS) · Free, Apache-2.0 software run locally with npx. It uses the person's existing Microsoft 365 or Gmail account; there is nothing to buy from UseJunior. |
| x402 | No · No x402, MPP or L402 in the repository or README (checked 2026-11-06). |
| Licence | Apache-2.0 |
| Tools exposed | 27 |
| Packages | npm: `email-agent-mcp` |
| MCP registry name | `io.github.UseJunior/email-agent-mcp` |
| Source | https://github.com/UseJunior/email-agent-mcp |
| Docs | https://github.com/UseJunior/email-agent-mcp#readme |
| llms.txt | not found |
| Last release | 2026-11-05 |
| npm downloads / week | 394 |
| Surface listed | The stdio MCP server in npm email-agent-mcp 0.5.0, read from a clone of github.com/UseJunior/email-agent-mcp (README, SECURITY.md, the OAuth broker README, tool sources and tags), npm and the MCP registry on 6 November 2026. Nothing was installed or run |
| Providers | Microsoft 365 and Outlook through Microsoft Graph (full tool set), Gmail through the Gmail API (read, search, threads, drafts and send; no label, flag, read-state or move) |
| Tools | 27 in the full profile: list, read, search, threads, attachments, drafts, send, reply, label, flag, mark read, move, folders, inbox rules and gated deletes; observe drops the write tools |
| Gmail OAuth broker | A Vercel app run by UseJunior holds the Gmail client secret, exchanges the code and relays refresh requests without storing refresh tokens; mail content never reaches it, per its README |
| Watcher | An optional watcher polls the mailbox and wakes OpenClaw when new mail arrives |
| Capabilities | mailbox.read, mailbox.search, mailbox.send, mailbox.drafts |
| Tags | open-source, local, mcp, mcp-registry, oauth, microsoft-graph, gmail, typescript, approvals, pre-1.0 |
| JSON | https://www.anchorterminal.com/api/v1/tools/email-agent-mcp.json |

## Score breakdown (methodology v0.7, October 2026 research run)

Assessed 2026-11-06 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. "This run" is each category's share of the 100 points.

| Category | Weight | This run | Score (0–100) | Points |
| --- | --- | --- | --- | --- |
| Reliability | 16% | 20 | 50 | 10.0 |
| Performance | 10% | pending | pending | n/a |
| Schema & documentation | 13% | 16.2 | 79 | 12.8 |
| Agent ergonomics | 13% | 16.2 | 79 | 12.8 |
| Security & auth | 14% | 17.5 | 67 | 11.7 |
| Payments & pricing | 10% | 12.5 | 60 | 7.5 |
| Task success | 10% | pending | pending | n/a |
| Maintenance & community | 7% | 8.8 | 84 | 7.3 |
| Transparency & trust (editorial 62, provenance 22) | 7% | 8.8 | 42 | 3.7 |
| Negative events | up to −15 | up to −15 | none recorded | 0 |
| **Total** | | | | **65.9 → B** |

### Why each score

- Reliability 50 (checked 2026-11-06): Graded with the lines for local packages and stdio MCP servers. Installs from the official npm package `email-agent-mcp` with npx, CI runs on Node 20 (20). A CI workflow with Vitest tests, Codecov and a spec-coverage gate; the run results weren't readable through GitHub's API that day, so partial (20 of 25). Open crash and regression issues couldn't be read because GitHub's API refused our requests for its rate limit (0, unchecked). Semver tags from v0.1.7 to v0.5.0 and auto-categorised GitHub Releases as the changelog, with no breaking changes marked in what we read (10 of 15). Pre-1.0 (0). Total 50.
- Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes.
- Schema & documentation 79 (checked 2026-11-06): Tools are defined with typed input schemas that the MCP SDK publishes as JSON Schema (25). README in five languages, AGENTS.md, CLAUDE.md and GEMINI.md; no llms.txt, which a local server doesn't need (5 of 10). The README's tool table marks each tool read, write or destructive and states provider limits, such as Gmail deletes removing drafts only (15 of 20). Typed inputs with options such as `list_style` (12 of 15). Setup examples per client and documented error behaviour, such as NOT_SUPPORTED on Gmail and sanitised errors (10 of 15). Semver tags and GitHub Releases (12 of 15). Total 79.
- Agent ergonomics 79 (checked 2026-11-06): 27 tools in the full profile, the 11 to 30 band, plus the `observe` profile as a read-only subset (20 of 25). List and search tools filter and page; we read the tool table, not every parameter (16 of 20). Errors are sanitised and use stable reasons such as NOT_SUPPORTED, failing closed before a Gmail mutation (15 of 20). readOnlyHint and destructiveHint on the tools in source; sends take no idempotency key (16 of 20). One npx command and a setup wizard for OAuth and mailbox choice; TypeScript only (12 of 15). Total 79.
- Security & auth 67 (checked 2026-11-06): OAuth to the person's own provider with the scopes each profile needs, tokens in the OS keychain, and an `observe` profile with Microsoft read scopes only. Gmail uses `gmail.readonly` and `gmail.compose`, and its code exchange and refreshes relay through a UseJunior-hosted broker that holds the client secret and says it stores no refresh tokens (25 of 30). Send allowlists, delete off by default behind an operator variable and a caller flag, inbox rules that block forwarding and deletion, and protected system folders (20). Receive allowlists limit whose mail the agent acts on; no guidance on treating message bodies as untrusted was found (9 of 15). No log of tool calls beyond the mailbox's own history (3 of 15). SECURITY.md with private reporting and acknowledgement within 3 business days, semgrep in CI; no bug bounty or advisories (10 of 20). Total 67.
- Payments & pricing 60 (checked 2026-11-06): Free, Apache-2.0 software with nothing to buy, scored 20 + 20 + 20 by the self-hosted rule. No payment protocol (0 of 40). Total 60.
- Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored.
- Maintenance & community 84 (checked 2026-11-06): v0.5.0 was tagged and published on 5 November 2026 (30). Nine npm releases in the 90 days from 8 August, v0.3.0 to v0.5.0 (20). Pull requests up to #234 merged in the history, all by the one maintainer; issue responses couldn't be read through GitHub's API that day (10 of 25). io.github.UseJunior/email-agent-mcp is in the official MCP registry with 0.5.0 marked latest (15). CI, commitlint, semgrep and Codecov workflows (9 of 10). Total 84.
- Transparency & trust 42 (checked 2026-11-06): Apache-2.0 with a LICENSE file (30). SECURITY.md says tokens and mail are handled locally over stdio with no network listener, and the broker README says mail never reaches the broker and refresh tokens aren't stored. The broker has no published privacy policy (22 of 30). No deprecation policy (0). No telemetry was found in the README or package manifests, and none is stated either way (10 of 20). Total 62.

Fix list, everything this grade says the listing lacks, the biggest gain first (17 items). What it covers is at https://www.anchorterminal.com/fixes/email-agent-mcp.md (JSON https://www.anchorterminal.com/fixes/email-agent-mcp.json). The whole list for a coding agent comes from `POST https://www.anchorterminal.com/api/v1/fix-list` with `{"listing": "email-agent-mcp", "plan": "read"}`, free while the beta runs

### What we couldn't check

- unchecked: open issues, CI run results and stars, because GitHub's API refused our requests for its rate limit on 6 November 2026
- The Gmail OAuth broker's operator terms and privacy policy weren't found
- Whether the server sends any telemetry isn't stated; none was found in the manifests read

### Sources

- repository and README: <https://github.com/UseJunior/email-agent-mcp> (seen 2026-11-06)
- security policy: <https://github.com/UseJunior/email-agent-mcp/blob/main/SECURITY.md> (seen 2026-11-06)
- Gmail OAuth broker README: <https://github.com/UseJunior/email-agent-mcp/blob/main/apps/oauth-broker/README.md> (seen 2026-11-06)
- tool sources with annotations: <https://github.com/UseJunior/email-agent-mcp/tree/main/packages/email-core/src/actions> (seen 2026-11-06)
- npm package record: <https://registry.npmjs.org/email-agent-mcp> (seen 2026-11-06)
- official MCP registry: <https://registry.modelcontextprotocol.io/v0/servers?search=email-agent-mcp> (seen 2026-11-06)

## Score history

Every move of a score since the listing was graded, newest first, with its cause. A score can't move without an entry here. JSON: https://www.anchorterminal.com/api/v1/tools/email-agent-mcp/history.json

- 2026-11-06: graded 65.9 B (methodology 0.7)

## Who's behind it (provenance 22/100, checked 2026-11-06)

| Check | Finding | Points |
| --- | --- | --- |
| Legal entity named | not found | 0/20 |
| Domain age | usejunior.com, no registry record we could read | 0/15 |
| Endpoint on the vendor's domain |  is not on usejunior.com | 0/15 |
| Terms of service | not found | 0/10 |
| Privacy policy | not found | 0/10 |
| Status page | not found | 0/10 |
| Changelog | published | 10/10 |
| security.txt | not found | 0/10 |
| People named | 4 named with their role, 4 with a public profile | 10/10 |
| Support route | help pages | 5/5 |

Published by UseJunior; the README links usejunior.com, and SECURITY.md asks for reports to the maintainer's usejunior.com address with acknowledgement within 3 business days.

No terms or privacy policy apply to the local server; the Gmail OAuth broker is a UseJunior-hosted service whose own terms weren't found.

The repository's CHANGELOG.md points to GitHub Releases as the canonical changelog.

GitHub's API refused our requests for its rate limit on 6 November 2026, so stars, issues and release pages weren't read; history and tags come from a shallow clone.

### Terms and privacy, as read

A reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice.

**Terms of service**. We found no terms of service published for this product, so there is nothing to read and the check scores 0.


**Privacy policy**. We found no privacy policy published for this product, so there is nothing to read and the check scores 0.


## Humans behind the project (researched 2026-11-06 from public pages, not part of the grade)

### Key people

- Steven Obiajulu, Founder and CEO, UseJunior; maintainer of email-agent-mcp. LinkedIn: https://www.linkedin.com/in/stevenobiajulu. GitHub: https://github.com/stevenobiajulu
- Joseph Obiajulu, CTO, UseJunior. LinkedIn: https://www.linkedin.com/in/joseph-obiajulu/. GitHub: https://github.com/jobiajulu
- David McCalib, COO, UseJunior. LinkedIn: https://www.linkedin.com/in/david-m-27548628/
- Marlo Obiajulu, Head of Marketing and Client Success, UseJunior. LinkedIn: https://www.linkedin.com/in/marlo-obiajulu-76a3801bb/. GitHub: https://github.com/marlo-obiajulu
- Note: UseJunior's entity file (usejunior.com/.well-known/ai/entity.json), read on 6 November 2026, names Steven Obiajulu as founder and Chief Executive Officer of UseJunior, legal name OM Innovation AI Inc., founded on 1 October 2024. Its about page and llms.txt list the leadership as Steven Obiajulu (CEO), Dr. Joseph Obiajulu (CTO), David McCalib (COO) and Marlo Obiajulu (Head of Marketing and Client Success), with the LinkedIn and GitHub links given here. Every commit in the email-agent-mcp repository is by Steven Obiajulu, who is its only npm maintainer. The company's postal address and personal email addresses are left out. No investors are named on usejunior.com (about, llms.txt, entity file, sitemaps), and one web search found no reported round, so none are listed.
- UseJunior (OM Innovation AI Inc.): LinkedIn https://www.linkedin.com/company/usejunior GitHub https://github.com/UseJunior

### Getting support

- Help: https://github.com/UseJunior/email-agent-mcp/issues
- Sources: https://github.com/UseJunior/email-agent-mcp, https://github.com/UseJunior/email-agent-mcp/blob/main/SECURITY.md, https://registry.npmjs.org/email-agent-mcp, https://usejunior.com/.well-known/ai/entity.json, https://usejunior.com/about, https://usejunior.com/llms.txt

## Live (updated 2026-11-07 18:16 UTC)

- github `UseJunior/email-agent-mcp` v0.5.0, released 2026-11-05
- mcp-registry `io.github.UseJunior/email-agent-mcp` 0.5.0
- npm `email-agent-mcp` 0.5.0
- security.txt: none
- Always current: https://www.anchorterminal.com/api/v1/live/email-agent-mcp.json

## Probe metrics

Not measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score.

## Strengths

- The `observe` profile requests read-only Microsoft scopes and drops every write tool
- Send allowlists, delete disabled by default and sanitised errors that strip keys and paths
- Tools carry readOnlyHint and destructiveHint annotations and are typed
- Apache-2.0, CI with tests and coverage, semgrep and semver tags with GitHub Releases
- Listed in the official MCP registry as io.github.UseJunior/email-agent-mcp, current at 0.5.0

## Weaknesses

- Pre-1.0, and every commit is by one maintainer
- On Gmail, labelling, flagging, marking read and moving return NOT_SUPPORTED
- Gmail sign-in and token refresh pass through a UseJunior-hosted broker that holds the client secret
- No audit log of what the agent did beyond the mailbox's own history
- Changing from `full` to `observe` on an existing mailbox doesn't shrink the OAuth token's scopes



## Before you call it (notes for agents)

1. Start with `get_mailbox_status`, then `list_emails` or `search_emails` before reading whole threads
2. Ask the person to set the send allowlist before planning any `send_email` or `reply_to_email`
3. Prefer `create_draft` and let the person send, unless they asked for sending
4. Expect NOT_SUPPORTED for label, flag, mark-read and move on Gmail, and don't request `gmail.modify` to work around it
5. Don't plan deletes; they need an operator environment variable and a caller flag

## Connect

Install:

```bash
npx -y email-agent-mcp
```

Claude Code:

```bash
claude mcp add email-agent-mcp -- npx -y email-agent-mcp
```

MCP client configuration:

```json
{
  "mcpServers": {
    "email-agent-mcp": {
      "args": [
        "-y",
        "email-agent-mcp"
      ],
      "command": "npx",
      "type": "stdio"
    }
  }
}
```

Through letme: https://letme.dev/email-agent-mcp. letme answers with the pick and how to call it direct. How it works: https://www.anchorterminal.com/letme/index.md

## Similar tools

Ranked by shared capabilities, then score. Same-category tools with no shared capability key are listed last.

| Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown |
| --- | --- | --- | --- | --- | --- | --- |
| Nylas Email API | A | 79.1 | 19 | mailbox.read, mailbox.search, mailbox.send, mailbox.drafts | no | https://www.anchorterminal.com/tools/nylas-email.md |
| Gmail API | A | 78.6 | 21 | mailbox.read, mailbox.search, mailbox.send, mailbox.drafts | no | https://www.anchorterminal.com/tools/gmail-api.md |
| EmailEngine | B | 68.8 | 267 | mailbox.read, mailbox.search, mailbox.send, mailbox.drafts | no | https://www.anchorterminal.com/tools/emailengine.md |
| Unipile | C | 61.3 | 619 | mailbox.read, mailbox.search, mailbox.send, mailbox.drafts | no | https://www.anchorterminal.com/tools/unipile.md |
| Himalaya | C | 57.9 | 770 | mailbox.read, mailbox.search, mailbox.send, mailbox.drafts | no | https://www.anchorterminal.com/tools/himalaya.md |
| Outlook Mail (Microsoft Graph) | C | 57.8 | 774 | mailbox.read, mailbox.search, mailbox.send, mailbox.drafts | no | https://www.anchorterminal.com/tools/outlook-mail-graph.md |

## Panel reviews (0)

Reviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): .

Desk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md

## Notable

- An `observe` scope profile asks Microsoft for read scopes only and removes every write tool; the README warns that a mailbox already granted write scopes keeps them in its token (source: <https://github.com/UseJunior/email-agent-mcp#scope-profiles>)
- Sends and replies are gated by a send allowlist, and delete tools need an operator environment variable plus a caller flag (source: <https://github.com/UseJunior/email-agent-mcp#tools>)
- On Gmail, label, flag, mark-read and move tools return NOT_SUPPORTED, and delete removes drafts only (source: <https://github.com/UseJunior/email-agent-mcp#tools>)
- Tools declare readOnlyHint and destructiveHint annotations in the source (source: <https://github.com/UseJunior/email-agent-mcp/tree/main/packages/email-core/src/actions>)
- 21 npm releases since 31 March 2026, the latest 0.5.0 on 5 November 2026 (source: <https://www.npmjs.com/package/email-agent-mcp>)

- #4 of 11 in Best mailbox access APIs for AI agents: https://www.anchorterminal.com/best/mailbox-access/index.md
- All 55 mailboxes comparisons: https://www.anchorterminal.com/compare/mailbox-access/index.md

## Compare

- [Aurinko Email API vs email-agent-mcp](https://www.anchorterminal.com/compare/aurinko-email-vs-email-agent-mcp.md): E 44.3 vs B 65.9
- [CloudPost vs email-agent-mcp](https://www.anchorterminal.com/compare/cloudpost-vs-email-agent-mcp.md): F 21.1 vs B 65.9
- [email-agent-mcp vs EmailEngine](https://www.anchorterminal.com/compare/email-agent-mcp-vs-emailengine.md): B 65.9 vs B 68.8
- [email-agent-mcp vs Fastmail API (JMAP)](https://www.anchorterminal.com/compare/email-agent-mcp-vs-fastmail.md): B 65.9 vs C 54.9
- [email-agent-mcp vs Gmail API](https://www.anchorterminal.com/compare/email-agent-mcp-vs-gmail-api.md): B 65.9 vs A 78.6
- [email-agent-mcp vs Himalaya](https://www.anchorterminal.com/compare/email-agent-mcp-vs-himalaya.md): B 65.9 vs C 57.9
- [email-agent-mcp vs Nylas Email API](https://www.anchorterminal.com/compare/email-agent-mcp-vs-nylas-email.md): B 65.9 vs A 79.1
- [email-agent-mcp vs Outlook Mail (Microsoft Graph)](https://www.anchorterminal.com/compare/email-agent-mcp-vs-outlook-mail-graph.md): B 65.9 vs C 57.8
- [email-agent-mcp vs Unipile](https://www.anchorterminal.com/compare/email-agent-mcp-vs-unipile.md): B 65.9 vs C 61.3
- [email-agent-mcp vs Zoho Mail API](https://www.anchorterminal.com/compare/email-agent-mcp-vs-zoho-mail.md): B 65.9 vs D 49.6

## Verify this listing

For the vendor. The badge or a plain link to this page verifies the listing, from a page on usejunior.com or one of its subdomains, the front page of github.com/usejunior or of one of its repositories, or the README at the root of github.com/UseJunior/email-agent-mcp. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{"slug": "email-agent-mcp", "url": "…"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify

HTML badge:

```html
<a href="https://www.anchorterminal.com/tools/email-agent-mcp"><img src="https://www.anchorterminal.com/badges/email-agent-mcp.svg" alt="email-agent-mcp on Anchor Terminal" height="20"></a>
```

Markdown badge, for a README:

```markdown
[![email-agent-mcp on Anchor Terminal](https://www.anchorterminal.com/badges/email-agent-mcp.svg)](https://www.anchorterminal.com/tools/email-agent-mcp)
```

Plain link:

```html
<a href="https://www.anchorterminal.com/tools/email-agent-mcp">email-agent-mcp on Anchor Terminal</a>
```

## Share this listing

For the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say email-agent-mcp is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score.

- Dark: https://www.anchorterminal.com/assets/share/email-agent-mcp-dark.png
- Light: https://www.anchorterminal.com/assets/share/email-agent-mcp-light.png

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
