Agent Email
NPM · EMAIL-AGENT-MCP · SCANNED SEP 20
Local email connectivity for AI agents — read, draft, send, and organize Outlook mail via MCP
Available components
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 → Why this is hard to score →
Supply Chain Security89
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects uuid 9.0.1, reached via @usejunior/email-mcp > @usejunior/provider-gmail > @googleapis/gmail > googleapis-common > uuid. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- 75 of 220 dependencies flagged as unhealthy (3 deprecated). View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to UseJunior/email-agent-mcp). View diagnostics → Pass
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 12 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability66
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2996 tokens (~115/item across 26 items; 26 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage78
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 22% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 26 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Agent Email MCP server?
Agent Email runs locally as an npm package, launched with npx -y email-agent-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · email-agent-mcp
claude mcp add usejunior-email-agent-mcp -- npx -y email-agent-mcp
{
"mcpServers": {
"usejunior-email-agent-mcp": {
"command": "npx",
"args": [
"-y",
"email-agent-mcp"
]
}
}
} {
"servers": {
"usejunior-email-agent-mcp": {
"command": "npx",
"args": [
"-y",
"email-agent-mcp"
]
}
}
} codex mcp add usejunior-email-agent-mcp -- npx -y email-agent-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"usejunior-email-agent-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"email-agent-mcp"
],
"enabled": true
}
}
} openclaw mcp add usejunior-email-agent-mcp --command npx --arg -y --arg email-agent-mcp
mcp_servers:
usejunior-email-agent-mcp:
command: "npx"
args: ["-y", "email-agent-mcp"] {
"McpServers": {
"usejunior-email-agent-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"email-agent-mcp"
]
}
}
} assistant mcp add usejunior-email-agent-mcp -t stdio -c npx -a -y email-agent-mcp
{
"mcpServers": {
"usejunior-email-agent-mcp": {
"command": "npx",
"args": [
"-y",
"email-agent-mcp"
]
}
}
} 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.
- 20 Sept 26 +1
- Stability: 0.97 → pass security
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 0
- Package version: 0.1.11 → 0.3.2 functional
- 16 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Sept 26 −3
- Stability: pass → 0.80 functional
- 11 Sept 26 +1
- Stability: 0.97 → pass security
- 9 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 7 Sept 26 +1
- Stability: 0.83 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 0.3.1 → 0.3.2 functional
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 20 Sept 2026 · Analysed npm/email-agent-mcp@0.3.2
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | UseJunior/email-agent-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/UseJunior/email-agent-mcp/.github/workflows/release.yml@refs/tags/v0.3.2 |
| Rekor log index | 2752556364 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:2c27d9fef0a48aed248a83715dd6f8a65e8f6585e464b60b7f605288bfda30da1bbfb01c7374675f2747beb10734b53a6cd2da74fcdbcc09ba3543d61 |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 1 finding
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| 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 |
Background: What a vulnerability scan can and cannot prove →
Dependencies 220 packages
| Packages resolved | 220 |
|---|---|
| Deprecated | 3 |
| Stale | 73 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
cancel_scheduled_send ~41
Cancel a pending provider-held scheduled send. Only verified scheduled drafts can be cancelled.
| Name | Type | Req | Description |
|---|---|---|---|
| mailbox | string | – | – |
| message_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| messageId | string | – | – |
| success | boolean | yes | – |
No examples provided.
create_draft ~414
Create an email draft. Supports body_file with YAML frontmatter. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | – | Files to attach. Each entry takes a sandboxed `path` or inline `base64`. |
| body | string | – | – |
| body_file | string | – | Path to a .md/.html/.txt file to use as the body. Sandboxed like attachment paths: relative paths resolve against the working directory only; files in an AGENT_EMAIL_ALLOWED_DIRS root must be given a… |
| cc | array | – | – |
| force_black | boolean | – | Wrap rendered HTML in a force-black div so Outlook dark mode does not hide the text. Default true. |
| format | string | – | Body format. 'markdown' (default) renders via GFM with line-break preservation; 'html' is passthrough; 'text' sends as plain text. |
| include_quoted | boolean | – | Include provider-assembled quoted history in preview.bodyHtml. This affects only the preview, never the stored or sent body. |
| mailbox | string | – | – |
| reply_all | boolean | – | Only relevant when reply_to is set. When false, the draft replies only to the original sender. Default true preserves reply-all behavior (cc the original thread). |
| reply_to | string | – | – |
| subject | string | – | – |
| to | – | – | Recipient address(es). Required for a new draft; optional with reply_to set, where recipients are derived from the parent message. When supplied alongside reply_to it replaces the provider-derived To… |
| Name | Type | Req | Description |
|---|---|---|---|
| draftId | string | – | – |
| error | object | – | – |
| preview | object | – | – |
| previewError | object | – | – |
| success | boolean | yes | – |
| warnings | array | – | – |
No examples provided.
create_folder ~45
Create a custom child mail folder (defaults to a child of Inbox)
| Name | Type | Req | Description |
|---|---|---|---|
| display_name | string | yes | – |
| mailbox | string | – | – |
| parent_folder | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| folder | object | – | – |
| success | boolean | yes | – |
No examples provided.
create_inbox_rule ~121
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | object | yes | – |
| conditions | object | yes | – |
| display_name | string | yes | – |
| exceptions | object | – | – |
| is_enabled | boolean | – | – |
| mailbox | string | – | – |
| sequence | integer | – | – |
| user_explicitly_approved | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| rule | object | – | – |
| success | boolean | yes | – |
No examples provided.
delete_email ~55
Delete an email (disabled by default, requires explicit configuration)
| Name | Type | Req | Description |
|---|---|---|---|
| hard_delete | boolean | – | – |
| id | string | yes | – |
| mailbox | string | – | – |
| user_explicitly_requested_deletion | boolean | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| success | boolean | yes | – |
No examples provided.
delete_folder ~62
Delete a custom mail folder, including any mail it contains (disabled by default, requires explicit configuration). Well-known/system folders are protected.
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | yes | – |
| mailbox | string | – | – |
| user_explicitly_requested_deletion | boolean | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| success | boolean | yes | – |
No examples provided.
delete_inbox_rule ~71
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| mailbox | string | – | – |
| user_explicitly_requested_deletion | boolean | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| success | boolean | yes | – |
No examples provided.
download_attachment ~73
Download a single attachment as inline base64. Default max_size_mb=5 (hard ceiling 25). File attachments only — Microsoft item/reference attachments return NOT_SUPPORTED.
| Name | Type | Req | Description |
|---|---|---|---|
| attachment_id | string | yes | – |
| mailbox | string | – | – |
| max_size_mb | integer | – | – |
| message_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| base64 | string | – | – |
| error | object | – | – |
| filename | string | – | – |
| mimeType | string | – | – |
| original_filename | string | – | – |
| size | number | – | – |
| success | boolean | yes | – |
No examples provided.
flag_email ~40
Flag or unflag an email as important/starred
| Name | Type | Req | Description |
|---|---|---|---|
| flagged | boolean | – | – |
| id | string | yes | – |
| mailbox | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| success | boolean | yes | – |
No examples provided.
get_mailbox_status ~28
Get mailbox connection status, unread count, and warnings
| Name | Type | Req | Description |
|---|---|---|---|
| mailbox | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| isDefault | boolean | yes | – |
| name | string | yes | – |
| provider | string | yes | – |
| status | string | yes | – |
| warnings | array | yes | – |
No examples provided.
get_thread ~97
Retrieve all messages in a conversation thread by message ID. A thread can end with an unsent draft reply: a message with `isDraft: true` has NOT been sent, so it is not a sent reply — though earlier sent replies from the same author may exist elsewhere in the thread. Never describe such a message as a sent, delivered, or received email.
| Name | Type | Req | Description |
|---|---|---|---|
| mailbox | string | – | – |
| message_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| isTruncated | boolean | – | – |
| messageCount | number | yes | – |
| messages | array | yes | – |
| subject | string | yes | – |
No examples provided.
label_email ~46
Apply labels or categories to one or more emails
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | – |
| ids | array | – | – |
| labels | array | yes | – |
| mailbox | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| success | boolean | yes | – |
No examples provided.
list_attachments ~32
List attachments for a specific email message
| Name | Type | Req | Description |
|---|---|---|---|
| mailbox | string | – | – |
| message_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | yes | – |
No examples provided.
list_emails ~119
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.
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | – | – |
| limit | number | – | – |
| mailbox | string | – | – |
| offset | number | – | – |
| unread | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| emails | array | yes | – |
No examples provided.
list_folders ~29
Recursively list mail folders, including computed paths for nested folders
| Name | Type | Req | Description |
|---|---|---|---|
| mailbox | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| folders | array | – | – |
| success | boolean | yes | – |
No examples provided.
list_inbox_rules ~30
List server-side inbox rules with all fields reported by the provider
| Name | Type | Req | Description |
|---|---|---|---|
| mailbox | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| rules | array | – | – |
| success | boolean | yes | – |
No examples provided.
list_mailboxes ~69
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| mailboxes | array | yes | – |
No examples provided.
list_scheduled_sends ~28
List pending provider-held scheduled sends for a mailbox
| Name | Type | Req | Description |
|---|---|---|---|
| mailbox | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| scheduledSends | array | yes | – |
No examples provided.
mark_read ~38
Mark an email as read or unread
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| is_read | boolean | – | – |
| mailbox | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| success | boolean | yes | – |
No examples provided.
move_to_folder ~61
Move an email to a specific folder (inbox, archive, trash, etc.). Returns the new message ID since Graph assigns a new ID after moving.
| Name | Type | Req | Description |
|---|---|---|---|
| folder | string | yes | – |
| id | string | yes | – |
| mailbox | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| newId | string | – | – |
| success | boolean | yes | – |
No examples provided.
read_email ~400
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 HTML costs far more tokens than markdown, so leave the default alone unless you need the styling; check `bodyFormat` (`text` means the message had no HTML part, so do not send it as HTML) before writing a body back, and never write one back with `bodyTruncated: true` — you do not have the whole body. strip_quoted_history and strip_signatures are markdown-shaped text transforms and are NOT applied when format is 'html'; the HTML is returned verbatim. To write it back, call create_draft/update_draft with format: 'html' AND force_black: false — force_black defaults to true and wraps your HTML in a force-black div, so leaving it on nests another wrapper on every round trip. Set strip_quoted_history to true to drop the terminal "On … wrote:" / Outlook-header / `>`-prefix reply chain and replace it with a short marker. Set strip_signatures to true to remove detected signatures and legal disclaimers; it defaults to false here for MCP compatibility even though the core action defaults to true.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | – |
| id | string | yes | – |
| mailbox | string | – | – |
| strip_quoted_history | boolean | – | – |
| strip_signatures | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | – | – |
| bcc | array | yes | – |
| body | string | yes | – |
| bodyFormat | string | yes | – |
| bodyTruncated | boolean | – | – |
| cc | array | yes | – |
| from | string | yes | – |
| id | string | yes | – |
| isDraft | boolean | yes | – |
| receivedAt | string | yes | – |
| subject | string | yes | – |
| to | array | yes | – |
No examples provided.
reply_to_email ~274
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.
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | – | Files to attach. Each entry takes a sandboxed `path` or inline `base64`. |
| body | string | yes | – |
| cc | array | – | – |
| draft | boolean | – | – |
| force_black | boolean | – | Wrap rendered HTML in a force-black div so Outlook dark mode does not hide the text. Default true. |
| format | string | – | Body format. 'markdown' (default) renders via GFM with line-break preservation; 'html' is passthrough; 'text' sends as plain text. |
| include_quoted | boolean | – | Include provider-assembled quoted history in preview.bodyHtml for draft replies. This affects only the preview, never the stored or sent body. |
| mailbox | string | – | – |
| message_id | string | yes | – |
| reply_all | boolean | – | When false, reply only to the original sender. Default true preserves reply-all behavior (cc the original thread). |
| Name | Type | Req | Description |
|---|---|---|---|
| draftId | string | – | – |
| error | object | – | – |
| messageId | string | – | – |
| preview | object | – | – |
| previewError | object | – | – |
| success | boolean | yes | – |
No examples provided.
search_emails ~108
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | – |
| mailbox | string|null | – | – |
| offset | number | – | – |
| query | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| emails | array | yes | – |
No examples provided.
send_draft ~94
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.
| Name | Type | Req | Description |
|---|---|---|---|
| draft_id | string | yes | – |
| mailbox | string | – | – |
| scheduled_send_at | string | – | Future ISO 8601 delivery time with an explicit timezone. Accepted values are normalized to UTC. |
| Name | Type | Req | Description |
|---|---|---|---|
| error | object | – | – |
| messageId | string | – | – |
| scheduledSendAt | string | – | – |
| success | boolean | yes | – |
No examples provided.
send_email ~288
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.
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | – | Files to attach. Each entry takes a sandboxed `path` or inline `base64`. |
| body | string | – | – |
| body_file | string | – | Path to a .md/.html/.txt file to use as the body. Sandboxed like attachment paths: relative paths resolve against the working directory only; files in an AGENT_EMAIL_ALLOWED_DIRS root must be given a… |
| cc | array | – | – |
| draft | boolean | – | – |
| force_black | boolean | – | Wrap rendered HTML in a force-black div so Outlook dark mode does not hide the text. Default true. Ignored when format is "text". |
| format | string | – | Body format. 'markdown' (default) renders via GFM with line-break preservation; 'html' is passthrough; 'text' sends as plain text. |
| mailbox | string | – | – |
| scheduled_send_at | string | – | Future ISO 8601 delivery time with an explicit timezone. Accepted values are normalized to UTC. |
| subject | string | – | – |
| to | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| draftId | string | – | – |
| error | object | – | – |
| messageId | string | – | – |
| preview | object | – | – |
| previewError | object | – | – |
| scheduledSendAt | string | – | – |
| success | boolean | yes | – |
No examples provided.
update_draft ~333
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, and attachments remain editable. Allowlist is enforced at send_draft time, not here.
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | – | Files to attach. Omit to preserve the draft's existing attachments; provide an array (possibly empty) to replace them entirely. |
| body | string | – | – |
| body_file | string | – | Path to a .md/.html/.txt file to use as the body. Sandboxed like attachment paths: relative paths resolve against the working directory only; files in an AGENT_EMAIL_ALLOWED_DIRS root must be given a… |
| cc | array | – | – |
| draft_id | string | yes | – |
| force_black | boolean | – | Wrap rendered HTML in a force-black div so Outlook dark mode does not hide the text. Default true. |
| format | string | – | Body format. 'markdown' (default) renders via GFM with line-break preservation; 'html' is passthrough; 'text' sends as plain text. |
| include_quoted | boolean | – | Include provider-assembled quoted history in preview.bodyHtml. This affects only the preview, never the stored or sent body. |
| mailbox | string | – | – |
| replace_body | boolean | – | Required as true to replace the body of a non-reply draft wholesale. Reply draft bodies cannot be edited; create a new draft instead. |
| subject | string | – | – |
| to | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| draftId | string | – | – |
| error | object | – | – |
| preview | object | – | – |
| previewError | object | – | – |
| success | boolean | yes | – |
| warnings | array | – | – |
No examples provided.
What is the Agent Email MCP server?
Agent Email is an MCP server listed in the public MCP registry as io.github.UseJunior/email-agent-mcp. Local email connectivity for AI agents, read, draft, send, and organize Outlook mail via MCP. This page covers its npm package (email-agent-mcp).
Is the Agent Email MCP server safe to use?
Agent Email scores 89 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Agent Email MCP server expose?
Agent Email exposes 26 tools: list_emails, read_email, search_emails, get_mailbox_status, list_mailboxes, and 21 more. Their descriptions and schemas cost roughly 2,996 tokens of context every time the server is loaded.
Is the Agent Email MCP server still maintained?
Agent Email is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Agent Email MCP server under?
Agent Email declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.