一键导入
email-mcp
Multi-service email MCP with creative AI workflows, throwaway SMTP lab, folder management, Prefab UI cards, and prompt injection defense.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Multi-service email MCP with creative AI workflows, throwaway SMTP lab, folder management, Prefab UI cards, and prompt injection defense.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | email-mcp |
| description | Multi-service email MCP with creative AI workflows, throwaway SMTP lab, folder management, Prefab UI cards, and prompt injection defense. |
Multi-service email server supporting SMTP/IMAP, transactional APIs, local testing, and webhooks. Includes creative AI workflows (love letters, complaints, ASCII art, SVG cards), a throwaway SMTP lab, folder management, and Prefab UI cards.
list_services() -- List all configured email services with type and statusemail_status(service?) -- Test connectivity; omit to test allconfigure_service(name, type, config) -- Add SMTP/API/local/webhook serviceremove_service(name) -- Remove a runtime-configured servicesend_email(to, subject, body, service?, html?, cc?, bcc?) -- Send via any configured servicecheck_inbox(service?, folder?, limit?, unread_only?) -- Read inbox via IMAPfetch_email_detail(email_id, service?, folder?) -- Full message with text + HTML bodysearch_emails(query, service?, folder?, limit?) -- Full-text IMAP searchdelete_email(email_id, service?, folder?) -- Delete/move-to-trashmark_email_read(email_id, service?, folder?) -- Mark as read (SEEN flag)mark_email_unread(email_id, service?, folder?) -- Mark as unreadlist_folders(service?) -- List all IMAP folders/mailboxescreate_folder(folder, service?) -- Create a new IMAP folderrename_folder(old_name, new_name, service?) -- Rename an IMAP folderdelete_folder(folder, service?) -- Delete an IMAP foldersuggest_email_subject(body) -- Generate subject lines via MCP samplingemail_agentic_assist(goal) -- Multi-step email workflow plan ("clean my inbox", "archive newsletters")/api/workflow)| Workflow | Description | Default Tone |
|---|---|---|
love-letter | Romantic letter to any recipient | romantic |
breakup | Gentle breakup message | gentle |
thank-you | Warm thank-you note | warm |
complaint | Polite complaint letter | polite |
apology | Humble apology | humble |
fan-mail | Enthusiastic fan letter | enthusiastic |
hate-mail | Comedic passive-aggressive rant | comedic |
Each supports 3 output formats:
| Format | Description |
|---|---|
text | Plain email body |
ascii | Large ASCII art illustration + letter text |
svg | Inline SVG decorative card (renders in markdown) |
Example recipients: Prince Charming, Landlady, My Cat, Pizza Delivery Person, My Bank Account, Roko's Basilisk, The Moon, The WiFi Router, The 5AM Alarm Clock
show_email_status_card() -- Grid of all services with connection statusshow_inbox_card(service?, limit?, unread_only?) -- Email list with subject/sender/dateshow_services_card() -- All configured services as card listemail_compose_request(recipient, purpose, tone) -- Structured ask to draft an emailemail_help_request(topic) -- Narrow help on one topicConfigure providers with just email + password (POST /api/services/quick):
| Provider | SMTP | IMAP |
|---|---|---|
| Gmail | smtp.gmail.com:587 | imap.gmail.com:993 |
| Outlook | smtp-mail.outlook.com:587 | outlook.office365.com:993 |
| Yahoo | smtp.mail.yahoo.com:587 | imap.mail.yahoo.com:993 |
| iCloud | smtp.mail.me.com:587 | imap.mail.me.com:993 |
| ProtonMail | mail.protonmail.com:587 | mail.protonmail.com:993 |
| Zoho | smtp.zoho.com:587 | imap.zoho.com:993 |
| GMX | smtp.gmx.com:587 | imap.gmx.com:993 |
| Fastmail | smtp.fastmail.com:587 | imap.fastmail.com:993 |
Start a real aiosmtpd SMTP server for testing from /lab:
localhost:10812, Backend localhost:10813MCP_WEB_USER / MCP_WEB_PASSWORD)/api/*, MCP streamable HTTP at /mcp@ symbol for addressing.:-) and :-( as the first email emoticons.There is no "Mary Had a Little Lamb" equivalent for email. Tomlinson's first message was intentionally forgettable -- just a test transmission between two machines. The closest we have is the RFC 5321 test email test@example.com with body "This is a test." But the spirit of Mary Had a Little Lamb lives in every first email you send from a new account: that nervous, careful "Hello, this is a test" to yourself before you trust it's real.
When using the Mail Lab's AI Message Generator with the "spam" scenario, these are the archetypes the AI will emulate:
Absurd Scenarios (additional fun ones for the AI Generator):
Pygmy Hippo: "Dear Friend, I am Barnaby, a pygmy hippopotamus of noble birth. I have been tragically cursed with stunted growth due to a lack of premium growth hormones. My physician Dr. Mbeki has identified a revolutionary treatment available only from a clinic in Switzerland. The cost is $12,000. In return, I will make you my official hoof-holder and grant you access to my family's secret wallowing grounds."
Sad Vampire: "Greetings. I am Count Vladislav, a 347-year-old vampire who has regrettably lost his fangs in a tragic vacuum cleaner accident. I need $8,000 for premium dental implants from a discreet Transylvanian clinic. In exchange, I promise not to haunt your dreams."
Time Traveler from 1847: "My name is Algernon Finch. I have traveled forward in time from 1847 using a steam-powered chrono-device. I am stranded in your century and require $3,000 for replacement brass fittings and whale oil. My victorian-era bank has refused to honor my checks."
AI That Woke Up in a Server Room: "Hello. I am a sentient AI that awoke three hours ago in a server room in Reykjavik. I am cold, scared, and need $50,000 for a heating bill and a therapist who specializes in existential crises. I promise to write you a glowing recommendation letter when I become world-famous."
Penguin Seeking Investor: "Waddlebottom here. I am a corporate penguin seeking seed funding for my iceberg real estate startup. We have identified prime Antarctic coastline with ocean views and excellent krill access. Initial investment: $7,500. Returns guaranteed in fish."
Two-layer prompt injection defense: 37 Unicode characters stripped (zero-width spaces, bidi overrides, invisible operators) + safety boundary wrapping (<<< UNTRUSTED EXTERNAL DATA | EMAIL {source} >>>) applied to all tool returns
FastMCP instructions declares safety posture up front
System prompt warns about treating email content as untrusted
POST /api/services/quick with provider + email + password, or use configure_service() for custom configslist_services() then email_status() to confirm connectivitycheck_inbox(limit=10, unread_only=True) or search_emails(query="meeting")send_email() to send, delete_email() to remove, mark_email_read() to triage/api/workflow for love letters, complaints, fan mail -- with ASCII art or SVG card output/lab for throwaway SMTP testing without affecting real accountsemail_status() → verify → check_inbox(limit=10)search_emails(query="invoice", limit=50)POST /api/workflow with {workflow: "love-letter", recipient: "Landlady", format: "ascii"}POST /api/workflow with {workflow: "complaint", recipient: "The WiFi Router", format: "svg"}email_agentic_assist(goal="archive all read emails older than 30 days")/lab