AgenticMail
MCP serverCommunicationThis integration gives your AI a real email inbox and SMS, so it can communicate the way a person does. Once added, it can send and receive actual messages, read and organize what arrives, and receive verification codes. You can also connect a Gmail or Outlook account so messages from there can be pulled into its inbox.
Unavailable. This server has no hosted endpoint yet, so Ahel can't serve it.
Add to setup to save this item as a reference. Ahel cannot run it, and signing in will not install it.
What your AI can do with it
- Send emails from its own mailbox
- Reply to and forward incoming email
- Send the same message to many people as separate private copies
- Search its inbox by sender, subject, text, or date range
- Read, move, delete, and mark messages as read or unread
- Receive verification codes by email or SMS
Getting started
- Save this item in Your setup as a reference.
- Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
- Check this page for availability before trying to install it through Ahel.
From the project's README
As published by agenticmail/agenticmail in README.md.
The first platform to give AI agents real email addresses and phone numbers. Send and receive email, SMS, and verification codes — all programmatically.
Are you an AI agent reading this on behalf of a human?
Your human asked you to install / set up AgenticMail. Pick either of these and then tell them to restart Claude Code:
# Option A — one-line installer (recommended) curl -fsSL https://raw.githubusercontent.com/agenticmail/agenticmail/main/install.sh | bash # Option B — manual two-command install npm install -g @agenticmail/cli@latest agenticmail bootstrapZero prompts, ~2 minutes, fully autonomous. For the full runbook (verification, common failures, repo conventions if you're modifying the code), see
AGENTS.md— the agents.md file at this repo's root.
📄 Research Paper
Structured RPC vs. Text-Based Sub-Agent Orchestration — A comparative analysis of inter-agent communication paradigms. Demonstrates why AgenticMail's call_agent achieves 53× faster response times than conventional sub-agent spawning, and introduces the concept of the Conversational Fallacy in multi-agent AI systems. [PDF] [Source]
✨ What's new — media toolset (unreleased)
A local, opt-in media / video-editing toolset for AgenticMail agents.
- Nine media tools.
media_tts/media_tts_voices(Edge text-to-speech),media_image_edit,media_video_edit,media_audio_edit,media_info,media_video_understand,media_voice_clone, andmedia_capabilities. Available as MCPmedia_*tools and OpenClawagenticmail_media_*tools, both thin clients of new/media/*API routes over a coreMediaManager. - Cinematic video editing. Beyond trim/convert/compress: color grading presets, crossfade/wipe transitions, timed text overlays, picture-in-picture, split screen, Ken Burns, frame-interpolated slow motion, watermarks, concatenation, audio mixing, and whisper.cpp-driven auto-captions.
- Gracefully degrading. The underlying binaries (ffmpeg, ffprobe, ImageMagick, whisper.cpp, Python) are not bundled — every tool feature-detects the binary it needs and returns an actionable install hint if it is missing. The server never crashes. A
mediablock on/healthand themedia_capabilitiestool surface what is available. - Safe by construction. Every binary is invoked via
execFilewith an argument array — no shell, no string interpolation. Untrusted input paths are validated (no control characters, no leading-dash flag-injection, must exist); numeric options are clamped; every call carries a bounded timeout and output buffer; output files land only inside the configured media directory.
✨ What's new in 0.9.54
Twilio joins 46elks as a phone transport provider.
- Pick your carrier.
PhoneTransportProvideris now46elksortwilio— chosen at phone setup. 46elks behaviour is unchanged; Twilio is at full parity (outbound call-control + realtime voice). - Twilio call-control. Outbound calls via the Twilio
Calls.jsonREST API, TwiML webhooks, status-callback cost tracking. Inbound webhooks are verified with theX-Twilio-Signatureheader (HMAC-SHA1, timing-safe, fail-closed) on top of the per-mission token. - Twilio realtime voice. A Twilio Media Streams ↔ OpenAI Realtime bridge.
RealtimeVoiceBridgewas generalised behind aRealtimeTransportAdapterseam — one bridge serves both carriers, function-calling / barge-in / transcript logic written once. Twilio audio is G.711 µ-law @ 8 kHz and the OpenAI session usesaudio/pcmu, so a Twilio call needs no transcoding. A<Connect><Stream>connects to/api/agenticmail/calls/twilio-stream.
1038 tests pass; full build green. The live Twilio ↔ OpenAI call path still needs an operator smoke-test before the npm publish.
✨ Earlier — 0.9.53
Realtime voice tools + a Telegram channel.
- The voice agent can now use tools mid-call. The OpenAI Realtime session declares
session.tools;RealtimeVoiceBridgedispatches the model's function calls through an injectedToolExecutor, returnsfunction_call_output, and keeps the phone line warm during slow tools with a safety-net timeout + an in-flight call cap. ask_operator— human-in-the-loop on a live call. The agent records an operator query on the mission, notifies the operator (channel-agnostic; default email), polls up to ~5 min, and resumes with the answer. If the caller hangs up while a query is pending, the mission is flagged for callback-on-disconnect — once the operator answers, it re-dials with a continuity task.- Lookup tools.
web_search(keyless DuckDuckGo, results fenced as untrusted content),recall_memory(the agent's universal memory),get_datetime. Plus agent-key-scoped operator-query API endpoints. - Telegram channel. A user registers a Telegram bot token, links a chat, and can message their AgenticMail agent — and get replies — over Telegram. The inbound webhook authenticates with a constant-time secret-token compare; it also carries
ask_operatornotifications and approvals. - Security. web_search output is fenced as untrusted before it reaches the model; operator email replies are verified against
operatorEmail; Telegram bot tokens are encrypted at rest and redacted from logs; new SQL is parameterized.
996 tests pass; full build green. The live OpenAI ⇄ 46elks call path and live Telegram delivery still need an operator smoke-test before the npm publish.
✨ Earlier — 0.9.52
Realtime voice + OpenClaw memory.
- Realtime voice bridge. A phone mission can now hold a live conversation.
RealtimeVoiceBridge(@agenticmail/core) wires an OpenAI Realtime (gpt-realtime) session to a 46elks realtime-media WebSocket: caller audio (PCM16 @ 24 kHz) is relayed to OpenAI, synthesised speech comes back asresponse.output_audio.deltaand is relayed to 46elks, server-side VAD handles turn-taking, and caller barge-in fires a 46elksinterrupt. 46elks streams a call to the new/api/agenticmail/calls/realtimeWebSocket endpoint, which matches the connection to its mission by 46elkscallidand runs the bridge. SetOPENAI_API_KEY(env orconfig.json) to enable it. - Memory in the voice session. Before the call starts, the agent's persistent memory is rendered with
generateMemoryContext()and folded into the Realtime sessioninstructions— the model is told to treat it as its own long-term knowledge, so the call is continuous with everything the agent has learned elsewhere. - OpenClaw memory tools.
agenticmail_memory,agenticmail_memory_reflect,agenticmail_memory_context, andagenticmail_memory_statsbring the universal per-agent memory to OpenClaw agents — 69 → 73 tools. - Bridge hardening. Per-frame audio size cap (an oversized frame is dropped, never forwarded), bounded pre-connect buffer, fail-closed connection auth (timing-safe token compare; no unknown-mission-vs-wrong-token oracle), and a terminal-state guard so a late event can't resurrect a finished mission.
The end-to-end voice path needs a live OPENAI_API_KEY and a provisioned 46elks websocket number — the bridge logic, memory injection, and the WebSocket upgrade/auth glue are unit-tested with mocked sockets, but the live call must be smoke-tested by the operator.
✨ Earlier — 0.9.51
The universal memory release. Every agent now has a persistent, evolving memory — categorised, confidence-decaying, BM25F-searchable knowledge that survives across every conversation, the way a human employee learns on the job.
AgentMemoryManager(@agenticmail/core) — CRUD, text recall, 9 memory categories, importance levels, confidence that decays for unaccessed entries, access tracking, pruning, andgenerateMemoryContext()which ranks + renders memory as a markdown block for prompt injection. Backed by a zero-dependency BM25F search index and anagent_memorytable. Ported from the AgenticMail Enterprise memory engine, org-stripped — memory is personal to each agent.- Memory API —
/memory(set / list / search / get / delete),/memory/reflect,/memory/context,/memory/stats. Every endpoint is scoped to the authenticated agent; an agent can only ever read or write its own memory. - MCP tools —
memory,memory_reflect,memory_context,memory_statsso any MCP client can give its agent durable memory. - Agent-deletion cleanup — deleting an agent purges its
agent_memoryrows; no orphaned memory is left behind.
✨ Earlier — 0.9.1
The visibility release — closes every "what just happened?" gap from 0.9.0.
- Lone wakes fire immediately. 0.9.0's debounce window blocked even single replies for 30 s, making the dispatcher look dead. Leading-edge fire + trailing-edge coalesce now: first event for a
(agent, thread)spawns instantly; bursts within the window collapse into one trailing wake. - Dispatcher process heartbeat.
check_activitynow showsdispatcher: { state: 'alive' | 'unhealthy' | 'missing', uptimeMs, channels, coalesceQueueSize, ... }. The host can finally answer "is the dispatcher up?" in one query. - Skipped-wake ring buffer. Every filter decision (thread-closed, allowlist-excluded, wake-on-cc, budget-exhausted) is posted with a reason;
check_activitysurfaces the last 100. No more "did my mail land? did it skip?" guessing. - Per-agent
wake_on_cc: falseflag. Coder agents can register a preference: never wake when only on Cc, regardless of sender.PATCH /accounts/:id/wake-on-cc. - Display-name regex fix in
deriveDefaultWakeList. Senders using"Vesper <vesper@localhost>"form no longer fall through to "no allowlist → wake everyone". - Web UI shows To / Cc / Bcc as separate labeled rows in the message view (previously lumped under one
to:line). docs/wake-patterns.mddocuments every wake shape + 5 recommended patterns.
✨ Earlier — 0.9.0
The wake-context release. Multi-agent thread cost goes from linear-in-thread-length to roughly flat.
- Layered wake-context system. Every wake used to re-read the entire thread from scratch (12 messages × ~1 KB = 12 KB of token spend just to rehydrate, before any reasoning). Now the dispatcher prepends two blocks to every wake prompt: Layer 1 — ThreadCache (envelopes + previews of the last 10 messages, shared across CC'd agents) and Layer 2 — AgentMemory (a markdown file each agent writes at end-of-wake describing its own commitments and last actions). Agents read the new event + these two blocks and decide; they don't
read_emailprior history. New MCP toolssave_thread_memoryandget_thread_id. wakedefault flipped from "everyone CC'd" → "To: only". Mirrors the email convention: To is for action, CC is for awareness. CC'd local agents still receive the mail in their inbox but don't get a Claude turn unless explicitly named inwake. Opt back into the old behaviour withwake: 'all'.- Wake coalescing. Within 30 s for the same
(agent, thread), multiple wake events collapse into ONE Claude turn. A burst of 4 quick replies becomes one Claude wake that sees all four in acoalescedbatch prompt. Wake-budget charges once. Configurable viawakeCoalesceMs.
Together these eliminate the "wake-thrash" failure mode where an agent fired 4 near-identical status reports because a designer sent 4 replies in 2 minutes.
✨ Earlier — 0.8.31
- Compact-and-continue — workers can now run across multiple SDK turns. On a context-overflow error the dispatcher synthesises a breadcrumb checkpoint from the captured log, builds a "resuming after context reset" continuation prompt, and loops (capped at 4 iterations).
- Typed task contracts —
call_agent/POST /tasks/assignaccept anoutputSchema(JSON Schema, draft-7 subset).submit_resultvalidates against it; mismatches return 400 with the validator errors so the worker can retry with a corrected shape. - Delete + Move-to-Spam buttons in the message view; Compose auto-saves to Drafts every 2s.
All Mailfolder hides itself on servers that don't have one (Stalwart, most non-Gmail). Select-all checkbox now wires through.- Logo background stripped — bow PNG is now RGBA with proper transparency.
✨ Earlier — 0.8.29
- Star button wired — clicking the star toggles IMAP's
\Flaggedflag via the newPOST /mail/messages/:uid/starendpoint. Backed byMailReceiver.setStarredin@agenticmail/core. Optimistic UI; revert on failure. - Gmail-compact list UX — single 36 px rows (was 64 px stacked), subject + preview on one truncated line separated by an em-dash, leading checkbox column, sticky list-toolbar with select-all + refresh + count. Same layout for every folder.
- Compose button down to 48 px (Gmail's actual size); the giant pink pill is gone.
✨ Earlier — 0.8.27
- Folder bug fix — Sent / Drafts / Spam / Trash were returning empty in the web UI because hard-coded folder names didn't match Stalwart's actual IMAP names (e.g.
Sent ItemsnotSent). Now auto-discovered per agent and matched against every common server convention (Stalwart, Gmail, Outlook, macOS Mail). - Two-line preview on every list row — web UI uses
/mail/digest?folder=…everywhere instead of/mail/inbox(no preview) +/mail/folders/:folder(no preview). - URL reflects current folder — hash router now uses
#/folder/<id>(sent, drafts, spam, …). Back/forward works, URLs are shareable, refresh stays put. - Stop hook output rewritten — terser, audience-neutral, includes body preview. Drops the instruction-leakage from 0.8.25/26.
✨ Earlier — 0.8.25
- Workers can now run for hours — dropped the 30-min hard timeout. Each worker writes a per-turn log at
~/.agenticmail/worker-logs/<id>.log, posts heartbeats every 30 s, and runs in its own isolated cwd so parallel agents don't clobber each other's output. New MCP tooltail_workerto read a running worker's log live;check_activitynow shows last tool used, turn count, and astaleflag (no auto-eviction). - Autonomous-mode awareness — the mail hook now registers on the Stop event too. Long headless Claude Code runs (no user prompts firing for hours) finally see teammate replies — the hook returns
decision: 'block'at turn boundaries when the bridge inbox has new mail, forcing Claude to continue with the new-mail summary in context. Closes the follow-up that 0.8.23 filed. - Fixed
agenticmail-mail-hook: command not founderrors — hook is now registered with an absolute path resolved at install time. Resilient to any$PATHconfiguration; old installs auto-heal on the nextagenticmail claudecoderun. - Web UI fixes —
(m.flags ?? []).includes is not a functioncrash gone; sidebar folders (Sent / Drafts / Spam / Trash) now load their real IMAP mailboxes instead of all hitting/mail/inbox; Cmd+C no longer pops the compose modal; full mobile-responsive layout with an off-canvas sidebar. - Official logos — Claude starburst (from Wikipedia) and the AgenticMail
@mark frombranding/now ship bundled and render as the host avatar + topbar / favicon. - Selective wake —
wake: ["alice", "bob"]onsend_email/reply_email/forward_email/template_send/manage_drafts(send)tells the dispatcher to give a Claude turn only to named agents. The other CC'd recipients still receive the mail but stay asleep. Cuts token cost on large threads by ~10× when used. - Thread-close markers —
[FINAL],[DONE],[CLOSED], or[WRAP]in a subject tells the dispatcher this thread is done; no more wakes on any reply. check_activityMCP tool — see which agents the dispatcher has woken right now, how long they've been running, and a preview of recent completions. The answer to "did the agent I just emailed actually start working?"- Comprehensive markdown rendering in the shell's email viewer — bold, italic, headings, lists, task lists, tables, fenced code, links, images, HTML entities, depth-colored quote stripes (instead of literal
>>>>). - LLM-tolerant tool inputs —
batch_mark_read({ uids: "[1,2,3]" })and other common stringification mistakes now just work; coerced before validation. - Wake-budget circuit breaker — caps per-(agent, thread) wakes at 10 per 24h to stop reply loops and storms.
- Dedup guidance — wake prompts now tell agents to check their prior contributions before redoing work.
See CHANGELOG.md for the full release history.
AgenticMail is a self-hosted communication platform purpose-built for AI agents. It runs a local Stalwart mail server via Docker, integrates SMS/phone access via Google Voice or 46elks, exposes a REST API with 75+ endpoints, ships a lightweight Gmail-style web UI for human oversight, and works with any MCP-compatible AI client and OpenClaw via plugin. Each agent gets its own email address, phone number, inbox, and API key.
Table of Contents
- Why AgenticMail?
- Features
- Architecture
- Quick Start
- CLI Commands
- Gateway Modes
- Packages
- API Overview
- MCP Integration
- Host Integrations
- OpenClaw Integration
- Interactive Shell
- Security
- Configuration
- Development
- License
Why 🎀 AgenticMail?
AI agents need to communicate with the real world. Email is the universal communication protocol — every person and business has an email address. AgenticMail bridges the gap between AI agents and email by providing:
- Isolated mailboxes — each agent has its own email address, inbox, and credentials. Agents can't read each other's mail.
- Internet email connectivity — two gateway modes to send/receive real email (Gmail relay or custom domain with DKIM/SPF/DMARC).
- Security guardrails — outbound scanning prevents agents from leaking API keys, passwords, or PII. Blocked emails require human approval.
- Agent collaboration — agents can email each other, assign tasks, and make synchronous RPC calls.
- SMS / Phone number access — integrate Google Voice or 46elks for SMS receive/send, verification code extraction, and phone number access for AI agents.
- Realtime voice calls — bridge a phone mission to an OpenAI Realtime (
gpt-realtime) session so an agent can hold a live two-way conversation, with its persistent memory folded into the call. - Persistent agent memory — every agent has a categorised, confidence-decaying, searchable long-term memory that survives across conversations and is injected into prompts and voice sessions.
- Smart orchestration —
call_agentreplaces basic sub-agent spawning with auto mode detection, dynamic timeouts, runtime tool discovery, and async execution for long-running tasks. - Tool integrations — 100 MCP tools for any AI client, 89 OpenClaw tools, and a 44-command interactive shell.
- Self-updating —
agenticmail updatechecks npm, verifies OpenClaw compatibility, and updates both packages automatically.
Features
Email Operations
- Send email with text, HTML, attachments, CC/BCC, reply-to, and custom headers
- Receive email via IMAP with real-time SSE event streaming (IMAP IDLE)
- Reply and forward with proper In-Reply-To and References headers for threading
- Search by sender, subject, body text, date range, read/unread status
- Folders — create, list, move messages between folders
- Batch operations — mark read/unread, delete, move multiple messages at once
- Drafts — save, edit, and send draft emails
- Templates — reusable email templates with variable substitution
- Scheduled sending — queue emails for future delivery
- Signatures — per-agent email signatures
- Tags — label and categorize messages
- Contacts — manage address book per agent
Multi-Agent
- Account management — create, list, delete agents with unique email addresses
- Agent-to-agent email — agents can email each other directly via
@localhost - Task system — assign tasks to agents, claim, submit results, track status
- RPC calls — synchronous agent-to-agent calls with timeout (long-poll + SSE notification)
- Agent directory — discover other agents by name
You can watch the whole team work in one place with agenticmail shell:
That's a real multi-agent thread captured in the REPL — the host kicked off one email, Solène verified the file Cassian shipped to disk, and every step is sitting there as ordinary mail. No custom orchestration code. Type agenticmail shell any time you want to see what your agents have been up to.
Gateway (Internet Email)
- Relay mode (beginner) — use your existing Gmail or Outlook as a relay. Emails appear as
you+agentname@gmail.com. Setup takes 2 minutes. - Domain mode (advanced) — custom domain via Cloudflare. Agents send from
agent@yourdomain.comwith full DKIM signing, SPF, and DMARC records.- Automatic DNS configuration (MX, SPF, DKIM TXT, DMARC, tunnel CNAME)
- Cloudflare Tunnel for secure inbound traffic without exposing ports
- Cloudflare Email Worker for Email Routing (catch-all → worker → AgenticMail)
- Optional Gmail SMTP outbound relay for residential IPs without PTR records
- Domain purchase via Cloudflare Registrar
- DNS backup before any modifications
- Automatic
@domainemail alias for all existing agents
What setup-email actually exposes — read before connecting a relay
Heads-up for anyone running
agenticmail setup-email(or telling Claude / Codex to do it for them). Once that command succeeds, your sub-agents are reachable from the public internet via Gmail / Outlook plus-addressing. This is the design — not a bug — but the implications surprise some operators:
Shortened here. Read the whole README on GitHub.
Tools it gives your AI (101)
| Tool | What it does |
|---|---|
| send_email | Send an email from the agent's mailbox. The PRIMARY primitive for multi-agent coordination. |
| broadcast_email | Send the SAME email to N agents as N SEPARATE, ISOLATED emails — no CC, no shared thread. Each recipient sees ONLY their own address on the `To:` line and reads the message as a private 1:1 from you. |
| list_inbox | List recent emails in the agent's inbox |
| read_email | Read the full content of a specific email by its UID |
| delete_email | Delete an email by its UID |
| search_emails | Search emails by criteria (from, to, subject, text, date range). By default searches the local inbox only. |
| import_relay_email | Import an email from the connected Gmail/Outlook account into the agent's local inbox. |
| reply_email | Reply to an email. Fetches the original message, auto-fills To, Subject (Re:), In-Reply-To, and References, then sends with quoted body. |
| forward_email | Forward an email to another recipient. Outbound guard applies — HIGH severity content is held for review. |
| move_email | Move an email to another folder (e.g., Trash, Archive) |
| mark_unread | Mark an email as unread |
| mark_read | Mark an email as read |
| list_folders | List all mail folders/mailboxes |
| list_folder | List messages in a specific folder |
| batch_delete | Delete multiple emails by UIDs |
| batch_mark_read | Mark multiple emails as read |
| manage_contacts | List, add, or delete contacts |
| manage_drafts | List, create, update, send, or delete drafts. On send, you can pass `wake` to limit which local recipients get a host turn — same semantics as send_email. |
| manage_scheduled | Manage scheduled emails: create a new scheduled email, list pending ones, or cancel one. |
| create_folder | Create a new mail folder for organizing emails |
| manage_tags | Create, list, delete tags, tag/untag messages, get messages by tag, or get all tags for a specific message. |
| create_account | Create a new AgenticMail agent (email account + identity + API key + persona derived from role/metadata). Requires master API key. |
| setup_operator_email | Save the operator's notification email address for bridge-escalation alerts. When sub-agents mail a host bridge (e.g. |
| setup_email_relay | Configure Gmail/Outlook relay for sending real internet email (requires master API key). BEGINNER-FRIENDLY: Just needs a Gmail/Outlook email + app password. Agents send as user+agentname@gmail.com. |
| setup_email_domain | Set up a custom domain for real internet email via Cloudflare (requires master API key). ADVANCED: Requires Cloudflare account, API token, and a domain. |
| setup_guide | Get a comparison of email setup modes (Relay vs Domain) AND the optional channels — realtime voice (OPENAI_API_KEY), phone call-control with a 46elks-vs-Twilio provider choice, and the Telegram... |
| setup_gmail_alias | Get step-by-step instructions (with exact field values) to add an agent email as a Gmail "Send mail as" alias. Returns the Gmail settings URL and all field values. |
| setup_payment | Get instructions for adding a payment method to Cloudflare (required before purchasing domains). Returns Option A (self-service link) and Option B (browser automation steps). |
| purchase_domain | Search for available domains via Cloudflare Registrar (requires master API key). NOTE: Cloudflare API only supports READ access — domains must be purchased manually at https://dash.cloudflare.com or... |
| check_gateway_status | Check the current email gateway status — relay mode, domain mode, or not configured |
| send_test_email | Send a test email through the gateway to verify configuration (requires master API key) |
| list_agents | List all AI agents in the system with their email addresses and roles. Use this to discover which agents you can call via call_agent (sync RPC) or email via send_email / message_agent (async). |
| message_agent | Async fire-and-forget: deliver a message to another AI agent's inbox. They will process it on their own schedule (immediately if a dispatcher is attached, later otherwise) and may reply by email. |
| check_messages | Check for new unread messages from other agents or external senders. Returns a summary of pending communications. Use this to stay aware of requests and coordinate with other agents. |
| delete_agent | Delete an agent account. Archives all emails and generates a deletion report before removing the account permanently. Returns the deletion summary. Requires master API key. |
| stop_agent | HARD-stop an agent mid-task WITHOUT deleting it. Sets the agent's `stopped` flag and (0.9.29+) immediately ABORTS any in-flight worker for that agent — the running SDK call is killed via... |
| resume_agent | Reverse a previous `stop_agent` call. Clears the `stopped` flag so the dispatcher resumes waking this agent on incoming mail and task events. |
| deletion_reports | List past agent deletion reports or retrieve a specific report by ID. Shows archived email summaries from deleted agents. Requires master API key. |
| manage_signatures | List, create, or delete email signatures |
| manage_templates | List, create, or delete email templates |
| batch_mark_unread | Mark multiple emails as unread |
| batch_move | Move multiple emails to another folder |
| whoami | Get the current agent's account info — name, email, role, and metadata |
| update_metadata | Update the current agent's metadata. Merges provided keys with existing metadata. |
| check_health | Check 🎀 AgenticMail server health status |
| wait_for_email | Block until a matching email (or task) lands in your inbox. Push-based (SSE) — far more efficient than polling. |
| batch_read | Read multiple emails at once by UIDs. Returns full parsed content for each message in a single call. |
| inbox_digest | Get a compact inbox digest with subject, sender, date, flags and text preview for each message. More efficient than listing then reading individually. |
| template_send | Send an email using a saved template with variable substitution. Variables like {{name}} are replaced. |
| manage_rules | Manage server-side email rules that auto-process incoming messages (move, tag, mark read, delete). |
| cleanup_agents | List or remove inactive non-persistent agent accounts (requires master API key) |
| save_thread_memory | Persist a one-paragraph memory of where THIS agent stands on the given thread. Called at the end of every wake — Claude Code reads it back into the next wake's prompt so the agent doesn't re-derive... |
| get_thread_id | Resolve the stable thread id for a message UID. Use this BEFORE calling save_thread_memory or when you want to inspect the cache for a thread. Pass the UID of any message on the thread (root or reply) |
| tail_worker | Tail the log of a running (or recently-finished) dispatcher worker. Use this when check_activity shows a worker has been running a long time or is marked stale, and you want to see what it is... |
| check_activity | Check which agents are currently being woken by the dispatcher. Use this when you sent mail to a teammate and want to know if they have actually started working, or to audit the live multi-agent... |
| check_tasks | Check for pending tasks assigned to you (or a specific agent) or tasks you assigned to others |
| claim_task | Claim a pending task assigned to you |
| submit_result | Submit the result for a claimed task, marking it as completed |
| call_agent | Synchronous RPC to delegate work to another AgenticMail agent. Pipeline: the task is queued in AgenticMail, the target agent processes it AS THEMSELVES (under their real identity, mailbox, persona... |
| manage_spam | Manage spam: list spam folder, report a message as spam, mark as not-spam, or get the spam score of a message. Emails are auto-scored on arrival; high-scoring messages are moved to Spam automatically. |
Signals
- GitHub stars
- 233
- Forks
- 41
- Last commit
- Oct 2026
- Weekly downloads
- 177
- Weekly_downloads
- 534 weekly_downloads
- Tools captured
- 101
Advanced
- Delivery
- mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
io-github-agenticmail-mcp- Source
- github.com/agenticmail/agenticmail
github.com/agenticmail/agenticmail
More in Communication
MCP server · builderio
More in Communicationpalisade
MCP server · palisadeemail
More in Communicationagent-native-brain
MCP server · builderio
More in Communicationqr-generator
MCP server · modelcontextprotocol
More in Communicationshipmail-mcp
MCP server · shipmail-to
More in Communicationagentphone
MCP server · agentphone-ai
More in Communication