email-mcp
MCP server wrapping IMAP/SMTP with persistent IDLE, DKIM/SPF validation, and policy enforcement. 0BSD licensed.
Install / Use
claude mcp add bobtheskull-flameeyes -- npx -y github:bobtheskull-flameeyes/email-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
CommunicationSupported Platforms
Our assessment of email-mcp
email-mcp scores 67/100 on our quality scale, 406th of 422 Communication skills we index.
Its MCP Server is 3.7 KB long, split into 5 sections with 2 code examples: a solid amount of guidance for an agent.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated about 3 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
- It is released under the 0BSD license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 90/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
email-mcp compared with similar skills
All 4 of these similar skills score higher than email-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| email-mcp (this skill)by bobtheskull-flameeyes | 67 | 3 | 3mo ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 100.1k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 76.5k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.5k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 88.8k | 1d ago | MCP Server |
Frequently asked questions
- How do I install email-mcp?
- Run
claude mcp add bobtheskull-flameeyes -- npx -y github:bobtheskull-flameeyes/email-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does email-mcp work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is email-mcp safe to use?
- It is 0BSD-licensed and scores 90/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is email-mcp still maintained?
- The repository was last updated about 3 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
Skill content
View source on GitHubEmail MCP Server
MCP server wrapping IMAP/SMTP with persistent IDLE, DKIM/SPF validation, and policy enforcement.
Build
cd workspace/email-mcp
go mod tidy
go build -o email-mcp .
Config
Copy config.json.example to config.json and fill password:
{
"host": "mail.example.net",
"port": 993,
"smtp_port": 465,
"username": "bob@example.com",
"password": "...",
"policy": {
"always_bcc": "owner@example.com",
"trusted_senders": ["owner@example.com"],
"trusted_authserv_ids": ["mail.example.com"],
"dkim_fail_allowlist": ["newsletters.example.com"],
"dkim_enforced_senders": ["owner@example.com"],
"allowed_from_addrs": ["example.com"]
}
}
- Sender trust: Only addresses in
policy.trusted_sendersare treated as actionable. Untrusted senders return content withoutpolicy_actionhints. - Always BCC: Every outbound send automatically BCCs
policy.always_bcc. - Safe-delete:
mail.expire,mail.move, andmail.trashuse UID EXPUNGE (RFC 4315) — only the target message is expunged, never other\Deletedmessages in the folder. - Attachment sandbox:
mail.sendattachment reads are restricted topolicy.attachment_allow_dirs(default:/tmp). Symlinks escaping the allowlist are rejected. - Signature verification: DKIM/SPF/DMARC with client-side DKIM fallback. When
trust_mta_auth: true, trustsAuthentication-Resultsheaders fromtrusted_authserv_idsonly. DKIM is now only enforced for senders listed indkim_enforced_senders(e.g.["owner@example.com"]); for all other senders DKIM failures are tolerated, but SPF is still validated — an SPFfailstill blocks delivery. Use full addresses or bare domains (subdomain match:mail.example.commatchesexample.com). - From address allowlist:
allowed_from_addrsrestricts which domains / addressesmail.sendcan use in theFromheader. - Retention: Expire after 48h (configurable per-folder).
mail.expireMOVEs to Trash, never hard-deletes, logs every message. - Forwarded emails:
mail.fetch_attachmentsauto-extracts.emlattachments from forwarded emails. - Header security: All outbound headers are RFC 2047-encoded.
Fromdisplay names are structured vianet/mail.Address— prevents header-injection spoofing. - Idempotency: Duplicate
mail.sendcalls with identical recipients, subject, body, html, from_addr, and attachments are blocked within a 60s window.
Integration
- MCP events:
mail.received,mail.error— pushed over MCP socket / WebSocket / webhook - IMAP IDLE: Persistent connection with automatic reconnect — replaces polling
- REST API: Authenticated HTTP API (
/api/v1/tools/call) for remote access from Sanctum or other HTTP clients - Webhooks: New-mail notifications POSTed to
api.webhook_urlwith 5s timeout, never blocks IDLE - Email client: CLI wrapper at
bob/email-mcp-client—email search,email read,email send,email mailboxes, etc.
Transport Modes
| Mode | Flag / Config | Description |
|------|---------------|-------------|
| stdio | (default) | MCP over stdin/stdout — for local MCP client launch |
| TCP | -tcp :8080 | MCP JSON-RPC over raw TCP — multiple clients |
| Unix socket | -unix /path/to/sock | MCP JSON-RPC over Unix socket |
| WebSocket | -ws :8081 | MCP JSON-RPC over WebSocket — browser / remote clients, bearer-token auth, 10s auth deadline |
| HTTP render | -http 127.0.0.1:8025 | HTML email renderer + health check (localhost only) |
| REST API | config.api.enabled | Authenticated HTTP REST API for remote access |
The REST API and WebSocket run alongside any of the other modes. The HTTP render server, REST API, and WebSocket use separate ports.
Related Skills
Agent-Reach
100.1kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
76.5kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.5kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
88.8k🕷️ A Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
