Email (IMAP + SMTP) Runtime Skill
SkillSearchOperate a generic IMAP+SMTP mailbox through the Email MCP. Use when the user asks to read, search, inspect attachments or threads, draft, send, reply, move, or delete email without provider OAuth.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Email (IMAP + SMTP) Runtime Skill skill
What this skill tells your AI
The instructions your AI receives, as published by manor-os/manor-ai in packages/core/ai/skills/mcp_email/SKILL.md and read by ahel’s review.
Use this skill for the user's generic IMAP/SMTP mailbox through the Email MCP (mcp__email__*). It authenticates with mailbox credentials or an app password and does not require Google/Microsoft OAuth. Provider-native Gmail and Outlook integrations may still offer more precise labels, server-side thread IDs, and search semantics. Do not read or send mail through a browser when this account is connected.
When To Use
Use Email when the user names a work mailbox, hosting/cPanel mail, custom domain, or any provider account configured through IMAP/SMTP and asks to triage, read, inspect attachments or threads, draft, send, reply, file, or delete messages.
Connection
This MCP authenticates with stored IMAP/SMTP credentials (no OAuth). If a tool returns an auth/connection error (login failed, host unreachable, TLS error), stop and tell the user to re-enter their mailbox credentials in Integrations. Do not fall back to other mail tools or a browser.
Core Tools
list_folders— enumerate mailbox folders (IMAP has folders, not Gmail-style labels). Run this first when the user names a folder.list_messages— list messages (optionally scoped to a folder). Returns message UIDs, not bodies.get_message— fetch one message byuid(headers + body).list_attachments/download_attachment— inspect and fetch received MIME attachments.list_threads/get_thread— reconstruct conversations fromMessage-ID,In-Reply-To, andReferences. Passsearch_foldersincluding Sent when both sides of a conversation are needed.send_email— required:to,subject,body; supports HTML, Cc/Bcc, and base64 MIME attachments.reply_to_message/reply_all— send an RFC-threaded response by message UID.reply_allexcludes the connected account from recipients.list_drafts/get_draft/create_draft/update_draft/send_draft/delete_draft— manage drafts in the server's IMAP Drafts folder.mark_read/mark_unread— byuid.move_message— required:uid,to_folder(e.g. move to "Archive").delete_message— byuid.
Common Recipes
Triage a folder
list_foldersif the target folder name is uncertain.list_messagesscoped to the folder → collect UIDs.get_messageper UID to read; summarize. Onlymark_readif the user asked.
Send a message
- Prefer
create_draftwhen the user should review content or recipients. - Show the draft and obtain confirmation.
send_draft, or usesend_emailonly when the user explicitly approved immediate sending.
Review and reply to a conversation
- Locate the anchor message with
list_messages, then callget_thread. - Include the Sent folder in
search_folderswhen the conversation may span Inbox and Sent. - Inspect relevant attachments with
list_attachments/download_attachment. - Show the proposed body and recipients; after confirmation use
reply_to_messageorreply_all.
File or clean up
list_messageswith a precise scope,get_messageto verify.move_messageto Archive/another folder (reversible), preferring it overdelete_message.
Guardrails
- Confirm recipient(s), body, and attachments before
send_email,reply_to_message,reply_all, orsend_draft. Once SMTP accepts a message there is no reliable undo. - Prefer draft creation for staged review. Draft UIDs may change after
update_draft; use the replacement UID returned by the tool. - Attachments are base64-encoded and limited to 10 MiB each, 20 MiB total, and 10 files per outgoing message.
delete_messagebehavior is server-dependent: some IMAP servers move to a Trash folder, others expunge permanently. Treat it as possibly irreversible — prefermove_messageto Archive, and confirm before deleting.- Operate UID-by-UID against the folder you listed; UIDs are folder-scoped, so re-list after a
move_message. - Privacy: read only what the task needs; do not export mailbox contents to other tools/channels.
Edge Cases & Errors
list_messagesreturns UIDs only — you mustget_messageto read content.- UIDs are scoped to a folder and can change after moves/expunge; don't reuse a UID across folders.
- Generic IMAP has no universal server-side thread ID. Thread tools reconstruct relationships from RFC headers and only scan requested folders; they deliberately do not merge messages by subject alone.
- If Drafts cannot be auto-detected, list folders and pass the server's Drafts folder explicitly.
- Auth/host errors → stop and ask the user to fix credentials; do not retry blindly or switch tools.
Signals
- GitHub stars
- 171
- Forks
- 52
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
mcp-email- Source
- github.com/manor-os/manor-ai