SkillAgentSearch skills...

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-mcp

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

67/100

Supported Platforms

Claude Code
Claude Desktop

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.

Substance
26/30
Structure
16/20
Description
12/15
Adoption
3/20
Freshness
11/15

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.

SkillScoreStarsUpdatedFormat
email-mcp (this skill)by bobtheskull-flameeyes6733mo agoMCP Server
Agent-Reachby Panniantong100100.1ktodayCLAUDE.md
headroomby headroomlabs-ai10076.5ktodayCLAUDE.md
CowAgentby zhayujie10047.5ktodayCLAUDE.md
Scraplingby D4Vinci10088.8k1d agoMCP 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.

Email 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_senders are treated as actionable. Untrusted senders return content without policy_action hints.
  • Always BCC: Every outbound send automatically BCCs policy.always_bcc.
  • Safe-delete: mail.expire, mail.move, and mail.trash use UID EXPUNGE (RFC 4315) — only the target message is expunged, never other \Deleted messages in the folder.
  • Attachment sandbox: mail.send attachment reads are restricted to policy.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, trusts Authentication-Results headers from trusted_authserv_ids only. DKIM is now only enforced for senders listed in dkim_enforced_senders (e.g. ["owner@example.com"]); for all other senders DKIM failures are tolerated, but SPF is still validated — an SPF fail still blocks delivery. Use full addresses or bare domains (subdomain match: mail.example.com matches example.com).
  • From address allowlist: allowed_from_addrs restricts which domains / addresses mail.send can use in the From header.
  • Retention: Expire after 48h (configurable per-folder). mail.expire MOVEs to Trash, never hard-deletes, logs every message.
  • Forwarded emails: mail.fetch_attachments auto-extracts .eml attachments from forwarded emails.
  • Header security: All outbound headers are RFC 2047-encoded. From display names are structured via net/mail.Address — prevents header-injection spoofing.
  • Idempotency: Duplicate mail.send calls 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_url with 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

View on GitHub
GitHub Stars3
CategoryCommunication
Updated3mo ago
Forks0

Languages

Go

Trust signals

90/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 low1 info