Skip to main content
Glama
abconsultdev

IMAP MCP

by abconsultdev

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:

Weg A: Fertiges Bundle

Weg B: Aus dem Quellcode

Für wen

alle, die einfach ihr Postfach anbinden wollen

Entwicklung, mehr als zwei Postfächer, Linux, Claude Code

Postfächer

bis zu zwei

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 config.json


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

  1. imap-mail.mcpb herunterladen (rund 1 MB, dieselbe Datei für macOS und Windows).

  2. Die Datei doppelklicken — alternativ ins Claude-Desktop-Fenster ziehen oder unter Einstellungen → Erweiterungen → Erweiterte Einstellungen → Erweiterung installieren auswählen.

  3. Im Installationsdialog E-Mail-Adresse und Passwort eintragen. Alle anderen Felder sind optional.

  4. 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

Senden erlauben

Standardmäßig aus — Claude kann dann lesen und Entwürfe anlegen, aber nichts verschicken

Absendername

optional

Zweites Postfach: Adresse, Passwort, 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.

  • Microsoft 365 / Outlook: Viele Organisationen haben die Anmeldung per Passwort abgeschaltet. Dann lässt sich das Postfach mit diesem Connector nicht anbinden (siehe Einschränkungen).

  • 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 gehen über das 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:

  1. Eingebaute Anbieterliste — Gmail, GMX, Web.de, T-Online, Posteo, mailbox.org, iCloud, Yahoo, Outlook und weitere, erkannt an der Domain der Adresse.

  2. MX-Eintrag der Domain — der wichtigste Fall bei eigenen Domains. info@meinefirma.de mit einem MX-Eintrag auf smtpin.rzone.de wird als Strato-Postfach erkannt. Deckt Strato, IONOS, All-Inkl, Hetzner, netcup, domainFACTORY, united-domains, Google Workspace und Microsoft 365 ab.

  3. Mozillas Autoconfig-Datenbank — dieselbe Quelle, aus der Thunderbird seine Einstellungen zieht.

  4. 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 build

2. 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

name

Kurzname, den du im Chat benutzt („lies die Mails im hauptpostfach")

displayName

Absendername im From-Header

allowSend

false = reiner Lesezugriff, mail_send verweigert dann den Dienst

secure

true bei Port 993/465 (direktes TLS), false bei 143/587 (STARTTLS)

allowInvalidCert

nur für interne Server mit selbstsigniertem Zertifikat

enableIMAP4rev2

IMAP4rev2 nutzen, falls der Server es anbietet. Standard aus, siehe Fehlersuche

mailboxes

optional, überschreibt die Auto-Erkennung von Gesendet/Entwürfe/Papierkorb

downloadDir

(oberste Ebene) Ordner für Anhänge, Standard <projekt>/downloads

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

imap.gmail.com:993

smtp.gmail.com:465

App-Passwort nötig (2FA erforderlich)

Microsoft 365 / Outlook

outlook.office365.com:993

smtp.office365.com:587 (secure: false)

Passwort-Anmeldung oft gesperrt, siehe Einschränkungen

IONOS

imap.ionos.de:993

smtp.ionos.de:465

Strato

imap.strato.de:993

smtp.strato.de:465

All-Inkl

<server>.kasserver.com:993

<server>.kasserver.com:465

mailbox.org

imap.mailbox.org:993

smtp.mailbox.org:465

eigenes App-Passwort empfohlen

GMX / Web.de

imap.gmx.net:993 / imap.web.de:993

mail.gmx.net:465 / smtp.web.de:465

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

MAIL_EMAIL, MAIL_PASSWORD

Pflicht

MAIL_ALLOW_SEND

true schaltet den Versand frei. Standard ist aus

MAIL_DISPLAY_NAME

Absendername

MAIL_IMAP_HOST, MAIL_SMTP_HOST

überschreiben die Erkennung

MAIL_IMAP_PORT, MAIL_SMTP_PORT

Ports, Standard 993 / 465

MAIL2_EMAIL, MAIL2_PASSWORD, MAIL2_ALLOW_SEND, MAIL2_DISPLAY_NAME, MAIL2_IMAP_HOST, MAIL2_SMTP_HOST, …

dasselbe für ein zweites Postfach

MAIL_AUTODETECT_ONLINE

false schaltet MX- und Online-Abfrage ab (gilt für beide)

MAIL_DOWNLOAD_DIR

Ordner für Anhänge, Standard ~/Downloads

IMAP_MCP_CONFIG

abweichender Pfad zur config.json

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.js

Erster 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

mail_list_accounts

Eingerichtete Postfächer (ohne Passwörter)

mail_test_connection

IMAP- und SMTP-Login einzeln prüfen

mail_detect_provider

Server-Einstellungen zu einer Adresse ermitteln — ohne Passwort, ohne Anmeldung

mail_list_mailboxes

Alle Ordner + erkannte Sonderordner

mail_search

Nach Absender, Betreff, Text, Datum, ungelesen … — liefert UIDs

mail_read

Eine Nachricht per UID vollständig lesen

mail_get_raw

RFC822-Quelltext (Header-Analyse, SPF/DKIM)

mail_save_attachment

Anhänge auf die Platte speichern

Verwalten

Tool

Zweck

mail_set_flags

gelesen / ungelesen / markiert / beantwortet setzen

mail_move

In anderen Ordner verschieben

mail_move_to_trash

In den Papierkorb (nie endgültiges Löschen)

Schreiben

Tool

Zweck

mail_create_draft

Mail als Entwurf ins IMAP-Postfach legen, ohne zu senden

mail_send

Ü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_search mit unseen: true, since: heute

  • „Fass mir den Verlauf mit Anna zusammen" → mail_search mit from: anna, dann mail_read je UID

  • „Antworte darauf" → mail_create_draft mit inReplyToUid, du prüfst im Mailprogramm, dann mail_send

  • „Räum die Newsletter weg" → mail_search, dann mail_move nach Archiv

Sicherheit

  • Versand ist endgültig. Claude fragt vor mail_send nach — bestätige bewusst. Wer generell nur Entwürfe will, lässt Senden aus und nutzt mail_create_draft.

  • Es gibt bewusst kein endgültiges Löschen. mail_move_to_trash verschiebt 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 Host-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 oder der Anbieter verlangt ein App-Passwort (Gmail, iCloud, Yahoo) — bei GMX und Web.de ist IMAP zusätzlich 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, in config.json "allowSend": true, per Umgebungsvariable MAIL_ALLOW_SEND=true.

Falscher Server erkannt

mail_detect_provider mit der Adresse aufrufen — die Antwort zeigt, aus welcher Quelle die Werte stammen. Notfalls IMAP- und SMTP-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 (viele Microsoft-365-Organisationen), lassen sich damit nicht anbinden.

  • Die Volltextsuche macht der IMAP-Server, nicht dieser Connector — wie gut body/text funktioniert, hängt vom Anbieter ab.

  • mail_search holt 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             # build/imap-mail.mcpb bauen, 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, 15 Fälle
node test/live.mjs         # gegen das echte Postfach aus config.json, rein lesend

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.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 tools
mail_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNo
toYesEmpfänger-Adressen.
bccNo
htmlNoNachricht als HTML. Ohne text wird daraus eine Textversion erzeugt.
textNoNachricht als reiner Text.
accountNoE-Mail-Adresse (oder Name) des Postfachs. Weglassen, wenn nur eines eingerichtet ist. Bei mehreren Pflicht - mail_list_accounts zeigt die verfügbaren. Beim Senden immer das Postfach wählen, von dem der Nutzer absenden will, und im Zweifel nachfragen.
replyToNoAbweichende Antwortadresse.
subjectYesBetreff.
attachmentsNo
inReplyToUidNoUID der Nachricht, auf die geantwortet wird - setzt In-Reply-To/References für korrektes Threading.
inReplyToMailboxNoOrdner der Nachricht aus inReplyToUid.INBOX

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the critical behavior of not sending the email, which is not obvious from the name alone. It also labels it as 'safe', implying non-destructive behavior. Annotations only provide openWorldHint, which is vague and not contradicted; the description adds value by clarifying the draft creation and non-sending nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The core action and the key distinction (not sending) are front-loaded, making it easy for an agent to quickly understand the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 11 parameters but a schema covering most of them, the description provides sufficient context: what it does, when to use it, and the critical 'not sending' aspect. It lacks explicit mention of return values, but no output schema exists, and the description is otherwise complete for selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 73%, so most parameters are already documented. The description adds no parameter-specific meaning beyond what the schema provides; it only explains the overall purpose. Since coverage is moderate and the description does not compensate for undocumented parameters, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'erstellt' (creates) and the resource 'E-Mail als Entwurf' (email as draft), and explicitly distinguishes it from sending by adding 'ohne sie zu versenden' (without sending). This differentiates it from mail_send among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a usage condition: 'Der sichere Weg, wenn der Nutzer die Mail vorher im eigenen Mailprogramm prüfen will' (the safe way when the user wants to check the mail in their own mail program). This implies when to use it versus alternatives like mail_send, though it does not explicitly name the alternative or exclude other conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mail_detect_providerMail-Server einer Adresse ermittelnA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesE-Mail-Adresse, z.B. name@example.com
onlineNoMX-Eintrag und Thunderbird-Autoconfig mitbenutzen. Dabei wird die Domain (nicht die Adresse) abgefragt. false = nur eingebaute Liste.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds meaningful behavioral context: it does not log in, requires no password, and does not connect to the mailbox. This goes beyond the annotations and reassures the agent about safety and network usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with the primary purpose, followed by usage context and a safety note. No redundant or extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only detection tool with no output schema, the description covers the essential behavioral aspects: what it does, when to use it, and that it's non-invasive. It could mention the return format (e.g., structured settings), but that's a minor gap given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with descriptions for both 'email' and 'online'. The description does not add any parameter-specific information beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Ermittelt' (determines) and the resource: IMAP/SMTP settings for an email address. This is specific and immediately distinguishes it from sibling tools, which all perform mailbox operations (move, search, send, etc.) rather than provider detection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit context on when to use the tool: when the user doesn't know their provider or when automatic detection failed. It doesn't explicitly name alternatives or exclusions, but the sibling list makes it obvious this is the only detection tool, so the guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mail_get_rawRohe Mail-QuelleB
Read-only

Gibt die vollständige RFC822-Quelle einer Nachricht zurück - nützlich zur Analyse von Kopfzeilen, SPF/DKIM oder Weiterleitungen.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
accountNoE-Mail-Adresse (oder Name) des Postfachs. Weglassen, wenn nur eines eingerichtet ist. Bei mehreren Pflicht - mail_list_accounts zeigt die verfügbaren. Beim Senden immer das Postfach wählen, von dem der Nutzer absenden will, und im Zweifel nachfragen.
mailboxNoIMAP-Ordner, z.B. "INBOX" oder "INBOX/Projekte".INBOX
maxCharsNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description is consistent with a safe read operation. It adds the purpose but does not disclose the maxChars truncation behavior or the need for a valid uid. Since annotations cover the safety profile, the description adds modest value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that states the main action and purpose without fluff. Efficient and readable, though it omits some necessary details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description's mention of 'RFC822-Quelle' gives a good hint of the return value. However, it does not explain truncation via maxChars or how to obtain the uid (e.g., from mail_search). For a read-only tool with annotations covering safety, it is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% with account and mailbox described, but uid and maxChars lack descriptions. The description does not compensate for these missing parameter semantics – it never explains how to identify the message (uid) or the effect of maxChars. An agent would have to infer these from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Gibt die vollständige RFC822-Quelle einer Nachricht zurück' (returns the full RFC822 source). Mentions concrete use cases (header analysis, SPF/DKIM, forwarding). Does not explicitly differentiate from sibling mail_read, but the raw-vs-parsed distinction is implicitly clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear context for when to use it (analyzing headers, SPF/DKIM, forwarding) but does not explicitly compare to alternatives like mail_read or state when not to use it. No mention of the parsed-message alternative or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mail_list_accountsMail-Accounts auflistenA
Read-only

Listet die konfigurierten Mail-Accounts mit Servern und Sende-Berechtigung auf. Passwörter werden nie ausgegeben.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already signals a safe read operation, lowering the burden. The description adds valuable context beyond the annotation: it specifies the exact information returned (servers, send permission) and guarantees that passwords are never exposed. This is useful behavioral disclosure without contradicting the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that leads with the action and resource, then adds essential detail and a security guarantee. Every word contributes meaning; there is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with no parameters and an existing readOnlyHint annotation, the description fully covers what an agent needs to know: what it lists, what fields are included, and that passwords are never exposed. The lack of an output schema is acceptable for such a simple operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4 per the rubric. The description correctly focuses on what the tool returns rather than on parameter details, which are irrelevant here. No additional parameter information is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Listet' = lists) with a clear resource ('Mail-Accounts') and adds detail about the included fields (servers, send permission) and an explicit security note (passwords never output). This clearly distinguishes it from sibling tools like mail_list_mailboxes (which lists mailboxes, not accounts) and other operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing configured accounts, but it does not explicitly mention when to use this tool versus alternatives such as mail_list_mailboxes or mail_test_connection. No exclusions or alternative conditions are stated, so the guidance is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mail_list_mailboxesOrdner auflistenA
Read-only

Listet alle IMAP-Ordner eines Accounts inkl. Sonderrollen (Gesendet, Entwürfe, Papierkorb, Spam).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNoE-Mail-Adresse (oder Name) des Postfachs. Weglassen, wenn nur eines eingerichtet ist. Bei mehreren Pflicht - mail_list_accounts zeigt die verfügbaren. Beim Senden immer das Postfach wählen, von dem der Nutzer absenden will, und im Zweifel nachfragen.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint and openWorldHint annotations already cover the safety and world-openness profile. The description adds useful detail that the listing includes special roles (Sent, Drafts, Trash, Spam), but it does not disclose return format or pagination behavior. That is acceptable given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the action and resource, then adds the key nuance about special roles in a parenthetical. There is no redundancy or wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with one optional parameter and readOnlyHint/openWorldHint annotations, the description is largely complete. It clearly states what is listed and what folder types are included. It could have mentioned the return shape or path formatting, but the omission is minor given the simplicity of the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage for the single 'account' parameter, including optionality and a cross-reference to mail_list_accounts. The tool description itself adds no parameter-level detail, but the schema already provides the necessary semantics, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Listet') and a clear resource ('alle IMAP-Ordner eines Accounts'), and further specifies scope by naming special roles (Gesendet, Entwürfe, Papierkorb, Spam). This distinguishes it from account-level tools like mail_list_accounts and message-level tools like mail_search or mail_read.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied: an agent should call this when it needs to enumerate all IMAP folders of an account. However, it does not explicitly state when not to use it or mention alternatives such as mail_list_accounts for account enumeration or mail_search for message lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mail_moveMails verschiebenA

Verschiebt Nachrichten in einen anderen IMAP-Ordner des gleichen Accounts.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidsYes
accountNoE-Mail-Adresse (oder Name) des Postfachs. Weglassen, wenn nur eines eingerichtet ist. Bei mehreren Pflicht - mail_list_accounts zeigt die verfügbaren. Beim Senden immer das Postfach wählen, von dem der Nutzer absenden will, und im Zweifel nachfragen.
mailboxNoIMAP-Ordner, z.B. "INBOX" oder "INBOX/Projekte".INBOX
targetMailboxYesZielordner, z.B. "Archiv".

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only include openWorldHint, so the description carries most of the behavioral disclosure burden. It adds the same-account constraint and specifies the destination folder type, but does not mention side effects such as source message removal, target mailbox existence requirements, or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant content. Every word contributes to the core meaning, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 4-parameter move operation, the description plus schema is minimally sufficient to make a correct call. However, it lacks usage differentiation from mail_move_to_trash and does not disclose behavioral caveats, which matters given the absence of a safety annotation and output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes account, mailbox, and targetMailbox; uids is self-explanatory as an array of message identifiers. The description itself adds no parameter-level detail, but with 75% schema coverage the structured fields carry the load adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Verschiebt') and resource ('Nachrichten') with a clear destination ('in einen anderen IMAP-Ordner des gleichen Accounts'). This clearly states what the tool does and distinguishes it from siblings like mail_move_to_trash by emphasizing a general folder within the same account.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as mail_move_to_trash. It only defines the operation itself, leaving the agent to infer selection criteria from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidsYes
accountNoE-Mail-Adresse (oder Name) des Postfachs. Weglassen, wenn nur eines eingerichtet ist. Bei mehreren Pflicht - mail_list_accounts zeigt die verfügbaren. Beim Senden immer das Postfach wählen, von dem der Nutzer absenden will, und im Zweifel nachfragen.
mailboxNoIMAP-Ordner, z.B. "INBOX" oder "INBOX/Projekte".INBOX

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly discloses that the tool never permanently deletes messages and that permanent removal requires emptying the trash in the mail program. This adds meaningful behavioral context beyond the openWorldHint annotation, clarifying the non-destructive nature of the operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no wasted words. The core action is front-loaded, and the important caveat about permanent deletion follows immediately. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple move-to-trash tool, the description plus schema is mostly sufficient: it identifies the action, the target folder, and the non-destructive behavior. It could benefit from mentioning the alternative mail_move for other destinations, but this is not critical for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter-level meaning. The schema covers account and mailbox with descriptions, but the required 'uids' parameter is undocumented in both the schema and the description. With schema description coverage at 67%, the description should compensate for the missing uids explanation but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'Verschiebt Nachrichten in den Papierkorb' (moves messages to trash). This clearly distinguishes it from the generic sibling mail_move by targeting the trash folder specifically, and the title reinforces the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives like mail_move. It does not mention that mail_move should be used for moving to other folders, nor does it state any exclusions. The only additional note about permanent deletion is behavioral, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYesUID der Nachricht aus mail_search.
accountNoE-Mail-Adresse (oder Name) des Postfachs. Weglassen, wenn nur eines eingerichtet ist. Bei mehreren Pflicht - mail_list_accounts zeigt die verfügbaren. Beim Senden immer das Postfach wählen, von dem der Nutzer absenden will, und im Zweifel nachfragen.
mailboxNoIMAP-Ordner, z.B. "INBOX" oder "INBOX/Projekte".INBOX
markSeenNoNachricht dabei als gelesen markieren.
maxCharsNoMaximale Zeichenzahl des Textkörpers.
includeHtmlNoZusätzlich das rohe HTML mitliefern.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide only openWorldHint, no readOnlyHint or destructiveHint. The description discloses the HTML-to-text reduction behavior, which is helpful, but it omits the markSeen side effect that can modify message state. Since the schema includes markSeen but the description does not mention it, an agent may not anticipate that calling this tool can have a write effect. Partial transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action and scope. Every word adds value: the first sentence defines the operation and result components; the second discloses a behavioral nuance. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description must explain the return value. It does so by listing headers, text, and attachment list. It also discloses HTML reduction behavior. It does not mention error handling or what happens if the message is not found, but for a read tool with maxChars and includeHtml parameters, the essential information is covered. Slightly incomplete regarding the markSeen side effect, but that is more behavioral than contextual.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are documented. The description adds a little context by specifying that output includes attachment list, but it does not elaborate on parameter meaning beyond the schema. It references 'UID' which matches the uid parameter, but adds no new semantics for account, mailbox, markSeen, maxChars, or includeHtml. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (liest/reads), a resource (Nachricht per UID), and the scope (Kopfzeilen, Text, Liste der Anhänge). It clearly differentiates from siblings like mail_get_raw by mentioning parsed content and HTML reduction, so an agent can tell when to use this tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading parsed message content and notes HTML reduction, but it does not explicitly name alternatives or state when not to use it. For example, it does not say 'for raw email use mail_get_raw'. The context is clear but exclusion criteria are missing, so only implied guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mail_save_attachmentAnhang speichernA

Speichert einen Anhang einer Nachricht auf der Festplatte. Zielordner ist standardmäßig der downloadDir aus der Konfiguration.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidYes
indexNoIndex des Anhangs aus mail_read. Weglassen = alle Anhänge.
accountNoE-Mail-Adresse (oder Name) des Postfachs. Weglassen, wenn nur eines eingerichtet ist. Bei mehreren Pflicht - mail_list_accounts zeigt die verfügbaren. Beim Senden immer das Postfach wählen, von dem der Nutzer absenden will, und im Zweifel nachfragen.
mailboxNoIMAP-Ordner, z.B. "INBOX" oder "INBOX/Projekte".INBOX
targetDirNoZielordner (absoluter Pfad). Default: downloadDir der Konfiguration.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only openWorldHint present and no read-only or destructive annotations, the description carries the burden of disclosing side effects. It does explicitly state that the tool saves to the hard disk and defaults to downloadDir, which is meaningful. However, it does not mention file naming, overwrite behavior, or whether saving affects the mail server state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences that immediately state the core behavior and the default destination. There is no filler or redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no output schema, the description is minimally adequate but leaves gaps. It does not mention that omitting index saves all attachments, what the tool returns, or how multiple accounts are handled. The schema fills in parameter details, but the description alone would not fully prepare an agent to invoke the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, so the schema already documents most parameters. The description only adds that targetDir defaults to downloadDir, which is also repeated in the schema, so it contributes no significant semantic value beyond the structured definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'Speichert einen Anhang einer Nachricht auf der Festplatte.' This clearly identifies it as the save-attachment operation and distinguishes it from the sibling mail tools, none of which write attachments to disk.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool instead of alternatives, nor does it mention prerequisites such as first reading the message with mail_read. The only usage hint appears in the schema's index parameter ('aus mail_read'), not in the description itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mail_sendMail sendenA
Destructive

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNo
toYesEmpfänger-Adressen.
bccNo
htmlNoNachricht als HTML. Ohne text wird daraus eine Textversion erzeugt.
textNoNachricht als reiner Text.
accountNoE-Mail-Adresse (oder Name) des Postfachs. Weglassen, wenn nur eines eingerichtet ist. Bei mehreren Pflicht - mail_list_accounts zeigt die verfügbaren. Beim Senden immer das Postfach wählen, von dem der Nutzer absenden will, und im Zweifel nachfragen.
replyToNoAbweichende Antwortadresse.
subjectYesBetreff.
attachmentsNo
inReplyToUidNoUID der Nachricht, auf die geantwortet wird - setzt In-Reply-To/References für korrektes Threading.
inReplyToMailboxNoOrdner der Nachricht aus inReplyToUid.INBOX

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate destructive and open-world behavior, but the description adds specific context: the email is sent via SMTP, stored in the Sent folder, and the operation is 'endgültig und nicht widerrufbar'. This goes beyond the generic destructiveHint and is valuable for an agent deciding whether to call the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both essential: the first states action and outcome, the second states the critical irreversibility warning and required confirmation step. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-stakes send operation, the description covers the essential warning, the sent-folder side effect, and the SMTP mechanism. It does not mention alternatives or failure behavior, but the schema and annotations fill most remaining gaps, making this adequate for a destructive tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not add parameter-level semantics, but the schema already covers most parameters with descriptions (73% coverage). The mention of confirming recipients, subject, and text highlights which fields matter most, though it does not explain their formats or constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Versendet eine E-Mail über SMTP') and the outcome ('legt sie im Gesendet-Ordner ab'), making the tool's purpose obvious. It does not explicitly reference sibling tools, but the send-vs-draft distinction is implied by the verb and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context by warning that sending is final and requires user confirmation of recipients, subject, and text before invocation. It does not explicitly name alternatives like mail_create_draft or state when not to use this tool, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mail_set_flagsFlags setzenA

Setzt oder entfernt IMAP-Flags. Gängige Werte: "\Seen" (gelesen), "\Flagged" (markiert), "\Answered" (beantwortet).

ParametersJSON Schema
NameRequiredDescriptionDefault
addNoFlags zum Setzen, z.B. ["\Seen"].
uidsYesUIDs der betroffenen Nachrichten.
removeNoFlags zum Entfernen.
accountNoE-Mail-Adresse (oder Name) des Postfachs. Weglassen, wenn nur eines eingerichtet ist. Bei mehreren Pflicht - mail_list_accounts zeigt die verfügbaren. Beim Senden immer das Postfach wählen, von dem der Nutzer absenden will, und im Zweifel nachfragen.
mailboxNoIMAP-Ordner, z.B. "INBOX" oder "INBOX/Projekte".INBOX

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide openWorldHint=true, so the description carries the burden of behavioral disclosure. It does state that flags are set or removed, but it does not disclose permissions, side effects, reversibility, or behavior on invalid flags. This is minimal disclosure for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short, information-dense sentences. The operation is stated first, and the common values are listed directly after, with no redundant repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation with five well-documented parameters, the description plus schema covers most invocation needs. However, it does not state that at least one of add or remove should be provided, nor does it describe return or error behavior, leaving some ambiguity for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by enumerating common flag values and their German meanings, which applies to both add and remove parameters and goes beyond the schema's single example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first phrase 'Setzt oder entfernt IMAP-Flags' clearly names a specific action and resource. The common-value examples further clarify the intended domain and distinguish this tool from sibling mail operations like moving, reading, or searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The examples ('gelesen', 'markiert', 'beantwortet') imply when the tool should be used, but the description does not explicitly state when to use it over alternatives or note any prerequisites. There is no when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mail_test_connectionVerbindung testenA
Read-only

Prüft IMAP-Login und SMTP-Login eines Accounts und meldet beide Ergebnisse einzeln.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNoE-Mail-Adresse (oder Name) des Postfachs. Weglassen, wenn nur eines eingerichtet ist. Bei mehreren Pflicht - mail_list_accounts zeigt die verfügbaren. Beim Senden immer das Postfach wählen, von dem der Nutzer absenden will, und im Zweifel nachfragen.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and open-world behavior. The description adds the specific behavioral trait that it tests both IMAP and SMTP logins and reports each separately, which is beyond what annotations provide and useful for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, directly to the point, with no filler. It front-loads the verb and resource and efficiently adds the detail about separate reporting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple diagnostic tool with one optional parameter, read-only annotation, and no output schema, the description adequately explains what the tool does and that it reports two results independently. It does not specify the format of the results, but this is a minor gap given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides comprehensive description of the single optional account parameter, including guidance on omission, required when multiple accounts, and reference to mail_list_accounts. The tool description itself adds no parameter semantics, but schema coverage is 100%, so a baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (checks IMAP and SMTP login) on a specific resource (an account) and notes that it reports both results separately. This clearly distinguishes it from sibling tools, none of which perform connection testing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for verifying an account's connectivity but does not explicitly state when to prefer it over alternatives or exclude cases. The account parameter description gives some guidance on selecting accounts, but not on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv1.1.0
    • First observedmail_create_draft
    • First observedmail_detect_provider
    • First observedmail_get_raw
    • First observedmail_list_accounts
    • First observedmail_list_mailboxes
    • First observedmail_move
    • First observedmail_move_to_trash
    • First observedmail_read
    • First observedmail_save_attachment
    • First observedmail_search
    • First observedmail_send
    • First observedmail_set_flags
    • First observedmail_test_connection

TDQS

A4/5.0

Scored across 13 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables Claude to interact with email accounts via IMAP and SMTP, providing tools for searching, reading, sending, and managing emails across multiple providers.
    40
    1,715 npm
    98
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to read, search, send, and manage emails across multiple IMAP/SMTP accounts via a single deployment.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables Claude to control the macOS Mail app for reading, searching, drafting, sending, and managing emails directly from Claude Desktop.
    12
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude to read, search, draft, send, flag, and move email across multiple IMAP/SMTP mailboxes while keeping credentials local.
    -