proton-mcp-server
Provides read-only access to Proton Mail, allowing listing of folders and messages, searching emails, and reading full messages via Proton Mail Bridge.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@proton-mcp-serverfind emails from my boss about the project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Proton Mail MCP Server
Read-only access to Proton Mail for AI agents (such as Hermes) over the Model Context Protocol (stdio transport).
Mail is read from Proton Mail Bridge, which runs a local IMAP server. The MCP server wraps that IMAP server and exposes a small set of tools. Multiple Proton accounts are supported and selected by name on each tool call.
Read-only by design: listing folders/messages, searching, and reading a message. Sending or moving/deleting mail is intentionally out of scope.
How it works
+----------+ stdio/stdin+stdout +---------------------+ IMAP (local) +---------------------+
| Agent | <---------------------> | proton-mcp-server | <------------> | Proton Mail Bridge |
| (Hermes) | MCP (JSON-RPC) | (this package) | 127.0.0.1:1143 | (protonmail-bridge)|
+----------+ +---------------------+ +---------------------+Proton Mail Bridge must be installed, signed in, and running. In the Bridge GUI, for each account enable the IMAP/SMTP client and copy the generated password (this is not your Proton account password).
Related MCP server: ProtonMail MCP Server
Install
Requires Python 3.11+. Using uv (recommended):
git clone <this repo> && cd proton-mcp-server
uv sync # create venv + install dependenciesOr with pip into a venv of your choice: pip install .
The proton-mcp-server console script is provided.
Configure accounts
Create a config file listing each account (see config.example.toml):
mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/proton-mcp"
cp config.example.toml "${XDG_CONFIG_HOME:-$HOME/.config}/proton-mcp/config.toml"
# then edit it with your bridge username + generated passwordConfig-file lookup order (first wins):
--config PATHCLI flagPROTON_MCP_CONFIGenvironment variable$XDG_CONFIG_HOME/proton-mcp/config.toml(default~/.config/proton-mcp/config.toml)
[[accounts]] fields:
field | required | default | notes |
| yes | — | Unique label agents pass as the |
| yes | — | Your Proton address (the IMAP login name). |
| yes | — | Password generated by Proton Mail Bridge, not Proton. |
| no |
| Bridge listens on localhost. |
| no |
| Bridge IMAP port. |
| no |
|
|
Tools
tool | description |
| List configured account names. |
| List mailboxes for an account (INBOX, Sent, …). |
| List recent messages in a folder, newest first. |
| Search a folder by subject/from/to/cc/body/text. |
| Fetch and render a full message by UID. |
Run proton-mcp-server --list-accounts to smoke-test the config (this does
not require Bridge to be reachable — it only parses the file).
Use with Hermes
Add the server to your Hermes MCP configuration (stdio server):
{
"mcpServers": {
"proton-mail": {
"command": "/abs/path/to/proton-mcp-server/.venv/bin/proton-mcp-server",
"env": { "PROTON_MCP_CONFIG": "/abs/path/to/proton-mcp/config.toml" }
}
}
}(Or omit env if you use the default config path.) Then ask Hermes to read
your mail; it will discover the tools via MCP.
Develop / debug
uv sync
uv run proton-mcp-server --help
uv run proton-mcp-server --print-config-path
uv run proton-mcp-server --list-accountsTo inspect the protocol by hand, pipe a JSON-RPC initialize + tools/list
exchange into the running server over stdio.
Security notes
Config holds bridge passwords; keep it readable only by you (
chmod 600).config.tomlis git-ignored by default.The connection to Proton Mail Bridge is localhost only. The default
security = "starttls"upgrades to TLS via STARTTLS after connecting; the Bridge's local self-signed certificate is accepted with verification disabled (the connection never leaves localhost).security = "ssl"(TLS from connection start) andsecurity = "plain"(no encryption) are also available. The server never connects to a remote host with verification off — and all connection fields are configurable per account.All operations are read-only (BODY.PEEK, no STORE/EXPUNGE).
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Email inboxes for AI agents: send, receive, reply, search, and manage threaded email over MCP.
- Lettio MCPOAutheu.lettio
Private, EU-hosted email for AI agents over JMAP: read, search, reply, organize, send.
1 Your mailbox for MCP clients: search, read, draft, send, rules and notes. Sending is off by default.
Related MCP Servers
- AlicenseAqualityDmaintenanceA read-only MCP server that connects to Proton Mail via Proton Bridge, enabling AI assistants to search, list, and read emails securely without leaving your machine.423 npm1MIT
- AlicenseAqualityCmaintenanceEnables AI agents to send, read, search, and organize emails via ProtonMail using Proton Bridge. Supports MCP-compatible clients like Claude and Cursor.179 npm4MIT
- AlicenseAqualityBmaintenanceAn MCP server that enables AI assistants to read and search Proton Mail messages through a locally running Proton Mail Bridge. It provides tools like list_folders, list_messages, search_messages, get_message, and get_attachment.611 npmMIT
- AlicenseAqualityBmaintenanceEnables AI assistants to read and search Proton Mail inbox through Proton Mail Bridge, providing tools to list mailboxes, list messages, search messages, and fetch full message bodies. Read-only, with secure certificate pinning.4215 npmMIT