email-mcp-postale logo

email-mcp-postale

ssk1noscai/email-mcp-postale
0 starsUpdated 2026-03-08Community

Is this your server?

Add your score badge to your README and get your server in front of 45k+ builders a month.

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Enables Claude Desktop to interact with Postale.io email accounts, supporting multiple mailboxes with features like reading, searching, replying, drafts, and batch operations.

README.md

Email MCP Server for Postale.io

An MCP server that gives Claude Desktop / Cowork access to your Postale.io email mailboxes. Supports multiple accounts, reading, searching, replying, drafts, deleting, and batch operations.

Features

| Tool | Description | |------|-------------| | list_accounts | Show all configured email accounts | | list_folders | Show folder structure of an account | | get_unread_emails | Fetch unread emails | | get_recent_emails | Fetch recent emails from the last X days | | read_email | Read a single email in full | | search_emails | Search emails (subject, sender, body) | | send_email | Send an email (with reply threading) | | save_draft | Save a draft (visible in Spark) | | move_email | Move an email to another folder | | delete_email | Move an email to trash | | batch_delete_emails | Delete multiple emails at once | | mark_as_read | Mark as read | | mark_as_unread | Mark as unread | | get_mailbox_stats | Stats: unread per folder | | get_all_unread_summary | Across ALL accounts: summarize unread |

Setup

1. Clone and install dependencies

git clone https://github.com/ssk-machines/email-mcp-postale.git
cd email-mcp-postale
pip install -r requirements.txt
# or with uv:
uv pip install -r requirements.txt

2. Create configuration

cp config.json.example config.json

Then edit config.json — add an account entry for each mailbox:

{
  "accounts": [
    {
      "name": "My Account",
      "email": "me@example.com",
      "imap_host": "mail.postale.io",
      "imap_port": 993,
      "smtp_host": "mail.postale.io",
      "smtp_port": 465,
      "username": "me@example.com",
      "password": "your-password"
    },
    {
      "name": "Support",
      "email": "support@example.com",
      ...
    }
  ]
}

Tip: On Postale.io, the username is always the full email address.

3. Test

python server.py

If no errors appear, the server is running correctly in stdio mode.

4. Add to Claude Desktop

Open ~/Library/Application Support/Claude/claude_desktop_config.json and add:

With uv:

{
  "mcpServers": {
    "email": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/email-mcp-postale",
        "run", "server.py"
      ]
    }
  }
}

Or with Python directly:

{
  "mcpServers": {
    "email": {
      "command": "python3",
      "args": ["/path/to/email-mcp-postale/server.py"],
      "env": {
        "EMAIL_MCP_CONFIG": "/path/to/email-mcp-postale/config.json"
      }
    }
  }
}

Replace /path/to/email-mcp-postale with the actual path where you cloned the repo.

5. Restart Claude Desktop

After saving the config, fully quit and reopen Claude Desktop. The email connector should appear as active under "Connectors".

Scheduled Tasks (Cowork)

Morning Briefing (daily, 7:00 AM)

Every morning at 7:00 AM:
1. Call get_all_unread_summary to fetch all unread emails across all accounts.
2. Categorize each email as:
   - 🔴 URGENT: Needs immediate reply (customers, partners, investors)
   - 🟡 REPLY NEEDED: Needs a reply, but not time-critical
   - 🟢 FYI: Just read, no action needed
   - ⚪ UNIMPORTANT: Newsletters, marketing, spam
3. Draft a reply for each 🔴 and 🟡 email using save_draft.
4. Mark ⚪ emails as read with mark_as_read.
5. Create a clear summary as a briefing.

Cleanup Task (weekly, Friday 5:00 PM)

Every Friday at 5:00 PM:
1. Search all accounts for newsletter and marketing emails from the past week.
2. Create a list for batch deletion.
3. Show me the list for confirmation before deleting.

Security Notes

  • Passwords are stored in plaintext in config.json — protect the file with chmod 600 config.json
  • Alternatively: use Postale.io app passwords (if supported)
  • Do NOT commit config.json to git

License

MIT

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Search servers.