An MCP (Model Context Protocol) server that connects to ProtonMail via Bridge, enabling AI assistants like Claude to manage your email.
- 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
- Node.js >= 18
- ProtonMail Bridge installed and running
- ProtonMail account (Plus, Unlimited, or Business)
git clone https://github.com/robotben/protonmail-mcp.git
cd protonmail-mcp
npm install
npm run build-
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).
npm startThe server listens on port 3000 by default. Set the PORT environment variable to change it:
PORT=8080 npm startMCP endpoint: http://localhost:3000/mcp
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).
This server no longer supports stdio transport. If you need stdio, use an earlier version.
| 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 |
| Tool | Description |
|---|---|
send_email |
Send a new email |
reply_to_email |
Reply to an email |
forward_email |
Forward an email |
| 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 |
| 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 |
| 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 |
| Tool | Description |
|---|---|
delete_emails |
Permanently delete emails |
| 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 |
# Build
npm run build
# Watch mode
npm run dev
# Run directly with tsx
npx tsx src/server.tsMIT