ProtonMail MCP Server
An MCP (Model Context Protocol) server that connects to ProtonMail via Bridge, enabling AI assistants like Claude to manage your email.
Features
- Email Management: Read, search, send, reply, forward, and delete emails
- Folder Management: List, create, rename, and delete folders
- Label Management: Apply and remove labels from emails
- Trend Analysis: Analyze email patterns, identify important emails, track sender statistics
Requirements
- Node.js >= 18
- ProtonMail Bridge installed and running
- ProtonMail account (Plus, Unlimited, or Business)
Installation
git clone https://github.com/robotben/protonmail-mcp.git
cd protonmail-mcp
npm install
npm run build
Configuration
- Copy the example config:
cp config/protonmail.config.example.json config/protonmail.config.json
- Edit
config/protonmail.config.jsonwith your credentials:
{
"protonmail": {
"auth": {
"user": "your-email@protonmail.com",
"pass": "your-bridge-password"
}
}
}
Note: Use the Bridge password from ProtonMail Bridge app (not your account password).
Running the Server
npm start
The server listens on port 3000 by default. Set the PORT environment variable to change it:
PORT=8080 npm start
MCP endpoint: http://localhost:3000/mcp
Usage with Claude Desktop
The server uses the MCP Streamable HTTP transport (spec 2025-03-26), so configure Claude Desktop with a URL instead of a command:
{
"mcpServers": {
"protonmail": {
"url": "http://localhost:3000/mcp"
}
}
}
Note: Start the server before launching Claude Desktop (
npm start).
Legacy stdio (not supported)
This server no longer supports stdio transport. If you need stdio, use an earlier version.
Available Tools (22)
Email Reading
| Tool | Description | |------|-------------| | list_emails | List emails from a folder with pagination | | get_email | Get full email content by UID | | get_email_headers | Get email headers only (lightweight) | | search_emails | Search emails with query, date range, filters | | get_unread_count | Get unread count for folders | | mark_as_read | Mark emails as read | | mark_as_unread | Mark emails as unread |
Email Sending
| Tool | Description | |------|-------------| | send_email | Send a new email | | reply_to_email | Reply to an email | | forward_email | Forward an email |
Folder Management
| Tool | Description | |------|-------------| | list_folders | List all folders | | create_folder | Create a new folder | | delete_folder | Delete a folder | | rename_folder | Rename a folder | | move_emails | Move emails between folders |
Label Management
| Tool | Description | |------|-------------| | list_labels | List all labels | | create_label | Create a new label | | apply_labels | Apply labels to emails | | remove_labels | Remove labels from emails |
Analytics
| Tool | Description | |------|-------------| | analyze_email_trends | Analyze email patterns over time | | analyze_label_distribution | Analyze email distribution across folders | | identify_important_emails | Find important emails based on criteria |
Utility
| Tool | Description | |------|-------------| | delete_emails | Permanently delete emails |
Resources
| URI | Description | |-----|-------------| | protonmail://inbox/summary | Inbox statistics | | protonmail://folders | Folder list with counts | | protonmail://labels | Label summary | | protonmail://recent | Recent 24h activity | | protonmail://stats | Email analytics |
Development
# Build
npm run build
# Watch mode
npm run dev
# Run directly with tsx
npx tsx src/server.ts
License
MIT











