MoeMail

Wegwerf-E-Mail für KI-Agenten

Ein MCP-Server, eine CLI und ein Agenten-Skill für MoeMail. Dein Agent legt ein Postfach an, wartet auf die Bestätigungsmail, liest den Code aus und löscht das Postfach wieder — über dieselbe API, die moemail.app antreibt.

8 MCP-Tools · läuft per npx, nichts zu hosten · Claude Desktop, Cursor, Claude Code, Codex

Drei Wege hinein

MCP-Server

npx -y @moemail/mcp. Acht Tools, die jeder MCP-Client über stdio aufrufen kann. Nichts zu deployen, nichts, das dauerhaft laufen muss.

@moemail/mcp

CLI

npm i -g @moemail/cli. Neun Befehle, jeder mit --json-Ausgabe und aussagekräftigen Exit-Codes — gebaut für shell-gesteuerte Agenten und CI-Jobs.

@moemail/cli

Agenten-Skill

moemail skill install legt eine SKILL.md in Claude Code oder Codex ab, sodass der Agent den Ablauf Anlegen → Warten → Lesen → Löschen kennt, bevor er danach gefragt wird.

SKILL.md

Die Tools

Die Namen entsprechen genau dem, was der Server registriert. wait_for_email ist das Tool, das Agenten funktionieren lässt: Es blockiert bis zu 90 Sekunden und liefert status: "timeout" statt eines Fehlers, sodass der Agent es einfach erneut aufruft.

create_email
Postfach anlegen; liefert id und address. Lebensdauer 1h, 24h, 3d oder permanent.
wait_for_email
Pollen, bis eine neue Nachricht eintrifft (≤ 90 s pro Aufruf), sonst sauber in den Timeout laufen.
list_messages
Liste der empfangenen Nachrichten, neueste zuerst.
read_message
Vollständiger Text und HTML einer Nachricht.
list_emails
Alle Postfächer dieses API-Schlüssels.
send_email
Von der Wegwerf-Adresse antworten (Sendekontingent nötig).
delete_message
Eine Nachricht entfernen.
delete_email
Das Postfach mit allem Inhalt entfernen.

So sieht eine Sitzung aus

Die Bestätigungscode-Schleife, so wie der Agent die Tool-Aufrufe tatsächlich macht: vier Aufrufe plus so viele Polls, wie die Mail zum Eintreffen braucht.

Du

Melde dich mit einer Wegwerf-Adresse für die Beta auf example.com an und sag mir den Code.

Der Agent legt ein Postfach an und trägt die Adresse ins Anmeldeformular ein.

create_email { "expiry": "1h" }
{ "id": "k3f…", "address": "x7q2m9@moemail.app", "expiresAt": "…T15:04:05.000Z" }

Dann wartet er. Jeder Poll ist ein API-Aufruf; hier kam die Mail nach zwölf Sekunden.

wait_for_email { "emailId": "k3f…", "timeoutSec": 90 }
{ "status": "received", "elapsedSec": 12,
  "message": { "messageId": "m81…", "from": "no-reply@example.com",
               "subject": "Your code is 482913", "receivedAt": "…" } }

Er liest die Nachricht und zieht den Code aus dem Text.

read_message { "emailId": "k3f…", "messageId": "m81…" }
{ "id": "m81…", "from": "no-reply@example.com", "subject": "Your code is 482913",
  "content": "Enter 482913 to finish signing up. …", "html": "…", … }

Und löscht das Postfach, damit nichts zurückbleibt.

delete_email { "emailId": "k3f…" }
{ "success": true, "deleted": "k3f…" }
Agent

Fertig — der Code war 482913. Das Postfach habe ich gelöscht.

Einen Client verbinden

Füge deinen Schlüssel dort ein, wo die Punkte stehen. Der mcpServers-Block ist für Claude Desktop, Cursor und Windsurf identisch; Claude Code und Codex nehmen denselben Befehl in ihrem eigenen Format.

Claude Desktop · claude_desktop_config.json
{
  "mcpServers": {
    "moemail": {
      "command": "npx",
      "args": ["-y", "@moemail/mcp"],
      "env": {
        "MOEMAIL_API_KEY": "mk_••••••••••••"
      }
    }
  }
}
Cursor · .cursor/mcp.json
{
  "mcpServers": {
    "moemail": {
      "command": "npx",
      "args": ["-y", "@moemail/mcp"],
      "env": {
        "MOEMAIL_API_KEY": "mk_••••••••••••"
      }
    }
  }
}
Claude Code · terminal
claude mcp add moemail -e MOEMAIL_API_KEY=mk_•••••••••••• -- npx -y @moemail/mcp
Codex CLI · ~/.codex/config.toml
[mcp_servers.moemail]
command = "npx"
args = ["-y", "@moemail/mcp"]
env = { MOEMAIL_API_KEY = "mk_••••••••••••" }

Du hostest MoeMail selbst? Setze MOEMAIL_API_URL auf deine Instanz — beide Pakete zeigen standardmäßig auf moemail.app.

Oder direkt aus der Shell

Dieselbe API, keine Agenten-Laufzeit. Jeder Befehl akzeptiert --json; Exit-Code 1 ist ein Laufzeitfehler, 2 ein Konfigurations- oder Auth-Fehler, sodass ein Skript „noch keine Mail“ von „falscher Schlüssel“ unterscheiden kann.

@moemail/cli · bash
npm i -g @moemail/cli
moemail config set api-key mk_••••••••••••

# 1. a mailbox that lives for an hour
moemail create --expiry 1h --json
# {"id":"k3f…","address":"x7q2m9@moemail.app","expiresAt":"2026-09-02T15:04:05.000Z"}

# 2. block until the verification mail lands (exit 1 on timeout)
moemail wait --email-id k3f… --timeout 120 --json
# {"messageId":"m81…","from":"no-reply@example.com","subject":"Your code is 482913","receivedAt":"…"}

# 3. read it, then clean up
moemail read --email-id k3f… --message-id m81… --json
moemail delete --email-id k3f…

Dem Agenten einmal beibringen

Die CLI bringt eine Skill-Datei mit. Einmal installiert, greift Claude Code oder Codex von selbst zu moemail, wann immer eine Aufgabe ein Wegwerf-Postfach braucht, statt dass du den Ablauf jedes Mal erklärst.

bash
moemail skill install                    # auto-detects Claude Code and Codex
moemail skill install --platform claude  # ~/.claude/skills/moemail/SKILL.md
moemail skill install --platform codex   # ~/.codex/skills/moemail/SKILL.md

Schlüssel, Kontingent und Preis

Beide Pakete authentifizieren sich mit einem MoeMail-API-Schlüssel. Lege ihn in deinem Profil an — es ist derselbe Schlüssel wie für die REST-API, und er zieht vom selben Monatskontingent.

API-Zugang ist ein kostenpflichtiges Add-on: Der Standardtarif enthält keine kostenlosen Aufrufe. Kaufe im Shop mit MoeCoin ein API-Aufruf-Paket oder ein Duke-Upgrade. Das Web-Postfach selbst bleibt kostenlos, sodass du siehst, was die Postfächer tun, bevor du für die API zahlst.

Rechne das Polling ein: Jeder wait_for_email-Poll und jeder Tick von CLI wait ist ein Aufruf. Ein typischer Bestätigungsdurchlauf — Anlegen, Warten, Lesen, Löschen — sind vier Aufrufe plus die Polls.

Profil → API-Schlüssel öffnen

Häufige Fragen

Die Pakete stehen unter MIT-Lizenz und sind frei installierbar. MoeMail darüber aufzurufen braucht einen API-Schlüssel mit Kontingent, und das ist ein kostenpflichtiges Add-on — der Standardtarif enthält keine API-Aufrufe. Das Web-Postfach auf moemail.app ist kostenlos.

Mit jedem MCP-Client, der einen stdio-Server starten kann: Claude Desktop, Cursor, Windsurf, Claude Code und Codex CLI sind oben gezeigt. Der Server wird per npx gestartet, Node.js 18 oder neuer ist die einzige Voraussetzung.

Den MCP-Server, wenn ein Agent in einem Editor oder Chat die Tools selbst aufrufen soll. Die CLI, wenn ein Shell-Skript, ein CI-Job oder ein terminalbasierter Agent den Ablauf steuert; ihre --json-Ausgabe und Exit-Codes sind dafür gemacht. Beide sprechen dieselbe API mit demselben Schlüssel.

Ja. Setze MOEMAIL_API_URL auf deine Instanz; der Standard ist https://moemail.app. Die CLI kann den Wert auch mit `moemail config set api-url` speichern.

Das Tool send_email und der Befehl `moemail send` senden von einer Wegwerf-Adresse, sofern das Konto ein Sendekontingent hat. Senden ist ein eigenes Kontingent, getrennt von den API-Aufrufen.

Noch nicht. Derzeit läuft der Server lokal über stdio per npx, was jeder große Client unterstützt. Ein gehosteter Streamable-HTTP-Endpunkt ist geplant; sobald er da ist, wird er auf dieser Seite angekündigt, und die lokale Variante funktioniert weiter.

Beide Pakete liegen im offenen MoeMail-Repository auf GitHub unter packages/mcp und packages/cli, zusammen mit dem Dienst selbst.

Gib deinem Agenten ein Postfach

Lege einen API-Schlüssel an, füge einen Konfigurationsblock ein, und der nächste Anmeldeablauf deines Agenten läuft von allein durch.