Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Proton Mail (unofficial)

von sethbangVersion 1.0.2i★ –iLäuft auf deinem Computer
Name in der Registryio.github.sethbang/proton-mail-mcp

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Unofficial Proton Mail MCP — send, read, search & organize email over SMTP and IMAP

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Chat & E-Mail
  • Das musst du eintragen: PROTONMAIL_USERNAME, PROTONMAIL_PASSWORD, IMAP_PASSWORD

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: PROTONMAIL_USERNAME, PROTONMAIL_PASSWORD, PROTONMAIL_HOST, PROTONMAIL_PORT, PROTONMAIL_SECURE, IMAP_HOST, IMAP_PORT, IMAP_SECURE, IMAP_USERNAME, IMAP_PASSWORD, READONLY, RESTRICT_OUTBOUND_TO_SELF, ALLOW_FILE_DOWNLOAD_DIR, ALLOW_EMPTY_FOLDER, DEBUG

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "proton-mail": {
      "command": "npx",
      "args": [
        "-y",
        "proton-mail-mcp"
      ],
      "env": {
        "PROTONMAIL_USERNAME": "your-value",
        "PROTONMAIL_PASSWORD": "your-value",
        "PROTONMAIL_HOST": "your-value",
        "PROTONMAIL_PORT": "your-value",
        "PROTONMAIL_SECURE": "your-value",
        "IMAP_HOST": "your-value",
        "IMAP_PORT": "your-value",
        "IMAP_SECURE": "your-value",
        "IMAP_USERNAME": "your-value",
        "IMAP_PASSWORD": "your-value",
        "READONLY": "your-value",
        "RESTRICT_OUTBOUND_TO_SELF": "your-value",
        "ALLOW_FILE_DOWNLOAD_DIR": "your-value",
        "ALLOW_EMPTY_FOLDER": "your-value",
        "DEBUG": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add proton-mail --env PROTONMAIL_USERNAME=your-value --env PROTONMAIL_PASSWORD=your-value --env PROTONMAIL_HOST=your-value --env PROTONMAIL_PORT=your-value --env PROTONMAIL_SECURE=your-value --env IMAP_HOST=your-value --env IMAP_PORT=your-value --env IMAP_SECURE=your-value --env IMAP_USERNAME=your-value --env IMAP_PASSWORD=your-value --env READONLY=your-value --env RESTRICT_OUTBOUND_TO_SELF=your-value --env ALLOW_FILE_DOWNLOAD_DIR=your-value --env ALLOW_EMPTY_FOLDER=your-value --env DEBUG=your-value -- npx -y proton-mail-mcp

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "proton-mail": {
      "command": "npx",
      "args": [
        "-y",
        "proton-mail-mcp"
      ],
      "env": {
        "PROTONMAIL_USERNAME": "your-value",
        "PROTONMAIL_PASSWORD": "your-value",
        "PROTONMAIL_HOST": "your-value",
        "PROTONMAIL_PORT": "your-value",
        "PROTONMAIL_SECURE": "your-value",
        "IMAP_HOST": "your-value",
        "IMAP_PORT": "your-value",
        "IMAP_SECURE": "your-value",
        "IMAP_USERNAME": "your-value",
        "IMAP_PASSWORD": "your-value",
        "READONLY": "your-value",
        "RESTRICT_OUTBOUND_TO_SELF": "your-value",
        "ALLOW_FILE_DOWNLOAD_DIR": "your-value",
        "ALLOW_EMPTY_FOLDER": "your-value",
        "DEBUG": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "proton-mail": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "proton-mail-mcp"
      ],
      "env": {
        "PROTONMAIL_USERNAME": "your-value",
        "PROTONMAIL_PASSWORD": "your-value",
        "PROTONMAIL_HOST": "your-value",
        "PROTONMAIL_PORT": "your-value",
        "PROTONMAIL_SECURE": "your-value",
        "IMAP_HOST": "your-value",
        "IMAP_PORT": "your-value",
        "IMAP_SECURE": "your-value",
        "IMAP_USERNAME": "your-value",
        "IMAP_PASSWORD": "your-value",
        "READONLY": "your-value",
        "RESTRICT_OUTBOUND_TO_SELF": "your-value",
        "ALLOW_FILE_DOWNLOAD_DIR": "your-value",
        "ALLOW_EMPTY_FOLDER": "your-value",
        "DEBUG": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • PROTONMAIL_USERNAME erforderlich env
    Your Proton Mail email address
  • PROTONMAIL_PASSWORD geheim erforderlich env
    Your Proton Mail SMTP password (not your login password; generate one in Proton settings)
  • PROTONMAIL_HOST env
    SMTP host
  • PROTONMAIL_PORT env
    SMTP port
  • PROTONMAIL_SECURE env
    Use TLS for SMTP (true for port 465)
  • IMAP_HOST env
    Proton Mail Bridge IMAP host (required for read/search tools)
  • IMAP_PORT env
    Proton Mail Bridge IMAP port
  • IMAP_SECURE env
    Use TLS for IMAP
  • IMAP_USERNAME env
    Proton Mail Bridge username (falls back to PROTONMAIL_USERNAME)
  • IMAP_PASSWORD geheim env
    Proton Mail Bridge password (falls back to PROTONMAIL_PASSWORD)
  • READONLY env
    Disable all mutating tools (send, move, delete, flags, labels, bulk ops, folder/label management)
  • RESTRICT_OUTBOUND_TO_SELF env
    Refuse live sends to any recipient other than PROTONMAIL_USERNAME (for throwaway/QA accounts)
  • ALLOW_FILE_DOWNLOAD_DIR env
    Allowlist directory enabling download_attachment.saveTo; when unset, attachments return as inline base64
  • ALLOW_EMPTY_FOLDER env
    Register the empty_folder tool (not recommended)
  • DEBUG env
    Enable verbose logging to stderr

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto sethbang bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Chat & E-Maili

  • Mehr Sterne als 0 % der anderen 1830 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 11 % der anderen 1830 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 1830 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Proton Mail (unofficial) sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: PROTONMAIL_USERNAME, PROTONMAIL_PASSWORD, IMAP_PASSWORD

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.0.2) kam vor 5 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Vexa, emailmd, MCP WhatsApp Cloud

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Vexa

von Vexa-ai

Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.

Läuft in der Cloud★ 2.949Apache-2.0Aktualisiert vor 2 Monaten
Installieren

emailmd

von anypost

Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.

Computer oder Cloud★ 1.385MITAktualisiert vor 32 Tagen
Installieren

MCP WhatsApp Cloud

von codespar

MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API

Läuft auf deinem Computer★ 277MITAktualisiert vor 5 Monaten
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

Proton Mail MCP Server

A Model Context Protocol (MCP) server that gives AI assistants full access to your Proton Mail account -- send, read, search, and organize email over SMTP and IMAP.

⚠️ Unofficial — not affiliated with Proton. This is an independent, community-built project. It is not developed, endorsed, sponsored, or supported by Proton AG. "Proton", "Proton Mail", and "Proton Mail Bridge" are trademarks of Proton AG, used here only to describe interoperability. It talks to Proton Mail over the standard SMTP submission endpoint and the locally-run Proton Mail Bridge; no Proton private API is used. Use at your own risk.

Demo

Features

  • Send, reply, and forward email via Proton Mail SMTP with threading headers; dedicated reply_all_email tool
  • Markdown bodies -- pass markdownBody to send_email / reply_email / reply_all_email / forward_email; rendered to HTML with a plain-text fallback
  • Read email via IMAP through Proton Mail Bridge
  • Attachments -- send files (base64), download to memory or to disk (saveTo + ALLOW_FILE_DOWNLOAD_DIR), forward a subset by part number
  • Search messages by sender, recipient, subject, body, date, flags, size, List-ID, attachment presence, attachment name (substring), and attachment MIME type
  • Organize -- move, delete, and flag/unflag messages individually or in bulk; bulk-update labels too
  • Bulk operations -- bulk_move, bulk_delete, bulk_update_flags, bulk_update_labels with dryRun preview and XOR uid/match input
  • Folder & label management -- create_folder, create_label, rename_folder, delete_folder (non-destructive on Proton); empty_folder (opt-in via ALLOW_EMPTY_FOLDER=true; not recommended)
  • Labeling -- update_message_labels adds and removes Proton labels on a message (additive — message stays in its source folder)
  • Aggregations -- count_messages, folder_stats, top_senders (with excludeSelf + per-row direction) for inbox analytics
  • Thread mutations -- move_thread, delete_thread, flag_thread with optional cross-folder walk; get_thread dedupes by Message-ID across mailbox copies
  • Snippets -- optional includeSnippet on list_messages and search_messages for at-a-glance previews
  • List folders with message and unread counts
  • Honest accounting -- post-STORE FETCH verify on flags/labels surfaces silently-dropped operations as notApplied; sent-copy lookup retries SEARCH to defeat Proton's index lag; Reply-To rewrites are surfaced in the send response
  • Safety first -- delete moves to Trash by default (via special-use resolver), read-only mode via READONLY=true, dryRun on all bulk ops, MCP tool annotations for client-side confirmation prompts, path-traversal defense on filesystem-touching tools
  • Security hardened -- input validation, credential sanitization, rate limiting, attachment size limits
  • Works with any MCP-compatible client (Claude Desktop, Claude Code, Cursor, etc.)

Prerequisites

Quick Start

Add to your MCP client

Add the following to your client's MCP server configuration (Claude Desktop, Claude Code, Cursor, etc.):

{

"mcpServers": { "protonmail": { "command": "npx", "args": ["-y", "proton-mail-mcp"], "env": { "PROTONMAIL_USERNAME": "your-email@protonmail.com", "PROTONMAIL_PASSWORD": "your-smtp-password" } } } }

That's it — npx will download and run the server automatically. See Configuration for all available environment variables.

Install from source

If you prefer to run from a local clone:

git clone https://github.com/sethbang/proton-mail-mcp.git

cd proton-mail-mcp npm install npm run build

Then use this MCP config instead:

{

"mcpServers": { "protonmail": { "command": "node", "args": ["/absolute/path/to/proton-mail-mcp/build/index.js"], "env": { "PROTONMAIL_USERNAME": "your-email@protonmail.com", "PROTONMAIL_PASSWORD": "your-smtp-password" } } } }

Tools

Sending

All send tools return the Message-ID of the sent message in their response, which can be used to locate the message via IMAP search. All four send tools (send_email, reply_email, reply_all_email, forward_email) perform a best-effort lookup of the sent copy UID in the resolved \Sent folder (retried across ~30s to defeat Proton's indexing lag) and lead the response with a machine-parseable token prefix — [sent-copy:verified] or [sent-copy:unverified], plus [reply-to:preserved|rewritten|stripped|unverified] when replyTo was requested. Agents can grep these tokens instead of text-matching prose. When the Sent-copy lookup converges, the response also includes a Sent copy UID: N in Sent clause; when it doesn't, the leading verb switches from "X sent successfully (Sent-copy verified)" to "X send accepted by SMTP (Sent-copy unverified within the lookup window)" — the message did go out, but per-delivery verification couldn't be completed within the budget.

🛡️ HTML sanitization defaults to ON (since v1.0.0). Send / reply / forward / save_draft tools strip , event handlers, inline style attributes, and remote beacons via a conservative allowlist before delivery. Pass sanitizeHtml: false to preserve full-fidelity HTML for trusted-content workflows. The success response notes when sanitization ran.

⚠️ Display-name spoofing partially defended. As of v1.0.0, fromName rejects values containing @ by default — without this guard, a fromName like "Anthropic Security " reaches the wire as Anthropic Security security@anthropic.com after angle-bracket sanitization, which mail clients render as a forged sender. Pass allowAddressLikeFromName: true to override for legitimate product names. SMTP itself still prevents *address-level* spoofing (the envelope From: is bound to your authenticated identity), and arbitrary display names without @ are still allowed (e.g. "CEO of Acme") — treat fromName like any other user-controllable string.

All send/reply/forward/save_draft tools accept an alternative markdownBody parameter (rendered to HTML via marked) — mutually exclusive with body+isHtml. sanitizeHtml applies after Markdown rendering.

🛡️ Outbound preview + self-only lock. send_email, reply_email, reply_all_email, and forward_email accept dryRun: true — it runs all validation and resolves the complete recipient set (To/CC/BCC, including the reply-all fan-out) and returns it without sending, leading with an [outbound:*] token and an explicit list of any external (non-self) recipients. Use it to confirm exactly who would receive the mail before a live call. For throwaway/QA accounts, set RESTRICT_OUTBOUND_TO_SELF=true (see Environment variables) to *refuse* any live send to a non-self recipient — preventing an agent from fanning real mail out to external addresses embedded in seed data. (Preview is caller-opt-in; the env lock is enforced server-side with no per-call override.)

send_email

Send an email using Proton Mail SMTP.

ParameterRequiredDescription
toYesRecipient address(es), comma-separated
subjectYesSubject line
bodyConditionalPlain text or HTML content. Required unless markdownBody is provided
isHtmlNoWhether body is HTML (default: false)
markdownBodyNoMarkdown source — rendered to HTML before sending. Mutually exclusive with body/isHtml
sanitizeHtmlNoStrip scripts, event handlers, inline styles, and remote beacons via a conservative allowlist when the body is HTML. Default `true` as of v1.0.0. Pass false to preserve full-fidelity HTML. No-op on plain-text
ccNoCC recipient(s), comma-separated
bccNoBCC recipient(s), comma-separated (count in response dedupes against To/CC)
replyToNoReply-To address (Proton SMTP may rewrite values that don't match an authenticated identity; rewrites are surfaced in the response)
fromNameNoDisplay name for the From field. Rejects values containing @ by default (display-name-as-address spoofing defense — see warning above). Pass allowAddressLikeFromName: true to override for legitimate cases (product names with @)
allowAddressLikeFromNameNoOpt-in escape valve for fromName containing @. Default false
attachmentsNoArray of {filename, content, contentType}. content is validated as base64 at the Zod boundary (catches malformed payloads before nodemailer silently emits garbage bytes); contentType is validated as a MIME type/subtype (catches malformed values before SMTP rejects the message)
dryRunNoValidate and resolve the full recipient set (To/CC/BCC) + subject + body without sending. Returns a preview leading with an [outbound:*] token and an explicit list of any external (non-self) recipients (default: false)
reply_email

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

ParameterRequiredDescription
uidYesUID of the message to reply to
bodyConditionalReply body content. Required unless markdownBody is provided
folderNoFolder containing the original message (default: INBOX)
isHtmlNoWhether body is HTML (default: false)
markdownBodyNoMarkdown source. Mutually exclusive with body/isHtml
sanitizeHtmlNoStrip scripts, event handlers, inline styles, and remote beacons via a conservative allowlist when the body is HTML. Default `true` as of v1.0.0. Pass false to preserve full-fidelity HTML. No-op on plain-text
ccNoAdditional CC recipients, comma-separated
bccNoBCC recipients, comma-separated
replyAllNoReply to all recipients instead of just sender (default: false). Prefer the dedicated reply_all_email tool for discoverability
includeQuoteNoInclude quoted original message below reply (default: true)
dryRunNoResolve the reply recipients (incl. reply-all fan-out) + subject without sending; returns a preview of who would receive it (default: false)
reply_all_email

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

ParameterRequiredDescription
uidYesUID of the message to reply to
bodyConditionalReply body content. Required unless markdownBody is provided

| folder | No

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen