Proton Mail (Bridge)

io.github.legalasproPublished by GitHub account legalasprov1.31.0Updated Nov 7, 2026

Unofficial MCP server for Proton Mail Bridge: search and read mail, write drafts, guarded cleanup.

Overview

AI-generated overview

Unofficial local MCP server that lets an assistant search and read Proton Mail through Bridge, write drafts, and make approved mailbox changes.

What you can do
  • Search, count and read mail, read whole threads, and read or save attachments without marking anything as read
  • Create new drafts, replies and forwards that stay unsent until you send them
  • Move, archive, trash, mark read or unread, add or remove labels, unsubscribe, delete drafts and create folders, each after a preview and a confirmation form
  • Send a draft only when sending is explicitly enabled, via draft, preview and send steps
  • Show thread, composer and send-review views in clients that support MCP Apps, with text results elsewhere
  • Reverse a logged change with an undo action, and keep a local header-only index for fast search
When to use it
Useful when you want an assistant to triage, summarize or draft replies in a Proton Mail mailbox, or to carry out bulk cleanup like archiving, labeling or unsubscribing, while keeping a human approval step before anything changes.
Requirements
Runs locally on Linux or macOS (Windows new, WSL2 advised) with Proton Mail Bridge installed and logged in, a paid Proton plan, and uv (Python 3.12+). Setup stores the Bridge password and a bearer token in the system credential store. Sending requires PROTON_MCP_ENABLE_SEND=1 plus PROTON_MCP_SEND_FROM and PROTON_BRIDGE_CERT.
Before you install
Unofficial and not affiliated with Proton. Mailbox changes, unsubscribes, draft deletion and folder creation are permanent in some cases; approvals rely on your client showing a form, and a client that auto-answers forms defeats the check. With typed-OK sending the server cannot prove a human typed OK. No protected-sender list ships by default, so mail from a bank or a friend can be approved like any other. Setup handles your Bridge password and a bearer token.

Installation

In SourceWeft

  1. Open Proton Mail (Bridge) in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

proton-mail-mcp

[PyPI] [Python] [License] [CI] [MCP Registry] [mcp-proton-mail on Glama]

An MCP server that lets an AI assistant read your Proton Mail, write drafts and tidy your mailbox, with a preview you approve before mail is moved, deleted or sent. It runs on your own computer, under the same login as Proton Mail Bridge, and listens only on 127.0.0.1.

proton-mail-mcp is unofficial and is not affiliated with or endorsed by Proton AG.

sh
uvx mcp-proton-mail setup

Run it in your own terminal. Install says what you need first, what it asks and how it adds the server to your MCP client.

What it does

  • Search and read. Search and count mail, read whole threads, and read or save attachments. Nothing gets marked as read.
  • Write drafts. Create new drafts, replies and forwards. A draft stays unsent until you send it.
  • Clean up. Move, archive, trash, mark read or unread, add or remove labels, unsubscribe, delete drafts and create folders, each after a preview you approve. Folder rules (beta) are there if you turn them on.
  • Send, if you turn it on. Sending is off by default, and there is no way to send without a saved draft and an approval.
  • Show mail in the chat. Clients that support MCP Apps get a thread view, a composer and a send review. Every other client gets the same results as text.

It also keeps a private local index of mail headers so that searches stay fast. The index holds no message bodies.

How it keeps your mail safe

Reading changes nothing. Search and read open mailboxes read-only and never mark mail as seen.

Changes to your mail take two steps.

  1. Preview. The assistant asks what a change would do, and nothing changes yet. It shows you the count, samples and target, and gets a token: single use, short-lived and bound to exactly those messages. Before acting, the server checks them again and refuses if anything differs. New mail never slips into an approval.
  2. Confirm. Your MCP client shows a form with the exact change, and you accept or decline. A token alone is not enough, and declining retires it. The form is only as good as the client: a client that answers forms automatically defeats this check.
ActionWhat it takesCan it be undone?
Search, count, read, listNothingNothing to undo
Save a draft or an attachmentNothing; never sends, always loggedSaved items stay until you remove them
Move, trash, archive, mark read or unread, labels, folder rules (when on)Preview, token, formYes, with undo_action
UnsubscribePreview, token, formNo. With sending on, a mailto target only prepares an unsent draft, which needs its own send approval; with sending off, mailto targets are not used
Delete draftsPreview, token, formNo, it is permanent
Create a folder, save a rule (when on)Preview, token, formNo, remove them by hand
Rebuild the local search indexPreview, token; no form, because no mail changesNo
Send a draftOff by default; then preview, token, and a form or typed OKNo
Create a Sieve filter (when rules are on)Previews only. It always refuses, because Bridge has no way to apply oneNothing changes
Reverse a logged changeundo_action: no token or form, once per change, always loggedNot applicable

Permanent deletion only ever reaches approved messages in Drafts; removing a label expunges only that label's copy. There is no tool to empty Trash, or to delete or rename a mailbox. Every write call goes into an append-only audit log, which holds no message bodies, subjects, full addresses or tokens.

Sending

Set PROTON_MCP_ENABLE_SEND=1 to add the send tools, plus PROTON_MCP_SEND_FROM (the addresses you send from) and PROTON_BRIDGE_CERT (Bridge's certificate); previews refuse without them.

There is no free-form send: the path is create_draft, then preview_send, then send_draft, and any edit after the preview refuses. A client with a form shows you one. On a client that declares no form, the assistant shows you a plain summary and sends after you type OK in chat. The server cannot prove that a human typed the OK: only the assistant reports it, so a misled assistant could send without asking. PROTON_MCP_SEND_TYPED_OK=0 turns this path off. How approvals work has the details.

Mailbox changes have no typed OK. A client without a form is refused, unless you deliberately set PROTON_MCP_CONFIRM_MUTATIONS=0, which lets the token alone authorize a change.

Protected senders

PROTON_MCP_PROTECTED_CONFIG can name a local list of senders that cleanup, unsubscribe, draft deletion and rules must not touch. No list ships with the project, so by default mail from a bank or a friend can be approved like any other. The list checks who sent the mail being acted on, never who a draft is addressed to. See Protected senders.

Off by default

FeatureSetting
SendingPROTON_MCP_ENABLE_SEND=1, with PROTON_MCP_SEND_FROM and PROTON_BRIDGE_CERT
No form for your own addressesPROTON_MCP_SEND_SELF_NO_FORM=1
Typed OK for clients you namePROTON_MCP_SEND_TYPED_OK_CLIENTS
Protected sendersPROTON_MCP_PROTECTED_CONFIG
New-mail watcherPROTON_MCP_IMAP_IDLE_ENABLED=1
Background index syncPROTON_MCP_BACKGROUND_SYNC_ENABLED=1
Folder rules and Sieve filters (beta)PROTON_MCP_ENABLE_RULES=1
Rules timerA Linux timer you install yourself; no tool can start it

On by default: the confirmation form, the typed OK once sending is on, the MCP Apps views and index recovery at startup. Configuration has the setting for each.

Install

You need:

  • A paid Proton plan, which Bridge requires.
  • Linux (Debian/Ubuntu, Fedora/RHEL or Arch) or macOS, with Homebrew unless Bridge is already installed. Native Windows support is new and has run only on Windows Server runners: read docs/windows.md first, or use WSL2.
  • uv, which brings Python 3.12 or newer if you have none.

The package is mcp-proton-mail on PyPI, which uvx fetches and runs; there is nothing to clone. Its command is proton-mail-mcp, also installed as mcp-proton-mail.

1. Quit the Proton Mail Bridge app if it runs, and turn off its start-at-login setting. Setup runs Bridge as a background service, which cannot run beside the app; the app's login carries over. To keep using the app instead, add --skip-bridge-service below.

2. Run the guided setup in your own terminal, naming your MCP client:

sh
uvx mcp-proton-mail setup --client claude-desktop# or claude-code, chatgpt, codex, gemini, cursor, grok-bot; repeatable

It shows what it will do, asks its questions, prints the full plan and changes nothing else before you approve it (--dry-run stops after the plan). The one exception: when Bridge is installed but setup does not know your account yet, it first offers, at a [Y/n], to open Bridge's CLI so you log in to Bridge. It checks or installs Bridge, stores the Bridge password and a new bearer token in your system's credential store, starts per-user services, checks that the server reads your inbox, and adds the server to your client, keeping a backup of its config. Most clients start proton-mail-mcp connect, which reads the token itself, so their config holds none. The token is never shown. Rerunning it is safe. If it stops on Debian or Ubuntu because python3-venv is missing, run sudo apt-get install python3-venv, or add --managed-python after uvx.

Only you can do these, and setup says when:

  • Log in to Bridge, if it is not logged in yet: setup opens Bridge's CLI, where you type login, your Proton email and password and the two-factor code, and open any verification link it prints in a browser. Pasting works. Setup then reads your IMAP username from Bridge.
  • Type the Bridge password at a hidden prompt: the one Bridge generated, not your Proton password. In the Proton Mail Bridge app, select your mailbox, open Mailbox details and copy the password under Password; Bridge's CLI shows it with info. That is why setup runs in your own terminal. In classic PowerShell or cmd, pasting at a hidden prompt often doesn't work. Use Windows Terminal and paste with Ctrl+Shift+V, or type the password. If a tool later says Mailbox authentication failed, the error names the setup command to run there.
  • On macOS, allow Keychain access when asked: choose Always Allow.
  • Restart your client at the end, as setup says.

3. Check it. Ask your assistant which Proton Mail tools it has; it should name tools such as search_mail.

uvx mcp-proton-mail configure-client --client <name> adds another client later, and Connect an MCP client has a page for each client and covers the others. An AI agent setting this up for you follows llms-install.md: it does everything else and hands you only the Bridge login, as one command for your own terminal.

Documentation

On PyPI these relative links do not resolve; read them in the repository.

For AI assistants and coding agents

  • An assistant connected to this server needs nothing from this repository: the server gives it its instructions and tool descriptions when it connects.
  • An assistant reading about this project can start at llms.txt, an index of these docs in Markdown.
  • An assistant installing it for someone follows llms-install.md, which hands the person the one step only they can do.
  • A coding agent changing this repository should read AGENTS.md.

Privacy Policy

proton-mail-mcp runs only on your computer, has no telemetry and sends nothing to its author. PRIVACY.md is the policy: what it reads, what it keeps where and how to delete it, when a send needs no approval, and what reaches your MCP client's model provider.

Network connections

PRIVACY.md lists every connection proton-mail-mcp makes, while it runs, each time a client starts the plugin or the bundle, and during install and setup.

License

Apache-2.0.

Source: README.md at commit 875e3bf

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

3
  1. v1.31.0LatestNov 7, 2026
  2. v1.30.2Nov 3, 2026
  3. v1.30.0Nov 3, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts