DocsBald verfügbar

MCP-Server

Claude, ChatGPT, Cursor oder einen anderen MCP-Client mit Ihrem letr.dev-Konto verbinden.

letr.dev betreibt einen gehosteten MCP-Server. Ein Assistent kann E-Mails versenden, Zustellungen nachverfolgen und Absenderdomains, Webhooks und die Sperrliste verwalten, mit denselben Regeln wie die API. Es gibt nichts zu installieren.

Endpunkt

https://api.letr.dev/mcp spricht Streamable HTTP, zustandslos, Protokollversion 2025-11-25: JSON-RPC über POST. GET und DELETE ergeben 405, und der Origin-Header wird geprüft. Clients mit 2025-06-18 oder 2025-03-26 werden ebenfalls angenommen; ein Client mit einer neueren Version erhält für seinen MCP-Protocol-Version-Header 400 und wechselt auf initialize. GET https://api.letr.dev/mcp/server-card liefert die Server Card (application/mcp-server-card+json, ohne Berechtigungsnachweis): den Namen dev.letr/letr und diesen Endpunkt als einzigen Remote.

Anmeldung

  • OAuth. Clients wie Claude und ChatGPT melden Sie im Browser an. Eine Anfrage ohne Berechtigungsnachweis ergibt 401 mit einem WWW-Authenticate-Header, der auf /.well-known/oauth-protected-resource/mcp zeigt; dort findet der Client den Autorisierungsserver. Der Ablauf ist der übliche: PKCE mit S256, dynamische Client-Registrierung oder ein Client-ID-Metadatendokument, dann das Token mit https://api.letr.dev/mcp als Audience. Ein OAuth-Token handelt mit full_access für Ihr Konto.
  • API-Key. Senden Sie Authorization: Bearer letr_.... Die Berechtigung des Keys bestimmt, welche Tools der Client überhaupt sieht.

Für Agenten nehmen Sie einen Key mit sending_access, auf eine Domain beschränkt.

Was er nicht kann

Kein Tool gibt ein Secret heraus oder nimmt eines an: API-Keys, Webhook-Signing-Secrets und private Schlüssel bleiben im Dashboard. Jedes Tool durchläuft dieselbe Validierung und dieselben Limiten wie /v1; MCP fügt keine Fähigkeit hinzu. Aufrufe sind auf 120 Tool-Aufrufe pro Minute und Berechtigungsnachweis begrenzt, zusätzlich zu den 600 Anfragen pro Minute des Kontos. Über die 120 hinaus liefert ein Tool-Aufruf den Tool-Fehler rate_limited: Too many requests; die X-RateLimit-*-Header zählen die 600 des Kontos, nicht dieses Budget. Die Abrechnung ist nicht erreichbar.

Protokoll

Das Dashboard zeigt jeden Tool-Aufruf der letzten 30 Tage mit Tool, Ergebnis, Berechtigungsnachweis, Name des Clients und, bei Versand-Tools, der Anzahl Empfänger. Adressen und Inhalte werden nie protokolliert.

Sicherheit

Versand-Tools sind als nicht nur lesend markiert und so gekennzeichnet, dass sie vor dem Ausführen nachfragen; Clients, die das beachten, fragen zuerst. Lese-Tools sind als nur lesend markiert. Versand-Tools verlangen einen idempotencyKey: Der Assistent wählt pro Versand einen neuen (einen für einen ganzen Batch) und verwendet ihn bei einer Wiederholung erneut, sodass ein wiederholter Aufruf nie doppelt sendet. Ein Assistent, der nicht vertrauenswürdige Inhalte liest (Postfächer, Webseiten, Tickets) und E-Mails versenden kann, lässt sich zum Versand verleiten. Halten Sie Sending-Keys eng.

Ressourcen und Prompts

Der Server bietet die öffentliche API-Referenz (OpenAPI), dasselbe Dokument wie letr.dev/docs/openapi.json, als letr://docs/api und die DNS-Einträge einer Domain als letr://domains/{id}/dns-records, dazu zwei Prompts: set_up_sending_domain und diagnose_delivery.

Einrichtung

claude mcp add --transport http letr https://api.letr.dev/mcp \
  --header "Authorization: Bearer $LETR_API_KEY"

Tools nach Berechtigung

Welche Tools ein Berechtigungsnachweis sieht, hängt von seiner Berechtigung ab; ein OAuth-Token sieht alle.

ToolBerechtigungArt
send_emailsending_accessfragt vor dem Versand
send_batch_emailssending_accessfragt vor dem Versand
get_emailread_only, sending_access (own emails)nur lesend
list_emailsread_onlynur lesend
list_domainsread_onlynur lesend
get_domainread_onlynur lesend
add_domainfull_accessändert Daten
verify_domainfull_accessändert Daten
remove_domainfull_accesslöscht
list_webhooksread_onlynur lesend
update_webhookfull_accessändert Daten
delete_webhookfull_accesslöscht
send_test_webhookfull_accessändert Daten
list_suppressionsread_onlynur lesend
remove_suppressionfull_accesslöscht
get_usageread_onlynur lesend
get_metricsread_onlynur lesend