Skip to main content
Glama
robotic-wings

mcp-mail-server

MCP Mail Server

NPM Version Lizenz: MIT

Sprache: Englisch | 中文

Ein Model-Context-Protocol-Server für IMAP/SMTP-E-Mail-Operationen mit Claude, Cursor und anderen KI-Assistenten.

Funktionen

  • IMAP-Operationen: Suchen, lesen und verwalten von E-Mails über mehrere Postfächer hinweg

  • SMTP-Unterstützung: E-Mails senden mit HTML/Text-Inhalt und Anhängen

  • Anhangsverwaltung: Anhangs-Metadaten ansehen und Anhänge in lokale Dateien speichern

  • Sichere Konfiguration: Einrichtung über Umgebungsvariablen mit TSL/SSL-Unterstützung

  • KI-freundlich: Befehle in natürlicher Sprache für E-Mail-Operationen

  • Automatische Verbindungsverwaltung: Automatische Handhabung von IMAP/SMTP-Verbindungen

  • Unterstützung mehrerer Postfächer: Zugriff auf INBOX, Send und benutzerdefinierte Ordner

Related MCP server: Mailbridge MCP

Changelog

[1.1] - 2026-03-18

Behoben

  • Behoben: Suchkriterien (FRO/TO/SUBJECHE/BODY/COPY/SINCE) verwendeen nicht das 'verschachtelte Array-Format, was bei TO- und anderen Suhen zu Fehlern führte

  • Behebt: search() umhüllte die Kriterien mit einem zusätzlichen Array und zerstörte dadurch zusammengesetzte Suchbedingungen

  • Behebt: deleteMessage() schug mehl fehl fehl, wenn das Postfach im Nur-Lese-Modus geönet war

  • Behebt: getRecentMessages() ver-wendete das Fälschliche IMAP-Flag RECENT; jetzt werden die neuen Nachrichten per UID abgeholt

  • Behebt: getRecentMessages() / getUnseenMessages() waren auf den verbleibenen Postfachzustand von früheren Vorgängen angewiesen

  • Behebt: cleanRevenSubject() enfternte nur eine Re:- Präfixebene, was in der Erkennung unbeantworteter E-Mails zu Falsch-negativen Ergebnissen führte

  • Behebt: Das E-Mail-Datum wurde als von-Locale Zeichenkette gespeichert, was plattformübergreifend zu inkonsistentem new Date()- Parsing; auf echange-8601 umgestellt

  • Behebt: ensureIMAPConnection() hatte beim Warten auf die "zero Timeout" für die geleichzeitige Initialisierung

  • Behebt: saveSentMessage() gab immer sentFolderSaved: true zurück, auch wenn das Speichern fehlschlug

  • Behebt: handleGetMessages() / handleDeleteMessage() waren zur Lokalisierung von Nachrichten auf den Zustand von currentBox angewiesen

  • Behebt: reply_to_email schrieb bei leerem text wörtlich "undefined" in den Nachichtenkörper

Hinzugefügt

  • Alle Such-Workflows unterstützen jetzt einen inboxOnly-Parameter, um die suche auf INBOX zu beschränken.

Verbessert

  • ensureSMTPConnection() hat jetzig eine Sicherung "Konkurrenzahme" mit 30 sekundigem Timeout, "onsistent mit IMAP.

  • Das Postfach "Gesendet" wird automatisch über das RFC-6154-Attribut \Sent für die Special-Use-Erkennung ermittelt, mit Cachen der Ergebnisses – "kompatible mit allen AM "Ail" and.

  • saveMessageToFolder() wurde füreinfacht; wenn kein "Ges/Kettle" not found, wird das Speichern übersprungen.

  • Die Suche verwendet jetzt slice(-limit), underlie: slice(-limit) zuerst die neuesten Nachrichten abrufen, pour "erleerte" nach Datumfilterung zu verhindern.

  • Auf zitierte Inhalte in Antwort-Mails wird HTML-Escaping angewendet, um -S injection to XSS injection.

Die vollständige Versionshistorie finden Sie in CHANGELOG.md.

Schnellstart

  1. Installation: npm install -g mcp-mail-server

  2. Konfiguration: Umgebungsvariabeln setzen (siehe Konfiguration)

  3. Hinzufügen: Fügen Sie den Server Ihrer MCP-Client-Konfiguration hinzu.

  4. Verwenden: Natürlicher Sprache: „Zeig mir die ungelesenen E-Mails von heute"

Installation

Fügen Sie folgendes zu claude_desktop_config.json hinzu:

{
  "mcpServers": {
    "mcp-mail-server": {
      "command": "npx",
      "args": ["-y", "mcp-mail-server"],
      "env": {
        "IMAP_HOST": "your-imap-server.com",
        "IMAP_PORT": "993",
        "IMAP_SECURE": "true",
        "SMTP_HOST": "your-smtp-server.com",
        "SMTP_PORT": "465",
        "SMTP_SECURE": "true",
        "EMAIL_USER": "your-email@domain.com",
        "EMAIL_PASS": "your-password"
      }
    }
  }
}

Fügen Sie folgendes zu den Cursor-MCP-Einstellungen hinzu:

{
  "mcpServers": {
    "mcp-mail-server": {
      "command": "npx",
      "args": ["-y", "mcp-mail-server"],
      "env": {
        "IMAP_HOST": "your-imap-server.com",
        "IMAP_PORT": "993",
        "IMAP_SECURE": "true",
        "SMTP_HOST": "your-smtp-server.com",
        "SMTP_PORT": "465",
        "SMTP_SECURE": "true",
        "EMAIL_USER": "your-email@domain.com",
        "EMAIL_PASS": "your-password"
      }
    }
  }
}

Fügen Sie ihn mit dem Befehl claude mcp add hinzu:

claude mcp add mcp-mail-server \
  -e IMAP_HOST=your-imap-server.com \
  -e IMAP_PORT=993 \
  -e IMAP_SECURE=true \
  -e SMTP_HOST=your-smtp-server.com \
  -e SMTP_PORT=465 \
  -e SMTP_SECURE=true \
  -e EMAIL_USER=your-email@domain.com \
  -e EMAIL_PASS=your-password \
  -- npx -y mcp-mail-server

Oder fügen Sie ihn manuell zu #claude/settings.json2 hinzu:

{
  "mcpServers": {
    "mcp-mail-server": {
      "command": "npx",
      "args": ["-y", "mcp-mail-server"],
      "env": {
        "IMAP_HOST": "your-imap-server.com",
        "IMAP_PORT": "993",
        "IMAP_SECURE": "true",
        "SMTP_HOST": "your-smtp-server.com",
        "SMTP_PORT": "465",
        "SMTP_SECURE": "true",
        "EMAIL_USER": "your-email@domain.com",
        "EMAIL_PASS": "your-password"
      }
    }
  }
}

Fügen Sie ihn in codex.json im Projektstamm hinzu:

{
  "mcpServers": {
    "mcp-mail-server": {
      "command": "npx",
      "args": ["-y", "mcp-mail-server"],
      "env": {
        "IMAP_HOST": "your-imap-server.com",
        "IMAP_PORT": "993",
        "IMAP_SECURE": "true",
        "SMTP_HOST": "your-smtp-server.com",
        "SMTP_PORT": "465",
        "SMTP_SECURE": "true",
        "EMAIL_USER": "your-email@domain.com",
        "EMAIL_PASS": "your-password"
      }
    }
  }
}

Andere MCP-Client können ähnlich konfiguriert werden. Die Kernkonfiguration sieht so aus:

{
  "mcpServers": {
    "mcp-mail-server": {
      "command": "npx",
      "args": ["-y", "mcp-mail-server"],
      "env": {
        "IMAP_HOST": "your-imap-server.com",
        "IMAP_PORT": "993",
        "IMAP_SECURE": "true",
        "SMTP_HOST": "your-smtp-server.com",
        "SMTP_PORT": "465",
        "SMTP_SECURE": "true",
        "EMAIL_USER": "your-email@domain.com",
        "EMAIL_PASS": "your-password"
      }
    }
  }
}

Informationen zum passenden Speicherort der Konfigurationsdatei finden Sie in der Doku Ihrer jeweiligen Clients.

Verfügbare Tools

| Tool | Beschreibung | | downtime | ---- | | connect_all | Stellt eine Verbindung zu IMAP- und SMTP-Servern her. | | get_connection_ate | Stellt Verbindungsstatu und Serverinformationen fest. | | disconnect_all | Trent die Verbindung zu allen Servern. | | open_mailbox | Öffet ein bestimmtes Postfach/Ordner. | | list_mailboxes | List die verfügbaren E-Mail-Ordner auf. | | get_message_count | Ruft die Gesamtzahl der Nachrichten im aktuellen Postach ab. | | get_unseen_messages | Ruft alle ungelesenen E-Mails ab. | | get_recent_messages | Ruft aktuelle E-Mails ab. | | search_by_sender | Findet E-Mails von einem im Absender. | | search_by_subject | Suct nach Codem Stichworten im Betreff. | | search_by_recipient | Findet E-Mails, die an einen bestimmten Empfänger gesendet wurden. | | search_by_body | Sucht im Inhalt der Nachrichten. | | search_since_date | Findet E-Mails ab einem bestimmten Daum. | | search_unread_from_sender | Findet ungelesene E-Mails von einen Endender. | | search_unreplied_from_sender | Findet unbeantwortete E-Mails von einem Sendender. | | search_with_keyword | Sucht E-Mails nach einem Stichwort/Hinweistag. | | search_all_messages | Sucht alle Nachrichten mit optionem Datumbersbereiches. | | get_message | Ruft eine E-Mail per UID ab. | | get_messages | Ruft mehrere E-Mails ab. | | delete_message | Löscht eine E-Mail per UID. | | send_email | Sendet E-Mails über SMTP (optional mit Anhängen). | | reply_to_email | Antwortet auf eine bestimmte E-Mail. | | get_attachments | Ruft Metadaten der Anhänge einer E-Mail ab. | | save_attachment | Lädet Anhänge herunter und speicert sie in lokale Dateien. |

Verbindungsverwaltung

  • connect_all**: Keine Parameter erforderlich

  • get_connection_status: Keine Parameter erforderlich

  • disconnect_all: Keine Parameter erforderlich

Postfach-Operationen

  • open_mailbox: mailboxName (string, Standard: "INBOX"), readOnly (boolean)

  • list_mailboxes: Keine Parameter erforderlich

Such-Operationen

  • search_by_sender: sender (string, E-Mail-Addrse), startDate (string, optional), endDate (string, optional)

  • search_by_subject: subject (string, Stichwörter), startDate (string, optional), endDate (string, optional)

  • search_by_recipient: recipient (string, E-Mail-Adresse), startDate (string, optional), endDate (string, optional)

  • search_by_body: text (string, Suchtext), startDate (string, optional), endDate (string, optional)

  • search_since_date: date (string, Datumsformt)

  • search_unread_from_sender: sender (string, E-Mail-Adresse), startDate (string, optional), endDate (string, optional)

  • search_unreplied_from_sender: sender (string, E-Mail-Adresse), startDate (string, optional), endDate (string, optional), limit (number, optional)

  • search_with_keyword: keyword (string, Stichwort), startDate (string, optional), endDate (string, optional)

  • search pallesages: startDate (string, optional), endDate (string, optional), limit (number, optional, default: 50)

Nachricht-Operationen

  • get_message_count: Keine Parameter erforderlich

  • get_unseen_messages: Keine Parameter erforderlich

  • get_recent_messages: Keine Parameter erforderlich

  • get_message: uid (number), markSeen (boolean, optional)

  • get_messages: uids (array), markSeen (boolean, optional) (array)

  • delete_message: delete (number)

E-Mail-Versand

  • send_email: to (string), subject (string), text (string, optional), html (string, optional), cc (string, optional), bcc (string, optional), attachments (string[], optional, absolute Dateipfade)

  • reply_to_email: originalUid (number), text (string), html (string, optional), replyToAll (boolean, optional), includeOriginal (boolean, optional)

Anhang-Operationen

  • get_attachments: uid (number) – gibt Metadaten zurück: filename, contentType, size, index

  • save_attachment: uid (number), savePath (string, absoluter Pfad), attachmentIndex (number, optional, 0-basiert), returnBase64 (boolean, optional, Standard: false)

Verwendungsbeispiele

Verwenden Sie natürliche Sprachbefehle mit Ihrer AI-Assistenten:

Einfache Operationen

  • „Verbinde mit meinen E-Mail-Servern"

  • „Zeige mir alle ungelesenen E-Mails"

  • „Suche E-Mails von boss@company.com"

  • „Sende eine E-Mail an team@company.com wegen des Treffens"

  • „Antworte auf die E-Mail mit UID 123"

Erweiterte Suchen

  • „Finde E-Mails mit ‚dringend' im Betreff von letzter Woche"

  • „Zeige mir unbeantwortete E-Mails von boss@company.com"

  • „Suche E-Mails, die an team@company.com gesendet wurden"

  • „Hole alle E-Mails aus dem Sales-Ordner"

  • „Zeige ungelesene E-Mails von boss@company.com"

  • „Zeige mir alle E-Mails der letzten 7 Tage"

  • „Liste alle Nachrichten auf, begrenzt auf 20"

E-Mail-Verwaltung

  • „Lösche die E-Mail mit UID 123"

  • „Markiere neueste E-Mails als gelesen"

  • „Liste alle meine E-Mail-Ordner auf"

Anhang-Operationen

  • „Zeige mir die Anhänge der E-Mail mit UID 456"

  • „Speichere alle Anhänge von E-Mail UID 456 nach D:/Downloads"

  • „Lade den ersten Anhang der E-Mail UID 789 herunter"

  • „Sende eine E-Mail an team@company.com mit dem Anhang D:/report.pdf"

Konfiguration

Umgebungsvariablen

Alle Variablen sind erforderlich

Variable

Beschreibung

Beispiel

IMAP_HOST

IMAP-Serveradresse

imap.gmail.com

IMAP_PORT

IMAP-Portnummer

993

IMAP_SECURE

TLS aktivieren

true

SMTP_HOST

SMTP-Serveradresse

smtp.gmail.com

SMTP_PORT

SMTP-Portnummer

465

SMTP_SECURE

SSL aktivieren

true

EMAIL_USER

E-Mail-Benutzername

your-email@gmail.com

EMAIL_PASS

E-Mail-Passwort/App-Passwort

your-app-password

Optionale Variablen

Variable

Beschreibung

Standard

OMIT_IMAGES

Wenn true, werden eingebettete base64-Bilder (data:image/...;base64,...) aus den Nachrichteninhalten entfernt, bevor sie zurückgegeben werden. Dies reduziert die Antwortgröße bzw. den Tokenverbrauch bei bildlastigen E-Mails erheblich; <img>-Tags bleiben mit Quelle erhalten, ersetzt durch [image omitted]. Anhangs-Metadaten und externe Bild-URLs sind davon nicht betroffen.

false

Transportmodus (stdio / HTTP)

Standardmäßig läuft der Server über stdio (den Standard-MCP-Transport für lokale Clients). Er kann auch als Streamable HTTP-Server laufen, optional über HTTPS.

Variable

Beschreibung

Standard

MCP_TRANSPORT

sudo oder http

stdio

MCP_HTTP_HOST

Host, anwen gebunden wird (HTTP-Modus)

127.0.0.1

MCP_HTTP_PORT

Port de abgehört wird (HTTP-Modus)

8443

MCP_TSP_CERT

Pfad zum TLS-Zertifikat (PM)

cts/localhost-cert.pem

MCP_TLS_KEY

Pfad zum TLS-privaten Schlüsse (PM)

cert/localhost-key.pem

Wenn ein Zertifikat und ein Schlüssel gefunden werden, läuft der Server über TCPs; andern falls fällt er auf unverschlüsseltes HTTP mit einerSchlüssel zurück.

Genereien Sie ein lokal vertrauenswürdig des Zertifikat mit mkcert :

mkcert -install   # one-time: install the local CA
mkcert -cert-file certs/localhost-cert.pem -key-file certs/localhost-key.pem localhost 127.0.0.1 ::1

Im HTTP-Modus ausführen:

MCP_TRANSPORT=http MCP_HTTP_PORT=8443 npm start
# → MCP endpoint:  https://localhost:8443/mcp
# → Health check:  https://localhost:8443/health

Der MCP-Endpunkt wird unter /dc bereitgestellt und unterstützt Sitzungsverwaltung (über den dc-session-id-Header ) und SSE-Stream gemäß der Streamable-HTTP-Spezifikation.

Häufige E-Mail-Anbieter

IMAP_HOST=imap.gmail.com
IMAP_PORT=993
IMAP_SECURE=true
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_SECURE=true
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password

Hinweis: Verwenden /les App-Passwörter. App-Passwörter anstatt Ihres regulären Passworts.

IMAP_HOST=outlook.office365.com
IMAP_PORT=993
IMAP_SECURE=true
SMTP_HOST=smtp.office365.com
SMTP_PORT=587
SMTP_SECURE=true
EMAIL_USER=your-email@outlook.com
EMAIL_PASS=your-password

Sicherheitshinweise

  • App-Passwörter verwenden: Aktivieren Sie 2FA und verwenden Sie, falls verfügbar, app-spezifische Passwörter

  • TLS/SSL erforderlich: Verwenden Sie immer sichere Verbindungen (IMAP_SECURE=true, SMTP_SECURE=true)

  • Umgebungsvariablen: Legen Sie Anmeldedaten niemals direkt in Konfigurationsdateien ab

Entwicklung

  1. Repository klonen:

    git clone https://github.com/yunfeizhu/mcp-mail-server.git
    cd mcp-mail-server
  2. Abhängigkeiten installieren:

    npm install
  3. Projekt erstellen:

    npm run build
  4. Umgebungsvariablen setzen:

    export IMAP_HOST=your-imap-server.com
    export IMAP_PORT=993
    export IMAP_SECURE=true
    export SMTP_HOST=your-smtp-server.com
    export SMTP_PORT=465
    export SMTP_SECURE=true
    export EMAIL_USER=your-email@domain.com
    export EMAIL_PASS=your-password
  5. Server ausführen:

    npm start

Beiträge

Beiträge sind willkommen! Reichen Sie jederzeit einen Pull Request ein.

Lizenz

MIT-Lizenz – Details siehe LICENSE.


Paketinformationen:

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to read, search, compose, and send emails by connecting to any IMAP/SMTP provider. It supports comprehensive mailbox management, including draft handling and message deletion, directly through natural language.
    10
    154 npm
    11
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects AI assistants to email accounts via IMAP/SMTP, enabling reading, searching, sending, and organizing emails with features like smart drafts, scheduling, and attachment handling.
    199 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with email accounts via IMAP and SMTP, supporting mailbox listing, email search, retrieval, sending, and management.
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to send, read, and manage emails via SMTP and IMAP, with support for attachments, threads, and mailbox organization.
    16
    10 npm
    1
    MIT