mattias242/protonmail-mcp-server
MCP server for ProtonMail Bridge — lets Claude read, search and send email via local Bridge
[](https://github.com/mattias242/protonmail-mcp-server/actions/workflows/ci.yml)
A Model Context Protocol server that lets Claude read, search, and send email through a locally running ProtonMail Bridge.
git clone https://github.com/mattias242/protonmail-mcp-server
cd protonmail-mcp-server
uv sync
cp .env.example .envEdit .env:
PROTONMAIL_USERNAME=user@proton.me
PROTONMAIL_PASSWORD=bridge-generated-password # from the Bridge app, not your Proton passwordAdd to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"protonmail": {
"command": "uv",
"args": ["run", "--directory", "/path/to/protonmail-mcp-server", "protonmail-mcp"],
"env": {
"PROTONMAIL_USERNAME": "user@proton.me",
"PROTONMAIL_PASSWORD": "bridge-password"
}
}
}
}claude mcp add protonmail -s user -- uv --directory /path/to/protonmail-mcp-server run protonmail-mcpThen set credentials in ~/.claude.json under the protonmail entry's env field.
| Tool | Description | |------|-------------| | list_mailboxes | List all folders and labels (with type: folder\|label) | | get_mailbox_status | Count messages and unread in a folder | | list_emails | List emails with metadata — paginated (page, page_size, has_more) | | get_email | Fetch full email — supports body_format (full/text/stripped) and max_length | | get_email_headers | Fetch headers only, no body (fast) | | search_emails | Search by from/subject/date/unread — return
Loading reviews...