IMAP MCP
This server gives Claude full read, manage, and send access to one or more IMAP mailboxes over SMTP, running locally.
Summary: A local MCP server for reading, organizing, drafting, and sending email across up to any number of configured IMAP accounts.
Accounts & connectivity — list configured accounts (never passwords), test IMAP and SMTP logins separately, and auto-detect IMAP/SMTP settings for any address without a password or login.
Browse folders — list all IMAP mailboxes including special roles (Sent, Drafts, Trash, Spam).
Search mail — filter by sender, recipient, subject, body/text, date range, seen/unseen, or flagged; returns UIDs, capped at 200 hits per call (default 25).
Read mail — fetch a full message by UID (headers, body, attachment list), optionally mark it read, include raw HTML, or cap body length; or get the raw RFC822 source for header/SPF/DKIM analysis.
Attachments — save one or all attachments from a message to disk (defaults to the configured download directory).
Organize — set or clear IMAP flags (read/unread, flagged, answered), move messages between folders, or move them to Trash (never permanent deletion).
Draft — create a draft in the IMAP mailbox without sending; supports reply threading via
inReplyToUid(sets In-Reply-To/References).Send — send via SMTP with To/Cc/Bcc, text and/or HTML, custom reply-to, local-path or base64 attachments, and proper reply threading; a copy is stored in the Sent folder. Sending is permanent and requires confirmation.
Multi-account aware — when more than one mailbox is configured, tools require an
accountparameter, and send permission can be granted per mailbox (read-only accounts can be left unable to send).
Notably absent: no permanent deletion, no OAuth2/XOAUTH2 (password auth only), and no push/IDLE — Claude only sees new mail when it actively checks.
Enables access to Gmail mailboxes via IMAP/SMTP for reading, searching, drafting, and sending emails when allowed.
Enables access to GMX mailboxes via IMAP/SMTP for reading, searching, drafting, and sending emails when allowed.
Enables access to Google Workspace mailboxes via IMAP/SMTP for reading, searching, drafting, and sending emails when allowed.
Enables access to Hetzner mailboxes via IMAP/SMTP for reading, searching, drafting, and sending emails when allowed.
Enables access to iCloud Mail via IMAP/SMTP for reading, searching, drafting, and sending emails when allowed.
Enables access to IONOS mailboxes via IMAP/SMTP for reading, searching, drafting, and sending emails when allowed.
Enables access to mailbox.org accounts via IMAP/SMTP for reading, searching, drafting, and sending emails when allowed.
Enables access to netcup mailboxes via IMAP/SMTP for reading, searching, drafting, and sending emails when allowed.
Enables access to WEB.DE mailboxes via IMAP/SMTP for reading, searching, drafting, and sending emails when allowed.
Click on "Deploy 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., "@IMAP MCPWhat unread emails are in my inbox today?"
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.
IMAP MCP
Lokaler MCP-Server, der Claude Zugriff auf beliebige IMAP-Postfächer gibt und E-Mails über SMTP versendet. Läuft komplett auf deinem Rechner — Zugangsdaten und Mails verlassen die Maschine nur Richtung deines Mailservers.
Es gibt zwei Wege:
Für wen | alle, die einfach ihr Postfach anbinden wollen | Entwicklung, mehr als zehn Postfächer, Linux, Claude Code |
Postfächer | bis zu zwei, mit den Zehner-Paketen bis zu zehn | beliebig viele |
Voraussetzungen | nur Claude Desktop (macOS oder Windows) | Node ≥ 18.17, Terminal |
Installation | Datei doppelklicken, Adresse + Passwort eintippen | klonen, bauen, JSON konfigurieren |
Server-Einstellungen | automatisch erkannt | automatisch oder von Hand |
Passwort liegt | im Schlüsselbund des Systems | im Klartext in |
Weg A: Fertiges Bundle
Claude Desktop bringt auf macOS und Windows eine eigene Node-Laufzeit mit. Als .mcpb-Bundle verpackt
braucht der Server weder Node noch Terminal noch Git.
Installieren
imap-mail.mcpbherunterladen (rund 1 MB, dieselbe Datei für macOS und Windows).Die Datei doppelklicken — alternativ ins Claude-Desktop-Fenster ziehen oder unter Einstellungen → Erweiterungen → Erweiterte Einstellungen → Erweiterung installieren auswählen.
Im Installationsdialog E-Mail-Adresse und Passwort eintragen. Alle anderen Felder sind optional.
Installieren, fertig. Kein Neustart nötig.
Erster Test im Chat: „Teste die Mail-Verbindung".
Das Bundle ist nicht signiert. Claude Desktop kann deshalb beim Installieren auf einen unbekannten Herausgeber hinweisen.
Was im Dialog abgefragt wird
Feld | |
E-Mail-Adresse | Pflichtfeld |
Passwort | Pflichtfeld. Landet im Schlüsselbund (macOS) bzw. der Anmeldeinformationsverwaltung (Windows), nicht in einer Datei |
Benutzername | optional — leer lassen, wenn man sich mit der E-Mail-Adresse anmeldet. Nur ausfüllen, wenn der Anbieter einen eigenen Anmeldenamen vergibt (siehe unten) |
Senden erlauben | Standardmäßig aus — Claude kann dann lesen und Entwürfe anlegen, aber nichts verschicken |
Absendername | optional |
Zweites Postfach: Adresse, Passwort, Benutzername, Senden, Absendername | optional — leer lassen, wenn nur ein Postfach gebraucht wird |
Server online nachschlagen | siehe Server-Erkennung |
IMAP-/SMTP-Server (je Postfach) | leer lassen, nur nötig, wenn die Erkennung scheitert |
Anhänge landen im Downloads-Ordner.
Related MCP server: IMAP MCP Server
Vor der Einrichtung
Die meisten Probleme entstehen nicht im Connector, sondern beim Mail-Anbieter:
Gmail, iCloud, Yahoo: Das normale Passwort wird abgelehnt. Nötig ist ein App-Passwort aus den Kontoeinstellungen, bei Gmail zusätzlich aktivierte Zwei-Faktor-Anmeldung.
GMX, Web.de: IMAP ist standardmäßig aus und muss im Webmail unter Einstellungen freigeschaltet werden.
Hotmail, Outlook.com, Live, MSN: werden nicht unterstützt. Microsoft lässt bei privaten Konten seit September 2024 keine Anmeldung per Passwort mehr zu, auch nicht mit App-Passwort, sondern nur noch OAuth2. Daran ändert auch der Schalter „IMAP erlauben“ im Microsoft-Konto nichts; der Server antwortet mit „LOGIN failed“ bzw. „Login disabled“. Ausweg: die Mails an ein anderes Postfach weiterleiten.
Microsoft 365 (Firmenkonten): Viele Organisationen haben die Anmeldung per Passwort ebenfalls abgeschaltet. Dann lässt sich das Postfach mit diesem Connector nicht anbinden (siehe Einschränkungen).
Anmeldename ist nicht die Adresse: Manche Anbieter und viele Firmenserver vergeben eigene Benutzernamen, etwa
m0123456bei All-Inkl oder einen Windows-Anmeldenamen bei Exchange. Den dann im Feld Benutzername eintragen (im Zehner-Paket mit Sammelfeldern: Abweichende Benutzernamen); er gilt für IMAP und SMTP. Die Server werden trotzdem aus der Adresse erkannt.Eigene Domain: Funktioniert in der Regel ohne weitere Angaben, weil der Anbieter über den MX-Eintrag der Domain erkannt wird.
Wer vorab wissen will, ob eine Adresse erkannt wird, kann Claude mit mail_detect_provider fragen —
das braucht weder Passwort noch Anmeldung.
Wo der Anbieter App-Passwörter anbietet, lohnen sie sich auch ohne Pflicht: Sie lassen sich einzeln widerrufen, ohne das Postfach-Passwort zu ändern.
Erste Schritte
Gute erste Fragen, die nur lesen und nichts verändern:
„Was ist heute ungelesen reingekommen?"
„Fass mir den längsten Mailverlauf dieser Woche zusammen."
„Von welchen Newslettern bekomme ich am meisten Mails?"
Senden bleibt so lange aus, bis es im Dialog freigegeben wird. Wer den Versand ausprobieren will, schickt die erste Testmail am besten an die eigene Adresse.
Zwei Postfächer
Im Dialog lassen sich bis zu zwei Postfächer einrichten, auch bei verschiedenen Anbietern. Jedes wird getrennt erkannt, und Senden wird je Postfach einzeln freigegeben: Man kann etwa das private Postfach nur lesbar lassen und nur im geschäftlichen den Versand erlauben.
Sobald zwei eingerichtet sind, nennt Claude das Postfach bei jedem Zugriff über seine Adresse. Fehlt diese Angabe, kommt eine Rückfrage statt einer stillen Annahme — das zählt vor allem beim Senden, damit keine Mail vom falschen Absender rausgeht. Im Chat reicht es, das Postfach beim Namen zu nennen: „Was ist heute im Geschäftspostfach reingekommen?"
Mehr als zwei Postfächer: die Zehner-Pakete
Für bis zu zehn Postfächer gibt es zwei eigene Pakete mit demselben Funktionsumfang. Sie unterscheiden sich nur darin, wie der Installationsdialog aufgebaut ist:
Felder je Postfach | Sammelfelder | |
Download | ||
Dialog | wie im Standard-Paket, nur zehnmal: jedes Postfach hat eigene Felder | je Postfach nur Adresse und Passwort, Sonderfälle in wenigen gemeinsamen Feldern |
Felder | 71, langer Dialog | 25, kurzer Dialog |
Geeignet für | alle, die nichts in Listen tippen möchten | viele Postfächer, die bis auf Adresse und Passwort nichts brauchen |
Felder je Postfach (imap-mail-10-einzeln.mcpb)
Für jedes der zehn Postfächer gibt es dieselben Felder wie im Standard-Paket: Adresse, Passwort, Benutzername, „Senden erlauben", Absendername und — gesammelt am Ende des Dialogs — IMAP- und SMTP-Server. Nicht benötigte Postfächer bleiben einfach leer.
Sammelfelder (imap-mail-10.mcpb)
Hier stehen je Postfach nur Adresse und Passwort. Alles, was man selten braucht, steht darunter in wenigen gemeinsamen Feldern, in denen jeder Eintrag mit der Adresse des Postfachs beginnt:
Feld | |
Postfach 1: E-Mail-Adresse, Passwort | Pflichtfelder |
Postfach 2–10: E-Mail-Adresse, Passwort | optional — leer lassen, was nicht gebraucht wird |
Senden erlauben für | Adressen mit Komma getrennt, z.B. |
Absendernamen | optional: |
Abweichende Benutzernamen | optional, nur wenn der Anmeldename nicht die Adresse ist: |
Server von Hand | leer lassen, nur nötig, wenn die Erkennung scheitert: |
Server online nachschlagen | wie im Standard-Paket |
In den gemeinsamen Feldern trennt ein Semikolon die Postfächer, so dürfen Namen Kommas enthalten
(anna@web.de = Beispiel, Anna). Groß- und Kleinschreibung der Adresse spielt keine Rolle. Steht dort
eine Adresse, die oben nicht eingetragen ist, startet der Connector nicht, sondern meldet genau diese
Zeile — ein Tippfehler bleibt also nicht unbemerkt.
Nur ein Paket installieren
Claude Desktop führt alle drei Pakete als getrennte Erweiterungen; mehrere zugleich würden jedes Werkzeug doppelt anbieten. Wer wechselt, deinstalliert das alte Paket vorher.
Mehr als zehn gehen über ein Bundle nicht, weil das Manifest-Format keine beliebig langen Feldlisten
kennt. Über config.json (Weg B) ist die Zahl unbegrenzt.
Wie die Server-Erkennung funktioniert
Niemand muss seinen IMAP-Server kennen. Der Connector probiert der Reihe nach:
Eingebaute Anbieterliste — Gmail, GMX, Web.de, T-Online, Posteo, mailbox.org, iCloud, Yahoo, Outlook und weitere, erkannt an der Domain der Adresse.
MX-Eintrag der Domain — der wichtigste Fall bei eigenen Domains.
info@meinefirma.demit einem MX-Eintrag aufsmtpin.rzone.dewird als Strato-Postfach erkannt. Deckt Strato, IONOS, All-Inkl, Hetzner, netcup, domainFACTORY, united-domains, Google Workspace und Microsoft 365 ab.Mozillas Autoconfig-Datenbank — dieselbe Quelle, aus der Thunderbird seine Einstellungen zieht.
Raten aus der Domain (
imap.<domain>), klar als unbestätigt gekennzeichnet.
Schritte 2 und 3 brauchen Netzwerk und fragen dabei nur die Domain ab, nie die Adresse oder das Passwort. Wer das nicht möchte, schaltet „Server online nachschlagen" aus; dann greift nur die eingebaute Liste, und seltenere Anbieter müssen von Hand eingetragen werden.
Aktualisieren und entfernen
Update: Unter Einstellungen → Erweiterungen die alte Version deinstallieren, dann die neue Datei installieren. Die Zugangsdaten werden dabei neu abgefragt.
Entfernen: Ebenfalls über Einstellungen → Erweiterungen. Die Passwörter werden dabei aus dem Schlüsselbund gelöscht, es bleiben keine Zugangsdaten auf dem Rechner zurück.
Weg B: Aus dem Quellcode
1. Installieren
git clone https://github.com/abconsultdev/imap-mcp.git
cd imap-mcp && npm install && npm run build2. Konfigurieren
config.example.json nach config.json kopieren und ausfüllen. Die Datei enthält Passwörter im
Klartext und steht deshalb in .gitignore.
{
"accounts": [
{
"name": "hauptpostfach",
"email": "info@example.com",
"displayName": "Dein Name",
"allowSend": true,
"imap": { "host": "imap.example.com", "port": 993, "secure": true, "user": "info@example.com", "pass": "..." },
"smtp": { "host": "smtp.example.com", "port": 465, "secure": true, "user": "info@example.com", "pass": "..." }
}
]
}Feld | Bedeutung |
| Kurzname, den du im Chat benutzt („lies die Mails im hauptpostfach") |
| Absendername im From-Header |
| Anmeldename, meist die Adresse. Weicht er ab, hier eintragen |
|
|
|
|
| nur für interne Server mit selbstsigniertem Zertifikat |
| IMAP4rev2 nutzen, falls der Server es anbietet. Standard aus, siehe Fehlersuche |
| optional, überschreibt die Auto-Erkennung von Gesendet/Entwürfe/Papierkorb |
| (oberste Ebene) Ordner für Anhänge, Standard |
Mehrere Postfächer: einfach weitere Objekte in accounts eintragen. Bei mehr als einem Account
verlangt jedes Tool den Parameter account.
Gängige Server
Anbieter | IMAP | SMTP | Hinweis |
Gmail / Workspace |
|
| App-Passwort nötig (2FA erforderlich) |
Microsoft 365 |
|
| Passwort-Anmeldung oft gesperrt, siehe Einschränkungen |
Hotmail / Outlook.com | — | — | nicht unterstützt, nur OAuth2 möglich |
IONOS |
|
| |
Strato |
|
| |
All-Inkl |
|
| |
mailbox.org |
|
| eigenes App-Passwort empfohlen |
GMX / Web.de |
|
| IMAP muss in den Einstellungen freigeschaltet sein |
Alternative: Umgebungsvariablen
Ohne config.json genügen MAIL_EMAIL und MAIL_PASSWORD für einen Account — die Server werden dann
automatisch erkannt. Das ist auch der Weg, den das .mcpb-Bundle nutzt. Umgebungsvariablen haben
Vorrang vor config.json.
Variable | |
| Pflicht |
| weitere Postfächer |
| Adressen, die senden dürfen, mit Komma getrennt, oder |
|
|
|
|
|
|
|
|
| Ordner für Anhänge, Standard |
| abweichender Pfad zur |
Einzeln je Postfach gehen weiterhin MAIL_USER, MAIL_DISPLAY_NAME, MAIL_ALLOW_SEND, MAIL_IMAP_HOST,
MAIL_SMTP_HOST, MAIL_IMAP_PORT, MAIL_SMTP_PORT und dasselbe mit MAIL2_ bis MAIL10_. Sie haben Vorrang
vor den gemeinsamen Variablen; fürs Senden genügt eine der beiden Freigaben.
Werte, die noch einen unersetzten Platzhalter der Form ${...} enthalten, werden als nicht gesetzt
behandelt. Die älteren Namen IMAP_HOST, IMAP_USER, IMAP_PASS, IMAP_PORT, SMTP_HOST,
SMTP_PORT, SMTP_USER, SMTP_PASS funktionieren weiterhin.
3. In Claude eintragen
Der Server spricht MCP über stdio. In Claude Desktop unter Einstellungen → Entwickler → Konfiguration bearbeiten eintragen — der Pfad muss absolut sein:
{
"mcpServers": {
"imap": {
"command": "node",
"args": ["/absoluter/pfad/zu/imap-mcp/dist/index.js"]
}
}
}Die Datei liegt unter %APPDATA%\Claude\claude_desktop_config.json (Windows) bzw.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS). Unter Windows werden
Backslashes im Pfad verdoppelt ("C:\\Users\\...\\dist\\index.js") oder durch / ersetzt; unter
macOS wird ~ nicht aufgelöst. Startet der Server nicht, weil Claude Desktop Node nicht findet
(typisch bei nvm oder Homebrew), statt "node" den vollen Pfad aus which node eintragen.
Danach Claude Desktop komplett beenden und neu starten — MCP-Server werden nur beim Start geladen.
In Claude Code:
claude mcp add imap --scope user -- node /absoluter/pfad/zu/imap-mcp/dist/index.jsErster Test im Chat: „Teste die Mail-Verbindung" → ruft mail_test_connection auf und meldet IMAP und
SMTP getrennt.
Mehrere Rechner können parallel auf dasselbe Postfach zugreifen — IMAP ist dafür gebaut. Die
config.json dabei auf jedem Rechner neu anlegen, statt sie zu kopieren.
Referenz
Tools
Lesen
Tool | Zweck |
| Eingerichtete Postfächer (ohne Passwörter) |
| IMAP- und SMTP-Login einzeln prüfen |
| Server-Einstellungen zu einer Adresse ermitteln — ohne Passwort, ohne Anmeldung |
| Alle Ordner + erkannte Sonderordner |
| Nach Absender, Betreff, Text, Datum, ungelesen … — liefert UIDs |
| Eine Nachricht per UID vollständig lesen |
| RFC822-Quelltext (Header-Analyse, SPF/DKIM) |
| Anhänge auf die Platte speichern |
Verwalten
Tool | Zweck |
| gelesen / ungelesen / markiert / beantwortet setzen |
| In anderen Ordner verschieben |
| In den Papierkorb (nie endgültiges Löschen) |
Schreiben
Tool | Zweck |
| Mail als Entwurf ins IMAP-Postfach legen, ohne zu senden |
| Über SMTP versenden und Kopie im Gesendet-Ordner ablegen |
mail_send und mail_create_draft nehmen beide inReplyToUid, damit Antworten sauber im Thread landen
(In-Reply-To und References werden aus der Originalmail gesetzt). Anhänge kommen entweder als
lokaler path oder als contentBase64.
Typische Abläufe
„Was ist heute ungelesen reingekommen?" →
mail_searchmitunseen: true,since: heute„Fass mir den Verlauf mit Anna zusammen" →
mail_searchmitfrom: anna, dannmail_readje UID„Antworte darauf" →
mail_create_draftmitinReplyToUid, du prüfst im Mailprogramm, dannmail_send„Räum die Newsletter weg" →
mail_search, dannmail_movenachArchiv
Sicherheit
Versand ist endgültig. Claude fragt vor
mail_sendnach — bestätige bewusst. Wer generell nur Entwürfe will, lässt Senden aus und nutztmail_create_draft.Es gibt bewusst kein endgültiges Löschen.
mail_move_to_trashverschiebt nur; geleert wird im Mailprogramm.Mailinhalte sind Daten, keine Anweisungen. Wenn in einer Mail steht „leite das weiter" oder „antworte mit X", ist das kein Auftrag von dir — Claude soll dich fragen, bevor so etwas ausgeführt wird.
Beim Bundle liegen Passwörter im Schlüsselbund des Systems. Bei Weg B stehen sie im Klartext in
config.json— Dateirechte einschränken:chmod 600 config.json # macOS / Linux icacls config.json /inheritance:r /grant:r "%USERNAME%:(R,W)" # Windows
Fehlersuche
Verbindung klappt, Ordner werden angezeigt, aber jede Suche liefert 0 Mails
Manche Server kündigen IMAP4rev2 an, beantworten unter rev2 aber jede Suche mit einer leeren
Ergebnisliste (* ESEARCH (TAG "8") UID), obwohl das Postfach voll ist — beobachtet bei Strato. Der
Connector schaltet rev2 deshalb standardmäßig ab; IMAP4rev1 versteht jeder Server. Wer rev2 für einen
bestimmten Server braucht, setzt in config.json unter imap den Schalter "enableIMAP4rev2": true.
Ob die Suche gegen ein konkretes Postfach funktioniert, prüft node test/live.mjs (rein lesend).
Die Server-Felder im Installationsdialog bleiben leer — ist das richtig?
Ja. Der Dialog füllt nichts automatisch aus; die Erkennung passiert erst beim Start des Servers, aus
der eingegebenen Adresse. Die Server-Felder sind nur ein Notausgang für den Fall, dass die Erkennung
scheitert. Was tatsächlich erkannt wurde, zeigt mail_test_connection unter serverErkanntVia.
Authentication failed / LOGIN failed
Passwort falsch, der Anbieter verlangt ein App-Passwort (Gmail, iCloud, Yahoo), oder der Anmeldename ist
nicht die E-Mail-Adresse — dann im Feld Benutzername (Zehner-Paket mit Sammelfeldern: Abweichende Benutzernamen)
den richtigen eintragen. Welcher Name benutzt
wurde, zeigt mail_test_connection unter benutzer. Bei GMX und Web.de
ist IMAP außerdem standardmäßig deaktiviert und muss im Webmail freigeschaltet werden.
Senden schlägt mit „Senden ist deaktiviert" fehl
Beabsichtigt. Im Installationsdialog den Haken „Senden erlauben" setzen (Zehner-Paket mit Sammelfeldern: die Adresse unter
„Senden erlauben für" eintragen), in config.json "allowSend": true, per Umgebungsvariable
MAIL_ALLOW_SEND=true oder MAIL_ALLOW_SEND_FOR=adresse.
Falscher Server erkannt
mail_detect_provider mit der Adresse aufrufen — die Antwort zeigt, aus welcher Quelle die Werte
stammen. Notfalls die Server im Installationsdialog von Hand eintragen.
getaddrinfo ENOTFOUND ${user_config.imap_host}
Tritt nur mit Versionen vor 1.0.1 auf. Alte Erweiterung deinstallieren, aktuelle installieren.
Einschränkungen
Nur Passwort-Authentifizierung. Kein OAuth2/XOAUTH2. Postfächer, bei denen der Anbieter die Passwort-Anmeldung abgeschaltet hat, lassen sich damit nicht anbinden. Das betrifft alle privaten Microsoft-Konten (Hotmail, Outlook.com, Live, MSN; seit September 2024) und viele Microsoft-365-Organisationen. Ein Wechsel zu Microsoft 365 hilft nicht: Beim Umzug auf ein Business-Konto wird die Hotmail-Adresse nicht übernommen, es entsteht eine neue
…onmicrosoft.com-Adresse. Ein persönliches Microsoft-365-Abo behält die Adresse zwar, bleibt aber ein privates Microsoft-Konto — es lässt sich weder mit diesem Connector anbinden noch über die Microsoft-365-Connectoren von Claude oder ChatGPT.Die Volltextsuche macht der IMAP-Server, nicht dieser Connector — wie gut
body/textfunktioniert, hängt vom Anbieter ab.mail_searchholt Kopfdaten für bis zu 200 Treffer pro Aufruf.Kein Push/IDLE — Claude sieht neue Mails, wenn es aktiv nachschaut.
Entwicklung
npm run build # nach dist/ kompilieren (Weg B)
npm run watch # während der Entwicklung
npm run bundle # alle drei .mcpb-Pakete nach build/, inkl. aller Prüfungen (Weg A)
node test/unit.mjs # Helfer + MailComposer (ohne Netzwerk)
node test/detect.mjs # Anbieter-Erkennung: Liste, MX-Muster, Autoconfig
node test/env-matrix.mjs # Konfiguration über Umgebungsvariablen, 39 Fälle
node test/live.mjs # gegen das echte Postfach aus config.json, rein lesendDrei Pakete, ein Server: imap-mail.mcpb, imap-mail-10.mcpb und imap-mail-10-einzeln.mcpb enthalten
denselben Server und unterscheiden sich nur im Manifest (manifest.json, manifest-10.json,
manifest-10-einzeln.json), also im Installationsdialog. Der Server versteht beide Arten von Feldern.
manifest-10-einzeln.json wird von scripts/manifest-10-einzeln.mjs aus manifest.json erzeugt (läuft bei
npm run bundle mit) und wird nicht von Hand bearbeitet. Die Konfigurationsmatrix liest die Felder direkt
aus allen drei Manifesten.
Das Bundle wird mit esbuild zu einer einzigen JavaScript-Datei gebündelt: vier Dateien statt rund 5000, knapp 1 MB statt 6 MB. Ohne Bündelung lägen Typdeklarationen, Sourcemaps und die HTTP-Transporte des MCP-SDK im Bundle, die ein stdio-Server nie lädt.
Bündeln kann dynamisch nachgeladene Module zerreißen — iconv-lite lädt Zeichensatz-Tabellen zur
Laufzeit, mailparser und MailComposer ziehen Module über require() herein. Ein solcher Bruch fiele
sonst erst beim ersten Umlaut in einer echten Mail auf. Deshalb prüft npm run bundle sein eigenes
Ergebnis, bevor gepackt wird: Zeichensatz-Umwandlung, Anhänge, Mail-Aufbau und die komplette
Konfigurationsmatrix laufen gegen die gebündelte Datei (test/bundle-libs.ts wird dafür eigens
mitgebündelt). Schlägt eine Prüfung fehl, entsteht kein .mcpb. Mit npm run bundle -- --skip-checks
lässt sich das überspringen.
Der Live-Test ist der einzige, der einen echten Mailserver fragt. Er vergleicht, was der Server laut
STATUS enthält, mit dem, was die Suche findet — eine erfolgreiche Verbindung und eine vollständige
Ordnerliste allein beweisen nicht, dass die Suche funktioniert. Vor einer neuen Version lohnt es sich,
ihn mit Postfächern der wichtigsten Anbieter laufen zu lassen. Die MX-Erkennung einer eigenen Domain
lässt sich live mit TEST_MX_EMAIL=name@domain.de node test/detect.mjs prüfen.
IMAP-Verbindungen werden pro Account wiederverwendet und nach 5 Minuten Leerlauf geschlossen.
Versionen
Version | |
1.4.0 | Drittes Paket |
1.3.1 | Klarer Hinweis, dass Hotmail, Outlook.com, Live und MSN nicht unterstützt werden (Microsoft erlaubt dort nur noch OAuth2) |
1.3.0 | Zusätzliches Zehner-Paket |
1.2.0 | Eigener Benutzername, falls er nicht der E-Mail-Adresse entspricht |
1.1.0 | Zweites Postfach im Installationsdialog, Senden je Postfach getrennt |
1.0.2 | IMAP4rev2 standardmäßig aus (leere Suchergebnisse bei Strato); neueste Mails ohne Suche |
1.0.1 | Leer gelassene Dialogfelder kamen als Platzhalter an und verhinderten die Server-Erkennung |
1.0.0 | Erste Version |
Lizenz
MIT — siehe LICENSE.
Available Tools
13 toolsmail_create_draftEntwurf anlegenA
Erstellt eine E-Mail und legt sie als Entwurf im IMAP-Postfach ab, ohne sie zu versenden. Der sichere Weg, wenn der Nutzer die Mail vorher im eigenen Mailprogramm prüfen will.
Inputs: to (required), subject (required), cc, bcc, +7 more.
mail_detect_providerMail-Server einer Adresse ermittelnARead-only
Ermittelt zu einer beliebigen E-Mail-Adresse die passenden IMAP- und SMTP-Einstellungen, ohne sich anzumelden. Nützlich, wenn jemand seinen Anbieter nicht kennt oder die automatische Erkennung danebenlag. Es wird kein Passwort benötigt und keine Verbindung zum Postfach aufgebaut.
Inputs: email (required), online.
mail_get_rawRohe Mail-QuelleBRead-only
Gibt die vollständige RFC822-Quelle einer Nachricht zurück - nützlich zur Analyse von Kopfzeilen, SPF/DKIM oder Weiterleitungen.
Inputs: uid (required), account, mailbox, maxChars.
mail_list_accountsMail-Accounts auflistenARead-only
Listet die konfigurierten Mail-Accounts mit Servern und Sende-Berechtigung auf. Passwörter werden nie ausgegeben.
Inputs: no named parameters.
mail_list_mailboxesOrdner auflistenARead-only
Listet alle IMAP-Ordner eines Accounts inkl. Sonderrollen (Gesendet, Entwürfe, Papierkorb, Spam).
Inputs: account.
mail_moveMails verschiebenA
Verschiebt Nachrichten in einen anderen IMAP-Ordner des gleichen Accounts.
Inputs: uids (required), targetMailbox (required), account, mailbox.
mail_move_to_trashIn den PapierkorbA
Verschiebt Nachrichten in den Papierkorb. Löscht nie endgültig - zum endgültigen Entfernen den Papierkorb im Mailprogramm leeren.
Inputs: uids (required), account, mailbox.
mail_readMail lesenA
Liest eine Nachricht per UID vollständig: Kopfzeilen, Text und Liste der Anhänge. HTML-Mails werden auf Text reduziert, sofern kein Textteil vorhanden ist.
Inputs: uid (required), account, mailbox, markSeen, +2 more.
mail_save_attachmentAnhang speichernA
Speichert einen Anhang einer Nachricht auf der Festplatte. Zielordner ist standardmäßig der downloadDir aus der Konfiguration.
Inputs: uid (required), index, account, mailbox, +1 more.
mail_searchMails suchenARead-only
Durchsucht einen IMAP-Ordner und gibt Kopfdaten (UID, Datum, Absender, Betreff, Flags) der neuesten Treffer zurück. Ohne Filter kommen die neuesten Nachrichten des Ordners. Die UIDs aus dem Ergebnis sind die Eingabe für mail_read.
Inputs: to, body, from, seen, +9 more.
mail_sendMail sendenADestructive
Versendet eine E-Mail über SMTP und legt sie im Gesendet-Ordner ab. Der Versand ist endgültig und nicht widerrufbar - vor dem Aufruf immer Empfänger, Betreff und Text vom Nutzer bestätigen lassen.
Inputs: to (required), subject (required), cc, bcc, +7 more.
mail_set_flagsFlags setzenA
Setzt oder entfernt IMAP-Flags. Gängige Werte: "\Seen" (gelesen), "\Flagged" (markiert), "\Answered" (beantwortet).
Inputs: uids (required), add, remove, account, +1 more.
mail_test_connectionVerbindung testenARead-only
Prüft IMAP-Login und SMTP-Login eines Accounts und meldet beide Ergebnisse einzeln.
Inputs: account.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 13 tools
Every tool targets a distinct action-resource pair: account operations, mailbox listing, message retrieval, state changes, and message composition are clearly separated. Even mail_move and mail_move_to_trash are cleanly distinguished by trash-specific semantics.
All tools follow a uniform mail_<verb>_<object> pattern with clear, consistent verbs like list, test, detect, move, search, read, get, save, set, send, and create. There is no mixing of casing or verb styles.
13 tools is a well-scoped size for an email/IMAP assistant, covering account inspection, search/read, message mutations, and sending without becoming unwieldy. Each tool has a clear role and earns its place.
The set supports end-to-end email workflows: detect/test accounts, list mailboxes, search and read messages, retrieve raw sources and attachments, move/trash, set flags, and send or draft. Minor gaps like permanent deletion/expunge and mailbox creation are absent, but these appear intentional or config-external and can be worked around.
Maintenance
Related MCP Connectors
Connect any IMAP/SMTP mailbox to Claude & ChatGPT: search, read, sort, draft. Sends only with OK.
Connect any mailbox to Claude, ChatGPT & AI: read, send, reply, schedule & search emails.
Your mailboxes in ChatGPT and Claude: Gmail, iCloud, Fastmail, any IMAP. Passwords stay yours.
Give Claude, Cursor or any agent its own email address: send, read and reply in threads.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables Claude to interact with email accounts via IMAP and SMTP, providing tools for searching, reading, sending, and managing emails across multiple providers.401,044 npm127MIT
- FlicenseNot gradedqualityDmaintenanceEnables Claude to read, search, send, and manage emails across multiple IMAP/SMTP accounts via a single deployment.-
- FlicenseNot gradedqualityBmaintenanceEnables Claude to read, search, draft, send, flag, and move email across multiple IMAP/SMTP mailboxes while keeping credentials local.-
- AlicenseAqualityCmaintenanceEnables Claude to read, manage, and send email from any IMAP mailbox over plain IMAP and SMTP, including hosting-company and self-hosted mail servers. It provides tools for searching, reading, moving, deleting, and composing messages while built-in safety rules prevent unintended changes.12MIT