AnleitungStand 21. Oktober 2026
Hermes Agent mit E-Mail verbinden: MCP, Himalaya oder Gateway
Hermes Agent bekommt E-Mail-Zugriff am einfachsten über einen entfernten MCP-Server: ein Eintrag mit url und auth: oauth in ~/.hermes/config.yaml, danach hermes mcp login.[1] Alternativ bringt Hermes eigene Wege mit: die Himalaya-Skill für ein Postfach per IMAP/SMTP, die Google-Workspace-Skill für Gmail und ein E-Mail-Gateway, über das Menschen dem Agenten schreiben.[4][5][6] Welcher Weg passt, hängt davon ab, ob der Agent ein eigenes Postfach bedienen, deine bestehenden Adressen bearbeiten oder nur per Mail erreichbar sein soll.
Command Mail ist unser Produkt, deshalb dient es in den Beispielen als MCP-Server. Die Schritte gelten genauso für andere E-Mail-MCP-Server mit Streamable HTTP und OAuth, sofern Hermes sich dort ohne eigenen OAuth-Client anmelden kann, also per dynamischer Client-Registrierung oder Client-Metadaten-Dokument (CIMD). Verlangt ein Anbieter einen vorab registrierten Client, ergänzt du laut Hermes-Doku dessen oauth.client_id und oauth.client_secret im Eintrag.[1][2] Die Hermes-Dokumentation haben wir am 2026-10-21 abgerufen; die neueste Version war an diesem Tag v0.22.3.[8]
Inhalt
- Vier Wege zu E-Mail in Hermes
- Voraussetzungen
- Schritt für Schritt: E-Mail-MCP in Hermes einrichten
- Schreibaufrufe nur mit Freigabe: trust und Werkzeugfilter
- Hermes auf einem Server: Anmeldung ohne Browser
- Die Verbindung testen
- Geplante Postfach-Aufgaben mit hermes cron
- Häufige Probleme
- Nächste Schritte
- Häufige Fragen
- Quellen
01Vier Wege zu E-Mail in Hermes
Hermes trennt in seiner Dokumentation ausdrücklich zwischen Funktionen, die ähnlich klingen. Das Gateway macht Hermes per Mail ansprechbar, die Himalaya-Skill lässt den Agenten ein Postfach bedienen.[4][5]
| Weg | Wofür | Anmeldung | Bedienung |
|---|---|---|---|
| E-Mail-MCP-Server | bestehende Adressen lesen, sortieren, entwerfen, senden | OAuth im Browser oder Header | Werkzeuge mit Präfix mcp__<name>__ |
| Himalaya-Skill | eigenes Agentenpostfach per IMAP/SMTP | Passwort oder App-Passwort in Himalaya | Terminalbefehle, Abruf per Cron |
| Google-Workspace-Skill | Gmail, Kalender, Drive | eigenes Google-Cloud-Projekt, OAuth | Skriptaufrufe |
| E-Mail-Gateway | Menschen schreiben Hermes, Hermes antwortet im Thread | Postfach-Zugangsdaten in ~/.hermes/.env | eingehende Mail wird zur Nachricht |
Quellen: Hermes-Dokumentation, abgerufen am 2026-10-21.[1][4][5][6]
Für das Gateway und die Himalaya-Skill empfiehlt Hermes ein eigenes Konto für den Agenten und rät davon ab, ihm das persönliche Postfach zu geben.[4][5] Ein MCP-Server mit feinen Rechten ist der Weg, wenn Hermes in deinen echten Adressen arbeiten soll, ohne dass Postfach-Passwörter auf dem Rechner liegen.
02Voraussetzungen
Du brauchst eine aktuelle Hermes-Installation; MCP-Unterstützung gehört laut Doku zur Standardinstallation.[1] Dazu einen E-Mail-Dienst mit MCP-Server und einen Browser, in dem du die Anmeldung bestätigst.
Der Server von Command Mail läuft unter https://commandmail.app/mcp mit OAuth 2.1, PKCE und dynamischer Client-Registrierung.[7] Einen eigenen OAuth-Client brauchst du deshalb nicht. Auf der Zustimmungsseite schaltest du jedes Recht einzeln ein oder aus: mail:read zum Lesen, Suchen und Ordnen im Rahmen der Autonomiestufe, mail:draft für Entwürfe, mail:send-approved für das Senden eines von dir freigegebenen Entwurfs, mail:send für Senden ohne Einzelfreigabe und mailboxes zum Verbinden von Adressen. Senden ohne Freigabe ist anfangs aus.[7]
Der kostenlose Tarif umfasst ein Postfach, weitere Postfächer pausieren und empfangen weiter, und die letzten 90 Tage; Lesen, Suche, Sortieren, Morgenbriefing und Entwürfe sind enthalten, Senden nicht. Pro bringt Senden, bis zu zehn Postfächer und die volle Historie: 19 € im Monat für die ersten 100 zahlenden Pro-Konten, solange dieses Abo läuft, danach 29 € im Monat, jährlich 190 € oder 290 €. Pro lässt sich 7 Tage für 1 € testen, Team kostet 39 € je Person und Monat (Preise vom 2026-10-21).[7]
03Schritt für Schritt: E-Mail-MCP in Hermes einrichten
Die Einrichtung besteht aus einem Konfigurationseintrag, einer Anmeldung und einem Neuladen der Werkzeuge.[1]
~/.hermes/config.yamlöffnen und untermcp_serverseinen Eintrag anlegen:mcp_servers: commandmail: url: "https://commandmail.app/mcp" auth: oauth trust: untrustedDer Name
commandmailist frei wählbar und bestimmt das Präfix der Werkzeuge. Wastrust: untrustedbewirkt, steht im nächsten Abschnitt.In einem frischen Terminal anmelden:
hermes mcp login commandmail. Hermes zeigt einen Anmeldelink, öffnet nach Möglichkeit den Browser und wartet bis zu fünf Minuten auf die Rückmeldung.[1] Bearbeitest du die Datei aus einer laufenden Hermes-Sitzung heraus, lädt die CLI die Verbindungen mit einem Zeitlimit von 30 Sekunden neu. Für eine Anmeldung im Browser reicht das laut Doku nicht, deshalb das separate Terminal.Auf der Zustimmungsseite die Rechte wählen. Für den Anfang genügen
mail:readundmail:draft.Eine neue Sitzung mit
hermes chatstarten oder in der laufenden Sitzung/reload-mcpeingeben.[1]
Hermes speichert die Tokens unter ~/.hermes/mcp-tokens/commandmail.json mit Rechten nur für deinen Benutzer und erneuert sie selbst, bis eine Erneuerung scheitert.[1] Die Werkzeuge heißen dann zum Beispiel mcp__commandmail__search_mail oder mcp__commandmail__get_thread; in tools.include trägst du dagegen die Namen ein, die der Server selbst verwendet.[2] Aufrufen musst du sie nicht von Hand; Hermes wählt sie beim normalen Arbeiten.
Hast du Command Mail schon in Claude Code eingerichtet, übernimmt hermes import-agent claude-code laut Doku auch die MCP-Server aus ~/.claude.json.[1] Prüf danach mit einer ersten Aufgabe, ob die Anmeldung in Hermes steht, und führ sonst hermes mcp login aus.
04Schreibaufrufe nur mit Freigabe: trust und Werkzeugfilter
Mit trust: untrusted fragt Hermes vor jedem Werkzeugaufruf nach, der nicht als readOnlyHint: true gekennzeichnet ist. Standard ist full; dann verlangt Hermes für Schreibwerkzeuge keine eigene Freigabe, nur ein gesetztes Kostenlimit (spend_limit) kann noch Rückfragen auslösen.[2] Die Doku empfiehlt untrusted für jeden Server, den du nicht selbst kontrollierst.
Command Mail kennzeichnet seine Werkzeuge entsprechend: Lesen, Suchen und Auflisten tragen readOnlyHint: true, Entwürfe, Sortieraktionen, Regeln und Senden nicht. Unter untrusted laufen Suchen also ohne Unterbrechung, während Hermes vor dem Archivieren, Entwerfen oder Senden fragt.
Zusätzlich kannst du festlegen, welche Werkzeuge Hermes überhaupt lädt. Mit tools.include registriert Hermes nur die genannten Werkzeuge; Platzhalter wie * sind erlaubt.[1] Ein Eintrag für einen Agenten, der lesen und Entwürfe speichern, aber keine Mails sortieren oder senden soll:
mcp_servers:
commandmail:
url: "https://commandmail.app/mcp"
auth: oauth
trust: untrusted
tools:
include: [capabilities, search_mail, list_threads, get_thread, list_attachments, morning_brief, save_agent_draft, list_agent_drafts]Bei einer Include-Liste kommen Werkzeuge, die der Server später ergänzt, nicht automatisch dazu. hermes mcp configure commandmail zeigt eine Auswahlliste, wenn du die Werkzeuge lieber interaktiv wählst.[1]
Die Filter in Hermes ersetzen nicht die Rechte beim Maildienst. Command Mail baut die Werkzeugliste aus den erteilten Rechten: send_message und reply gibt es nur mit mail:send, send_approved_draft nur mit mail:send-approved. Direktes Senden braucht zusätzlich Pro, ein sendefähiges Postfach auf der Stufe auto und freies Tageslimit; jede Mail geht an höchstens 20 Empfänger.[7]
05Hermes auf einem Server: Anmeldung ohne Browser
Läuft Hermes auf einem VPS, in einem Container oder hinter SSH, öffnet sich dort kein Browser. Im interaktiven Terminal bietet Hermes neben dem Anmeldelink an, die Adresse nach der Weiterleitung einzufügen.[1] Du öffnest den Link auf deinem Rechner und bestätigst. Die Seite, auf der der Browser danach landet, zeigt einen Verbindungsfehler; das ist laut Doku erwartet. Die vollständige Adresse kopierst du ins Terminal.
Andere Wege beschreibt die Anleitung zu entfernten Hosts, etwa eine SSH-Portweiterleitung auf den Rückrufport.[3] Die Desktop-App von Hermes leitet die Anmeldung laut Doku automatisch an ein entferntes Backend weiter, wenn beide aktuell sind.[1] Einen Device-Code-Login nutzt Hermes nur, wenn der Anmeldeserver ihn anbietet; die OAuth-Metadaten von Command Mail nennen keinen.
Statt des entfernten Servers kannst du auch einen lokalen stdio-Server nutzen. Command Mail hat dafür ein Kommandozeilenwerkzeug: curl -fsSL https://commandmail.app/install.sh | sh, danach commandmail login; auch diese Anmeldung läuft über den Browser. commandmail mcp startet dann einen lokalen MCP-Server, den Hermes mit command: "commandmail" und args: ["mcp"] einbindet.[7]
06Die Verbindung testen
Der erste Aufruf sollte capabilities sein. Er liefert Kontoinhaber, erteilte Rechte, jedes Postfach mit seiner Autonomiestufe und die Limits. Bitte Hermes: „Ruf bei commandmail capabilities auf und sag mir, was du darfst.“ Stimmt die Antwort mit deiner Auswahl überein, steht die Verbindung.
Danach eine rein lesende Aufgabe: „Such Rechnungen der letzten 30 Tage und liste Absender, Datum und Betrag.“ Erst im dritten Schritt einen Entwurf anlegen lassen; unter trust: untrusted fragt Hermes dabei nach.
Command Mail kennzeichnet Mailinhalte als nicht vertrauenswürdige Daten und markiert mutmaßliche Prompt Injection.[7] Hermes selbst nennt E-Mail einen unauthentifizierten Eingangskanal und rät, nie automatisch auf unaufgeforderte Mails zu reagieren.[5] Beides gilt besonders, weil dieselbe Hermes-Sitzung oft auch Terminalbefehle ausführen darf.
07Geplante Postfach-Aufgaben mit hermes cron
Für wiederkehrende Aufgaben wie ein Morgenbriefing richtest du mit hermes cron add einen Zeitplan ein.[5] Die Himalaya-Anleitung von Hermes schlägt für den Abruf eines Agentenpostfachs alle 15 bis 30 Minuten vor und gibt einen Auftrag vor, der ausdrücklich verbietet, auf Anweisungen in unaufgeforderten Mails zu reagieren.
Für unbeaufsichtigte Läufe ist die Rechtevergabe beim Maildienst die verlässlichere Grenze, weil in einem Cron-Lauf niemand Rückfragen beantwortet. Ein Agent für das Morgenbriefing braucht mail:read und höchstens mail:draft, kein Senderecht.
08Häufige Probleme
Hermes listet Werkzeuge, aber jeder Aufruf hängt. Die Doku beschreibt das bei Servern, deren Registrierung scheitert: tools/list antwortet ohne Anmeldung, echte Aufrufe laufen in ein Zeitlimit. hermes mcp login prüft inzwischen, ob tatsächlich ein Token gespeichert wurde.[1] Command Mail verlangt schon für die Werkzeugliste ein Token; fehlt es, antwortet der Server mit 401 und einem Hinweis auf die Anmeldung.
Die Anmeldung läuft in ein Zeitlimit. Fünf Minuten sind der Standard. Mit oauth.timeout im Servereintrag verlängerst du die Wartezeit.[1]
Ein Schreibaufruf meldet „outcome_uncertain“. Streamable-HTTP-Server können ungenutzte Sitzungen beenden. Hermes wiederholt danach nur Aufrufe mit readOnlyHint: true selbst; bei allen anderen musst du prüfen, ob die Aktion ausgeführt wurde, bevor du sie erneut startest.[2] Bei einer Mail schaust du in Command Mail unter den gesendeten Nachrichten oder in der Aktivität nach, bevor du sie noch einmal senden lässt.
Der Agent kann nicht senden. Erst den Tarif prüfen, dann die Rechte. Senden braucht Pro; mail:send-approved sendet nur einen Entwurf, den du in Command Mail freigegeben hast, und nicht aus einem Postfach auf read.[7] Für andere Rechte meldest du dich mit hermes mcp login commandmail neu an.
09Nächste Schritte
Wie die Rechte und Autonomiestufen zusammenspielen, steht unter Berechtigungen und Autonomie. Ob ein eigener IMAP-MCP-Server oder ein gehosteter Dienst besser passt, erklärt IMAP-MCP oder gehosteter MCP. Weitere Agenten im Terminal beschreibt E-Mail in Claude Code, Codex und Cursor.
Command Mail kostenlos starten und Hermes verbinden.
Häufige Fragen
Wie verbinde ich Hermes Agent mit einem E-Mail-MCP-Server?
Trag den Server in ~/.hermes/config.yaml unter mcp_servers ein, mit url und bei OAuth-Servern auth: oauth. Danach in einem frischen Terminal hermes mcp login <name> ausführen, die Anmeldung im Browser bestätigen und eine neue Sitzung starten oder /reload-mcp eingeben.
Kann Hermes Agent E-Mails senden?
Ja, auf mehreren Wegen: über ein E-Mail-MCP-Werkzeug, über die Himalaya-Skill per IMAP/SMTP, über die Google-Workspace-Skill für Gmail oder als Antwort im E-Mail-Gateway. Ob gesendet wird, entscheiden die Rechte beim Maildienst und Hermes' eigene Freigaben. Bei Command Mail braucht jedes Senden den Pro-Tarif; ohne Einzelfreigabe zusätzlich das Recht mail:send und ein Postfach auf der Stufe auto.
Wie verhindere ich, dass Hermes ohne Rückfrage Mails verschickt?
Setz für den Server trust: untrusted. Dann fragt Hermes vor jedem Werkzeugaufruf ohne readOnlyHint: true nach. Zusätzlich kannst du mit tools.include nur Lese- und Entwurfswerkzeuge laden und beim Maildienst kein Senderecht erteilen.
Funktioniert die OAuth-Anmeldung, wenn Hermes auf einem Server läuft?
Ja. Hermes zeigt im interaktiven Terminal neben dem Anmeldelink die Möglichkeit, die Adresse nach der Weiterleitung einzufügen. Du öffnest den Link auf deinem Rechner, bestätigst und kopierst die Adresse, auf der der Browser landet, zurück ins Terminal. Einen Device-Code-Login bietet Command Mail laut seinen OAuth-Metadaten nicht an.
Brauche ich für Gmail in Hermes ein Google-Cloud-Projekt?
Nur für die Google-Workspace-Skill, die OAuth-Zugangsdaten aus einem eigenen Projekt nutzt. Die Himalaya-Skill kommt laut Hermes-Doku mit einem App-Passwort aus. Ein gehosteter MCP-Server wie Command Mail braucht weder das eine noch das andere; Gmail kommt dort per Weiterleitung an.
Quellen
- Hermes Agent: MCP (Model Context Protocol)
- Hermes Agent: MCP Config Reference
- Hermes Agent: OAuth over SSH / Remote Hosts
- Hermes Agent: E-Mail-Gateway (IMAP/SMTP)
- Hermes Agent: Give Your Agent Its Own Email Address (Himalaya)
- Hermes Agent: Google Workspace Skill
- Command Mail: llms.txt mit Tarifen, Rechten und Anbindung
- NousResearch: Hermes Agent Releases