Proton Bridge MCP
Provides tools for searching, replying to, and verifying threaded email messages through Proton Mail Bridge using SMTP and IMAP.
Allows sending correctly threaded replies via Proton Mail Bridge, with search, dry-run, and header verification capabilities.
Click on "Install 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 Bridge MCPSend a threaded reply to the latest email from Bob about project status"
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 Bridge MCP
CLI and MCP server for sending correctly threaded replies through Proton Mail Bridge.
The main lesson encoded here is simple:
Use Proton Bridge SMTP with explicit
In-Reply-ToandReferencesfor agent-sent replies.Do not create same-thread reply drafts by IMAP
APPEND; Proton Bridge may rewrite those draft headers and the sent email can leave the original conversation.Proton web/app reply composer is also safe because it creates the reply from the existing conversation.
Features
Search message headers through Proton Bridge IMAP.
Find a thread anchor by sender and subject.
Send a threaded reply through Proton Bridge SMTP.
Verify sent-message headers.
Expose the same operations as MCP tools for coding agents.
Sending tools are dry-run by default unless
confirm_sendis set.
Requirements
Python 3.10+
Proton Mail Bridge running locally
Bridge IMAP enabled, usually
127.0.0.1:1143Bridge SMTP enabled, usually
127.0.0.1:1025
No third-party Python dependencies are required.
Configuration
Set the Bridge account and Bridge mailbox password:
export PROTON_BRIDGE_ACCOUNT="you@example.com"
export PROTON_BRIDGE_PASSWORD="your-bridge-mailbox-password"PROTON_PW is also accepted for the password if you already use that name.
These are Proton Bridge credentials, not necessarily your Proton web password.
CLI Usage
From the repo root:
python3 -m krantiutils_proton.cli search \
--from-addr collaborator@example.com \
--subject-contains "Paper draft" \
--limit 3Dry-run a threaded reply to the latest matching incoming message:
python3 -m krantiutils_proton.cli reply-latest \
--thread-from collaborator@example.com \
--subject-contains "Paper draft" \
--to collaborator@example.com \
--body-file /tmp/reply.txt \
--attach /tmp/paper.pdfActually send only after checking the dry-run output:
python3 -m krantiutils_proton.cli reply-latest \
--thread-from collaborator@example.com \
--subject-contains "Paper draft" \
--to collaborator@example.com \
--body-file /tmp/reply.txt \
--attach /tmp/paper.pdf \
--confirm-sendVerify sent headers:
python3 -m krantiutils_proton.cli verify-sent \
--to-addr collaborator@example.com \
--subject-contains "Paper draft" \
--limit 5Send a controlled threading test to yourself:
python3 -m krantiutils_proton.cli thread-test \
--to you+thread-test@example.com \
--count 3 \
--confirm-sendMCP Server
Run:
./proton-bridge-mcpCodex-style config:
[mcp_servers.proton_bridge]
command = "/absolute/path/to/proton-bridge-mcp/proton-bridge-mcp"
env = { PROTON_BRIDGE_ACCOUNT = "you@example.com" }Set PROTON_BRIDGE_PASSWORD in the environment available to the MCP process.
Available tools:
proton_search_headersproton_latest_thread_anchorproton_send_emailproton_reply_to_latestproton_verify_sentproton_send_thread_test
Agent Workflow
For a thread-safe reply:
Use
proton_latest_thread_anchorto find the latest incoming message in the target thread.Inspect the returned
message_id,in_reply_to,references, sender, and subject.Dry-run
proton_reply_to_latestwithoutconfirm_send.Check recipient, subject, attachment paths, and the generated
In-Reply-To/References.Send only after explicit user approval with
confirm_send: true.Use
proton_verify_sentto confirm the sent copy kept thread headers.
Never claim an IMAP-created draft is definitely on the original thread unless
the stored draft has the expected In-Reply-To and References headers.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/krantiutils/proton-bridge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server