Labsco
leeguooooo logo

MCP Email Service

β˜… 38

from leeguooooo

A service for managing multiple email accounts from various providers like 163, Gmail, QQ, and Outlook.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeQuick setup

Mailbox CLI

CLI-first email management for multi-account IMAP/SMTP with a local sync cache.

Primary interface: the mailbox CLI (Node.js implementation). This repo ships prebuilt platform binaries via npm (no Python required for end users).

Supported Providers

  • 163 Mail (mail.163.com / mail.126.com)
  • QQ Mail (mail.qq.com)
  • Gmail (mail.google.com)
  • Outlook/Hotmail
  • Custom IMAP servers

Configure accounts

Copy & paste β€” that's it
mkdir -p ~/.config/mailbox
cp examples/accounts.example.json ~/.config/mailbox/auth.json

Config locations:

  • Credentials: ~/.config/mailbox/auth.json
  • Other settings: ~/.config/mailbox/config.toml

Common commands

Copy & paste β€” that's it
# CLI help
mailbox --help

# list accounts
mailbox account list --json

# list unread emails (cache by default; --from filters cache-side)
mailbox email list --unread-only --limit 20 --json
mailbox email list --account-id my_account_id --from "newsletter" --json

# show one email (response includes list_unsubscribe when the header is set)
mailbox email show 123456 --account-id my_account_id --json

# mark read (use --dry-run to validate first)
mailbox email mark 123456 --read --account-id my_account_id --folder INBOX --dry-run --json
mailbox email mark 123456 --read --account-id my_account_id --folder INBOX --confirm --json

# delete
mailbox email delete 123456 --account-id my_account_id --folder INBOX --confirm --json

# bulk mutate by sender or subject (no UID list needed)
mailbox email mark --from "support@npmjs.com" --read --confirm --account-id my_account_id --json
mailbox email delete --from "newsletter" --account-id my_account_id --json    # dry-run preview
mailbox email delete --subject "[ad]" --account-id my_account_id --confirm --json

Cache + sync

  • Cache DB default: ~/.local/share/mailbox/email_sync.db
  • Listing uses cache by default where possible. Add --live to force IMAP.
Copy & paste β€” that's it
mailbox sync status --json
mailbox sync force --json
mailbox sync init
mailbox sync daemon

OpenClaw integration

This repo includes an OpenClaw skill at skills/mailbox/SKILL.md.

OpenClaw loads skills from:

  • <workspace>/skills
  • ~/.openclaw/skills

Quick link helper (symlink into ~/.openclaw/skills):

Copy & paste β€” that's it
./scripts/link_openclaw_skill.sh

Force replace an existing link:

Copy & paste β€” that's it
./scripts/link_openclaw_skill.sh --force

To use this repo without copying files, add the repo skills directory to skills.load.extraDirs in ~/.openclaw/openclaw.json:

Copy & paste β€” that's it
{
  "skills": {
    "load": {
      "extraDirs": [
        "/path/to/mcp-email-service/skills"
      ]
    }
  }
}

OpenClaw handles channel delivery and scheduling; mailbox returns structured JSON outputs and optional text summaries.

Verify OpenClaw picked up the skill:

Copy & paste β€” that's it
openclaw skills list --eligible
openclaw skills check

Contract

  • docs/CLI_JSON_CONTRACT.md

Built by leeguooooo β€” field notes on AI agents, reverse engineering & Cloudflare Workers at blog.misonote.com Β· follow on X @leeguooooo