Proton Mail MCP logo

Proton Mail MCP

未认领

作者:sethbang

Unofficial MCP server for Proton Mail (not affiliated with Proton AG) — send, read, search & organize email over SMTP/IMAP

emailemail-mcpemail-mcp-serverimapmcpmcp-servermodel-context-protocolnodemailerprotonproton-mail

01 / 选择客户端

02 / 连接前的准备

认证方式尚未指定。连接前请查看项目说明。

安装项目所需的运行环境,并确保客户端能够使用它。

项目说明

输入项目说明中的变量名,用逗号分隔。只输入名称,不要输入密钥值。

03 / 添加配置

来源:根据公开安装说明生成

claude mcp add --transport stdio 'proton-mail-mcp' -- 'npx' '-y' 'proton-mail-mcp'

替换占位符后在终端中运行。

04 / 在客户端中确认

打开客户端的 MCP 设置,确认服务器已连接并列出工具。复制配置不代表连接成功。

更多Search & Web服务器

浏览完整目录

未认领列表

这个 MCP 服务器是你的吗?

此列表根据公开信息自动生成。认领后,你可以编辑页面、设置兼容性并解锁增长工具。全程不超两分钟。

认领此服务器

安全概况

已认领和已认证的服务器每周接受一次静态扫描,显示代码能触及的范围(外部服务、环境变量、shell 命令、代理配置目录)以及带有已知公告的依赖。认领此列表即可获得。 安全概况的工作原理

32 个工具中显示 32 个

文档中列出的工具 (32)

内容来自项目文档。服务器握手不会验证每个工具的说明或行为。

bulk_delete

Delete many messages in a single IMAP operation. Same XOR uids/match input and dryRun support as bulkmove. Defaults to soft-delete via the resolved Trash path. A subject/body match appends a staleness warning — Proton's content SEARCH lags ~30–60s, so recent mail can be silently missed; prefer from:

bulk_move

Move many messages in a single IMAP operation. Accepts either an explicit uids array or match criteria (XOR, not both). Supports dryRun: true to preview which UIDs would be affected without making changes — match-based dry-runs run the SEARCH results through a FETCH-based existence pass so the previ

bulk_update_flags

Add or remove flags on many messages in a single IMAP operation. Same XOR uids/match input and dryRun support. Reports notApplied: string[] for flags the server silently dropped across every affected UID (e.g. Proton's user-keyword drop).

bulk_update_labels

Add or remove Proton labels on many messages in a single IMAP operation. Same XOR uids/match input and dryRun support as the other bulk tools. Adds are batched (one COPY of the joined UID range per label); removes walk each label mailbox by Message-ID. Reports notApplied: string[] for labels with no

count_messages

Return a count of messages matching optional criteria, backed by IMAP SEARCH. No envelope fetch — just a number.

create_folder

Create a new mailbox folder. Idempotent — succeeds silently if the folder already exists. Restricted to the Folders/ namespace (e.g. Folders/Receipts); root-level paths are rejected with an actionable error. Labels/... paths are rejected with a redirect to the dedicated createlabel tool. . and .. pa

create_label

Create a new Proton label. Pass the bare label name; the Labels/ prefix is added internally. Idempotent. The response returns the full Labels/X path — copy that into updatemessagelabels.labelsToAdd (which requires the full path, not the bare name).

delete_folder

Delete a folder or label container. Restricted to the Folders/ and Labels/ namespaces so system mailboxes (INBOX, Sent, Trash, etc.) cannot be removed.

delete_message

Delete a message. By default moves to Trash for safety (resolved via special-use annotation); set permanent=true to permanently expunge. Returns the new UID in Trash when available. Soft-deleting a message that is already in Trash is a no-op on the server; the tool detects this and returns an action

delete_thread

Delete all messages in a thread. Per-folder by default; set acrossFolders: true for cross-folder walk.

download_attachment

Download an attachment by MIME part number. Use listattachments or readmessage first to see available parts. By default returns base64-encoded content inline. Bad part numbers produce an actionable error listing known parts.

empty_folder

Permanently empty a folder via atomic UID EXPUNGE (client.messageDelete). Requires confirm: true. By default restricted to Trash and Junk to prevent accidents; set allowAnyFolder: true to target any folder. Pass dryRun: true to preview the count that would be deleted without touching any mail (no co

flag_thread

Add or remove flags on all messages in a thread. Per-folder by default; set acrossFolders: true for cross-folder walk.

folder_stats

Return total/unread counts plus scanned-envelope aggregations: oldest message date, newest message date, and total message bytes. Response includes scanned and truncated fields for transparency.

forward_email

Forward a message to new recipients. Original attachments are carried forward by default. Unlike reply, a forward does not set In-Reply-To/References — it starts its own conversation and leaves the original message's \Answered flag untouched.

get_thread

Get all messages in a conversation thread by walking In-Reply-To and References headers. Returns messages sorted chronologically (oldest first).

list_attachments

List attachment metadata (part numbers, filenames, types, sizes) for a message without downloading the body. Composes with downloadattachment for bulk extraction. The reported size is the decoded file size (roughly what you get on save), estimated from the IMAP-encoded octet count — base64 parts are

list_folders

List all mailbox folders with message and unread counts. No parameters. Counts come from a cached IMAP STATUS that Proton Bridge can serve stale — for an exact count (e.g. before deleting or emptying a folder), use countmessages or folderstats, which query the live mailbox. The output includes a foo

list_messages

List recent messages from a folder. Supports UID-based pagination.

mark_all_read

Mark all unread messages in a folder as read. Optionally limit to messages older than a given date. Pass dryRun: true to preview the affected count without flipping any flags.

move_message

Move a message to a different folder. Returns the new UID in the destination folder when available (requires UIDPLUS server support).

move_thread

Move all messages in a thread to a destination folder. Identified by Message-ID. Per-folder by default; set acrossFolders: true to walk INBOX + Sent + All Mail. When the walk surfaces a thread member only via All Mail (e.g. the message actually lives in Folders/Archive), the server expands the searc

read_message

Read a specific message by UID. Returns full headers, body, and attachment metadata. Prefers plain text; strips HTML tags from HTML-only messages. Body-part selection skips parts marked Content-Disposition: attachment, so a text/plain attachment sitting next to an HTML body is never returned as the

rename_folder

Rename an existing folder or label. Restricted to the Folders/ and Labels/ namespaces on both from and to so system mailboxes (INBOX, Sent, Trash, etc.) can't be renamed — without this guard, renamefolder(from: "INBOX", to: ...) would succeed against Proton Mail Bridge and relocate INBOX's contents.

reply_all_email

Reply to all original recipients (sender + TO + CC), excluding the authenticated user. Same threading + quoting semantics as replyemail. Use this instead of replyemail + replyAll: true for clarity. Self-exclusion covers the whole recipient set including the primary To: replying-all to a message you

reply_email

Reply to a message with proper threading headers (In-Reply-To, References). Includes the quoted original message with attribution by default.

save_draft

Save an email as a draft without sending it. The draft is placed in the user's \Drafts special-use folder (resolved at runtime; falls back to literal Drafts if no annotation). Returns the draft UID when available.

search_messages

Search messages by various criteria. Date filters use IMAP semantics: since is inclusive, before is exclusive.

send_email

Send an email using Proton Mail SMTP.

top_senders

Return a sender frequency table over a configurable date range, sorted by message count descending. Collapses display-name variants of the same address. Each row carries a direction: "self""received" tag so callers scanning All Mail (which spans Sent) can tell outbound from inbound.

update_message_flags

Add or remove flags on a message. RFC 3501 system flags: \Seen (read), \Flagged (starred), \Answered, \Draft, \Deleted, \Recent. User-defined keywords without a backslash prefix are also accepted (alphanumeric + underscore, e.g. Important, CustomTag). Unknown \-prefixed names are rejected.

update_message_labels

Add or remove Proton labels on a message. Labels live under the Labels/ namespace and are additive — the message stays in its source folder while gaining or losing label tags.

工具变更历史

比较相同配置的完整检查。只列出工具,未调用工具。此处不测量输入结构的变化。

尚无完整工具检查。