MCP Email Service

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

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

Install

npm (recommended)

npm install -g @leeguoo/mailbox-cli
mailbox --help

The npm package ships prebuilt binaries per platform (no Python required).

As an AI Skill (Claude Code / Cursor / etc.)

# Project scope — installs into ./.claude/skills/mailbox (or ./.cursor/skills/...):
npx skills add leeguooooo/Mailbox --skill mailbox

# User scope — installs into ~/.claude/skills/mailbox:
npx skills add leeguooooo/Mailbox --skill mailbox -g

The skill assumes the CLI is on PATH (npm install -g @leeguoo/mailbox-cli). For the biggest speedup also run mailbox daemon install once.

MCP server (Claude Desktop / Code / Cursor)

mailbox mcp config --json   # prints a paste-ready mcpServers entry

From source (development)

pnpm install
pnpm test

# build a local platform binary into mailbox-cli/packages/<platform>/bin/mailbox
pnpm build:binary

Configure accounts

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

# 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 "[email protected]" --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.
mailbox sync status --json
mailbox sync force --json
mailbox sync init
mailbox sync daemon

AI usage guide

If you're integrating this CLI into an AI agent, start here:

  • docs/AI_SKILL_MAILBOX_CLI.md

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):

./scripts/link_openclaw_skill.sh

Force replace an existing link:

./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:

{
  "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:

openclaw skills list --eligible
openclaw skills check

Contract

  • docs/CLI_JSON_CONTRACT.md

Máy chủ liên quan

NotebookLM Web Importer

Nhập trang web và video YouTube vào NotebookLM chỉ với một cú nhấp. Được tin dùng bởi hơn 200.000 người dùng.

Cài đặt tiện ích Chrome