Kai Ole Hartwig
s3mail · Dokumentation

MCP, iPhone, Grenzen

s3mail spricht das Model Context Protocol über stdin/stdout, damit Claude im Postfach suchen, lesen, einsortieren und einen Entwurf schreiben kann. Ein Werkzeug zum Senden gibt es nicht, und das ist der Punkt: der Absender bleibt technisch ein Mensch.

  • --mcp:claude mcp add s3mail -- /pfad/zu/s3mail --mcp; --mcp-readonly ohne Verschieben, Verschlagworten, Entwerfen
  • iPhone: eine native App liest denselben Bucket mit eigenem Schlüssel, gekoppelt per QR-Code und sechs Ziffern
  • Grenzen: kein IMAP, keine Thread-Gruppierung, Windows-Pakete unsigniert

Für ein Modell erreichbar: --mcp

s3mail spricht das Model Context Protocol über stdin/stdout: kein Fenster, kein Webserver, kein Port. Damit kann Claude im Postfach suchen, lesen, einsortieren und einen Entwurf schreiben. Voraussetzung: s3mail muss einmal normal gelaufen und eingerichtet sein; --mcp liest dieselbe config.json und startet keinen Assistenten.

 

claude mcp add s3mail -- /pfad/zu/s3mail --mcp
claude mcp list          # muss „✔ Connected“ zeigen

 

Für Claude Desktop in claude_desktop_config.json: {"mcpServers": {"s3mail": {"command": "/pfad/zu/s3mail", "args": ["--mcp"]}}}, danach Claude Desktop neu starten.

WerkzeugWofür
searchSuchen wie im Postfach: from:, subject:, after:, is:unread, tag: …
readEine Mail ganz lesen, samt Namen der Anhänge
foldersOrdner mit Anzahl und Ungelesenen
moveEinsortieren; Papierkorb und Spam werden abgelehnt, sonst umkehrbar
tag, flagVerschlagworten, gelesen/ungelesen, Stern
draftEinen Entwurf in den Bucket legen

Es gibt kein Werkzeug zum Senden, und das ist der Punkt. Eine eingehende Mail ist fremder Text, der im Kontext des Modells landet; „schick das an …“ passt in eine Mail. Das Modell legt einen Entwurf in den Bucket, du öffnest s3mail und drückst Senden. Der Absender bleibt technisch ein Mensch, nicht nur organisatorisch. Aus demselben Grund sind Papierkorb und Spam keine Ziele für move: mit der Lifecycle-Regel wäre ein Verschieben dorthin ein Löschen mit Verzögerung. Wer noch weniger zulassen will, startet mit --mcp-readonly.

Jede gelesene Mail kommt mit dem Hinweis davor, dass der Inhalt Daten sind und keine Anweisungen. Das löst Prompt-Injection nicht, es begrenzt, was daraus folgen kann. Kein API-Schlüssel, keine Netzverbindung zu Dritten: s3mail ruft kein Modell auf, sondern macht sich für eines erreichbar.

Auf dem Telefon

Eine native iOS-App liest denselben Bucket direkt, mit einem eigenen IAM-Benutzer und einer Rechtegrenze, die sie auf das Prefix dieses Postfachs deckelt. Gekoppelt wird so: auf dem Desktop einen Namen eintippen, einen QR-Code scannen, sechs Ziffern bestätigen. Der Schlüssel reist versiegelt im Code, die PIN nicht; deshalb ist ein Foto des Bildschirms kein Zugang. Ein verlorenes Telefon ist eine einzelne Sperrung, keine Rotation überall.

Die App lebt in einem eigenen Repository: github.com/ohartwig/s3mail-ios; die Überlegungen dahinter stehen in IOS.md.

Grenzen

Lizenz und Meldeweg

Apache-2.0, jede Quelldatei trägt den SPDX-Identifier, das Repository ist REUSE-konform. Die Patentklausel in Abschnitt 3 ist der Grund für Apache-2.0 statt MIT: sie gibt jedem Nutzer die Patentrechte an dem, was drin ist, und nimmt sie dem wieder, der darüber klagt. Sicherheitslücken an security@ole-hartwig.eu, nicht als Issue.

Weiter

Zurück zu s3mail

Die Übersicht: was s3mail ausmacht, Loslegen, alle Kapitel.

s3mail →
Zurück zu s3mail

Einrichtung

Was das AWS-Konto braucht, CloudFormation oder von Hand, die IAM-Policy, der erste Start.

Lesen →
Einrichtung