Die kurze Antwort
Wenn ein MCP-Tool-Aufruf das Timeout überschreitet, erkennen Sie nicht, ob die Änderung passiert ist. Vielleicht hat Ihre KI nur die Antwort verloren, nicht die Arbeit. Prüfen Sie vor dem Wiederholen im Tool, was es anlegen wollte. Wiederholen Sie nur, wenn es fehlt. Eine Nachricht senden Sie nie von allein erneut.
In diesem Guide
Warum verrät ein Timeout nicht, ob die Änderung passiert ist?
Ihre KI bat ein Tool, eine Änderung vorzunehmen, und wartete dann. Es kam keine Antwort, also hörte Ihre KI-App auf zu warten und meldete einen Fehler. Diese Meldung beschreibt das Warten, nicht die Änderung. Wiederholen Sie eine Änderung, die schon gemacht wurde, und Sie haben zwei Tickets, zwei Seiten oder zwei Nachrichten.
Entwickler nennen eine solche Änderung einen Schreibvorgang. Drei Dinge können passiert sein.
| Was passiert ist | Ist die Änderung im Tool? | Bei einem Wiederholen |
|---|---|---|
| Die Anfrage ist nie angekommen. | Nein. | Richtig: Die Änderung wird genau einmal gemacht. |
| Das Tool arbeitet noch. | Noch nicht. Sie erscheint, nachdem Ihre KI aufgegeben hat. | Die Änderung wird zweimal gemacht, außer eine Wiederholung ist harmlos. |
| Das Tool ist fertig, und die Antwort ist verloren gegangen. | Ja. | Die Änderung wird zweimal gemacht, außer eine Wiederholung ist harmlos. |
Die MCP-Spezifikation rechnet damit. Ein Client sollte für jede Anfrage ein Timeout setzen und sie bei Ablauf abbrechen und nicht mehr warten. Ein Abbruch ist keine Garantie. Der Server kann ihn ignorieren, wenn die Arbeit schon getan ist oder sich nicht stoppen lässt. Er kann auch erst eintreffen, nachdem die Antwort gesendet wurde.
Auch der API-Leitfaden von Stripe sagt das: Nach einem Verbindungsabbruch wissen Sie vielleicht nicht, ob die Anfrage gelaufen ist. Dort heißt es, auch einen Serverfehler sollten Sie als unbekanntes Ergebnis behandeln.
Was tun Sie nach einem Timeout, Schritt für Schritt?
Gehen Sie die Schritte der Reihe nach durch. Die ersten beiden dauern eine Minute.
- Stoppen Sie das WiederholenJetzt
Sagen Sie Ihrer KI, den Aufruf nicht zu wiederholen: „Wiederholen Sie nicht. Prüfen Sie zuerst, ob er gemacht wurde.“ Ein Wiederholen allein führt dazu, dass eine Änderung zweimal gemacht wird.
- Schauen Sie im Tool nach, nicht im Chat1 Minute
Öffnen Sie das Tool selbst: die Notion-Seite, die GitHub-Issues, den Ordner. Suchen Sie nach dem Titel oder der ID, die Sie angegeben haben. Der Chat weiß nur, dass der Aufruf fehlgeschlagen ist.
- Lesen Sie, was Sie finden2 Minuten
Gefunden und vollständig: Die Änderung ist gemacht. Machen Sie weiter und wiederholen Sie sie nicht.
Gefunden, halb fertig: Ergänzen Sie den fehlenden Teil mit einer Aktualisierung, nicht mit einem neuen Anlegen.
Nicht gefunden: Sie ist nie angekommen oder läuft noch. Warten Sie eine Minute und schauen Sie noch einmal nach. - Wiederholen Sie einmal, und nur einen sicheren AufrufDann
Fehlt sie noch, wiederholen Sie einmal. Die Tabelle unten sagt, welche Aufrufe sich gefahrlos wiederholen lassen. Bevor Sie eine Nachricht senden, prüfen Sie, wo sie ankommt.
- Kommt das Timeout immer wieder, beheben Sie die UrsacheDanach
Ein Aufruf, der immer das Timeout überschreitet, hat ein zu kurzes Limit oder eine zu große Aufgabe. Erhöhen Sie das Limit für diesen Server, oder bitten Sie um weniger pro Aufruf.
Welche Aufrufe lassen sich gefahrlos wiederholen?
Ein Aufruf lässt sich gefahrlos wiederholen, wenn zweimaliges Ausführen dasselbe Ergebnis hat wie einmaliges. Lesevorgänge fallen darunter. Viele Änderungen nicht. Der HTTP-Standard sieht PUT (einen Wert setzen) und DELETE als wiederholbar an, und die Zeilen unten folgen ihm. Die eigene idempotentHint eines Tools oder seine Beschreibung hat Vorrang.
| Der Aufruf | Einfach wiederholen? | Vorher prüfen durch |
|---|---|---|
| Lesen: suchen, auflisten, öffnen | Ja. Es ändert nichts. | Nichts zu prüfen. |
| Einen Wert setzen: einen Status, einen Titel, ein Label | Meist ja. Denselben Wert zweimal zu setzen ergibt dasselbe Ergebnis, wie bei einem HTTP-PUT. | Das Feld lesen. Hat eine Person es seitdem geändert, überschreibt ein Wiederholen ihre Änderung. |
| Etwas hinzufügen: einen Kommentar, eine Zeile, einen Eintrag | Nein. Zweimal ausgeführt steht es zweimal da. | Das Element öffnen und nach Ihrem Zusatz suchen. |
| Anlegen: eine Seite, ein Issue, eine Datei | Nein. Ein Wiederholen legt eine zweite an. | Suchen nach dem Titel oder der ID, die Sie angegeben haben. Nur wiederholen, wenn nichts passt. |
| Löschen | Meist ja, wenn der Aufruf ein bestimmtes Element nennt, wie bei einem HTTP-DELETE. Nicht „das neueste“: Der zweite Aufruf trifft ein anderes Element. | Nach dem Element suchen. Weg heißt erledigt. |
| Senden: eine Nachricht, eine E-Mail, eine Benachrichtigung | Nie von allein. Eine gesendete Nachricht lässt sich nicht zurücknehmen. | Prüfen, wo sie ankommt: die gesendeten Nachrichten, den Kanal, die Gegenseite. Wenn Sie es nicht erkennen können, fragen Sie nach, bevor Sie erneut senden. |
Kann ein Idempotenz-Schlüssel die Doppelung verhindern?
Manchmal. Ein Idempotenz-Schlüssel ist ein eindeutiges Kennzeichen, das mit einer Anfrage gesendet wird. Kommt dasselbe Kennzeichen zweimal an, führt der Dienst die Arbeit einmal aus und wiederholt seine erste Antwort. Er ist für eine Anfrage gebaut, auf die keine Antwort kam.
- So funktioniert ein Schlüssel bei Stripe. Die API v1 nimmt einen Schlüssel bei
POST-Anfragen an. Sie speichert das erste Ergebnis, auch einen Fehler, und gibt es bei einem Wiederholen mit demselben Schlüssel erneut zurück. Schlüssel bleiben mindestens 24 Stunden erhalten. Derselbe Schlüssel mit anderen Parametern wird abgewiesen. - Was ein Wiederholen tun muss. Senden Sie denselben Schlüssel und dieselben Parameter. Stripe sagt, Sie sollen nicht mit einem neuen Schlüssel wiederholen, bevor Sie das erste Ergebnis kennen. Ein neuer Schlüssel bei jedem Versuch bietet keinen Schutz.
- Was MCP Ihnen bietet. Eine
tools/call-Anfrage trägt einen Tool-Namen und seine Argumente. Das Schema der Spezifikation legt dafür keinen Idempotenz-Schlüssel fest. Ein Tool kann trotzdem einen als eigenes Argument annehmen, deshalb lesen Sie seine Argumente. - Was ein Tool angeben darf.
idempotentHintsagt, dass ein erneuter Aufruf des Tools mit denselben Argumenten keine zusätzliche Wirkung hat. Es ist nur ein Hinweis. Die Spezifikation sagt, Clients sollten Entscheidungen nie auf Hinweise von Servern stützen, denen sie nicht vertrauen.
Ein Schlüssel ist also ein Bonus, kein Plan. Bietet das Tool keinen, schützt Sie die Prüfung oben.
Wie ändern Sie den MCP-Timeout?
Ein zu kurzes Limit bricht ehrliche Arbeit ab. Ein zu langes lässt Sie warten. Wo Sie es einstellen, hängt von Ihrer KI-App ab. Hier sind die Einstellungen von Claude Code.
| Einstellung | Was sie begrenzt | Standard |
|---|---|---|
MCP_TOOL_TIMEOUT | Wie lange ein Tool-Aufruf laufen darf, in Millisekunden. | 100.000.000 ms, etwa 28 Stunden |
timeout in .mcp.json | Dasselbe, für einen Server. Es überschreibt die Variable für diesen Server. Ein hartes Limit: Fortschrittsmeldungen verlängern es nicht. | Der Wert der Variable |
CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT | Wie lange ein Aufruf still bleiben darf, ohne Antwort und ohne Fortschritt, bevor er abbricht. 0 schaltet die Prüfung aus. | 5 Minuten für Netzwerk-Server, 30 Minuten für stdio |
MCP_TIMEOUT | Das Starten eines Servers. Bei einem Remote-Server zählt es außerdem in den Timer pro Anfrage unten hinein. | 30.000 ms, 30 Sekunden |
CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS | Wenn ein Aufruf, der im Hauptgespräch noch läuft, in eine Hintergrundaufgabe wechselt. 0 schaltet es aus. Version 2.1.212 oder neuer. | 120.000 ms, 2 Minuten |
Der Standard von 60 Sekunden für Remote-Server. Ein Server, der über HTTP, SSE oder als claude.ai-Connector erreicht wird, hat einen zweiten Timer. Er läuft bei jeder Anfrage bis zum ersten Antwortbyte des Servers. Er dauert 60 Sekunden, es sei denn, MCP_TOOL_TIMEOUT, das timeout des Servers oder MCP_TIMEOUT ist höher eingestellt. Lokale stdio-Server haben keinen Timer pro Anfrage.
Um ihn für einen Server einzustellen, fügen Sie "timeout": 600000 zu dessen Eintrag in .mcp.json hinzu. Das sind zehn Minuten.
Ein langsamer Aufruf ist nicht immer ein gescheiterter. Ab Version 2.1.212 verschiebt Claude Code einen MCP-Aufruf im Hauptgespräch nach zwei Minuten in eine Hintergrundaufgabe. Das Ergebnis liefert sie, wenn der Aufruf endet.
Die MCP-Dokumentation von Cursor beschreibt keine Timeout-Einstellung. Die MCP-Spezifikation nennt keine Zahl. Sie sagt, SDKs sollten Timeouts pro Anfrage konfigurierbar machen, und ein Client sollte immer eine Obergrenze haben.
Für Arbeit, die Minuten dauert, kann ein Server MCP Tasks nutzen. Er gibt sofort ein Handle zurück, und der Client fragt das Ergebnis ab, auch nach einer erneuten Verbindung. Beide Seiten müssen es unterstützen, und die Unterstützung durch Clients ist unterschiedlich.
Was tut Delta MCP, wenn eine Antwort verloren geht?
Delta MCP ist eine kostenlose App auf Ihrem Computer, zwischen Ihrer KI und ihren Tools. Kommt auf eine Änderung keine Antwort, rät es nicht und wiederholt nicht einfach. Es liest das Tool.
Bevor eine Änderung abgeht, wählt Delta MCP eine Leseoperation, die zeigen kann, ob sie passiert ist. Das ist das erneute Lesen des Objekts oder einer Liste. Kommt keine Antwort, führt es diese Leseoperation sofort aus. Was die Leseoperation zeigt, entscheidet:
| Die Leseoperation zeigt | Delta MCP |
|---|---|
| Die Änderung wurde gemacht. | Die Aufgabe läuft weiter, und die Antwort sagt, dass sie geprüft wurde. |
| Die Änderung wurde nicht gemacht. | Es sendet die Änderung noch einmal, mit denselben Argumenten. Bei einer Nachricht oder einem anderen Versand tut es das nie von allein. Dafür sagt die Antwort, dass sie nicht gesehen wurde, dass sie noch auftauchen kann, und die Aufgabe hält an. |
| Unklar, oder es lässt sich nichts ablesen, was passiert ist. | Die Antwort sagt, das Ergebnis sei unbekannt, und warum. Die Aufgabe hält an. Sehen Sie im Tool nach, bevor Sie die Änderung noch einmal machen. |
Ein Tool-Aufruf, der so ausgeführt wurde, wie er ist, kann Delta MCP nicht zurückdrehen. Ist ein früherer Aufruf gelungen, bleibt er bestehen, und die Antwort führt ihn auf, damit Ihre KI ihn nicht wiederholt. Jede Aufgabe, die etwas ändert, wird in Activity aufbewahrt, mit jeder Änderung davor und danach.
Wie eine Aufgabe geprüft und angewendet wird
Fragen
Lässt sich ein MCP-Tool-Aufruf nach einem Timeout gefahrlos wiederholen?
Ein Lesevorgang schon. Eine Änderung nicht, bevor Sie sie geprüft haben. Das Timeout sagt nur, dass keine Antwort kam: Das Tool hat die Änderung trotzdem gemacht. Schauen Sie im Tool danach und wiederholen Sie nur, wenn sie fehlt. Eine Nachricht senden Sie nie von allein erneut.
Ist mein Schreibvorgang über MCP durchgekommen, wenn die Anfrage das Timeout überschritten hat?
Am Timeout erkennen Sie es nicht. Die Anfrage ist vielleicht nie angekommen, das Tool arbeitet vielleicht noch, oder es ist fertig, und die Antwort ging verloren. Öffnen Sie das Tool und suchen Sie nach der Änderung.
Wie erhöhe ich den MCP-Tool-Timeout in Claude Code?
Setzen Sie MCP_TOOL_TIMEOUT in Millisekunden, oder fügen Sie ein Feld timeout im Eintrag des Servers in .mcp.json hinzu. Bei einem Remote-Server setzen Sie es über 60.000, damit der Timer von 60 Sekunden pro Anfrage nicht greift. MCP_TIMEOUT ist die Wartezeit beim Start, nicht das Limit für den Tool-Aufruf.
Wie ändere ich den MCP-Timeout in Cursor?
Die MCP-Dokumentation von Cursor beschreibt keine Timeout-Einstellung. Sie sagt, ein fehlgeschlagener Aufruf wird im Chat als fehlgeschlagen markiert, und Sie können wiederholen oder die Logs prüfen. Prüfen Sie zuerst, was das Tool gespeichert hat.
Hat MCP Idempotenz-Schlüssel?
Nein. Ein Tool-Aufruf trägt einen Tool-Namen und Argumente, und das Schema der Spezifikation legt dafür keinen Idempotenz-Schlüssel fest. Ein Tool kann einen eigenen Schlüssel als Argument annehmen. Es kann auch idempotentHint setzen, das nur ein Hinweis ist.
Was macht Delta MCP, wenn ein Tool-Aufruf keine Antwort bekommt?
Es liest das Tool sofort, um zu sehen, ob die Änderung passiert ist. Gemacht: Die Aufgabe läuft weiter. Nicht gemacht: Es sendet die Änderung noch einmal. Eine Nachricht oder einen anderen Versand sendet es nie von allein erneut. Unklar: Die Antwort sagt, das Ergebnis sei unbekannt, und die Aufgabe hält an.
Quellen
- Model Context Protocol, Cancellation Clients sollten Timeouts setzen, abbrechen und nicht weiter warten; ein Abbruch kann eintreffen, nachdem die Arbeit erledigt ist (Revision 2026-07-28).
- Model Context Protocol, Schema Reference Ein Tool-Aufruf trägt Name und Argumente, ohne Idempotenz-Schlüssel; die Annotation idempotentHint, und Annotationen sind nur Hinweise (Revision 2026-07-28).
- Model Context Protocol, Tasks Ein dauerhaftes Handle für lange Vorgänge, das nach einer erneuten Verbindung abgefragt und abgeholt wird; beide Seiten müssen es aktivieren.
- Claude Code, Connect Claude Code to tools via MCP Der Timeout pro Server, der Timer von 60 Sekunden pro Anfrage bei Remote-Servern, das Leerlauf-Fenster, der Wechsel in den Hintergrund nach zwei Minuten.
- Claude Code, Environment variables MCP_TOOL_TIMEOUT, MCP_TIMEOUT, CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT und CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS, mit Standardwerten.
- Cursor, Model Context Protocol (MCP) Ein fehlgeschlagener MCP-Aufruf wird im Chat als fehlgeschlagen markiert; wiederholen oder die Logs prüfen; keine Timeout-Einstellung beschrieben.
- Stripe, Idempotent requests Wie ein Idempotenz-Schlüssel funktioniert: Das erste Ergebnis wird gespeichert und erneut zurückgegeben; Schlüssel bleiben mindestens 24 Stunden; andere Parameter werden abgewiesen.
- Stripe, Advanced error handling Nach einem Verbindungsabbruch wissen Sie vielleicht nicht, ob die Anfrage lief; ein Serverfehler ist ein unbekanntes Ergebnis; kein neuer Schlüssel, bevor das Ergebnis bekannt ist.
- IETF, RFC 9110: HTTP Semantics Idempotente Methoden (sichere Methoden, PUT und DELETE), und keine Wiederholung einer nicht idempotenten Anfrage, außer Sie können erkennen, dass die erste nie angewendet wurde.
- Delta MCP, Writing a task Was Delta MCP tut, wenn eine Änderung keine Antwort bekommt: gemacht, nicht gemacht oder Ergebnis unbekannt; ein Versand wird nicht von allein erneut gesendet.
- Delta MCP, Activity and Undo Jede Aufgabe, die etwas geändert hat, wird in Activity aufbewahrt, mit jeder Änderung davor und danach.
Weiterlesen
- KI-Änderungen rückgängig machen: Notion, GitHub, DateienKI-Änderungen rückgängig machen: Sehen Sie, was Ihre KI in Notion, GitHub oder Dateien geändert hat, und erfahren Sie, was sich nie zurücknehmen lässt.
- MCP vs. CLI für KI-Agenten: Woher die Token-Kosten kommenMCP oder CLI für Ihren KI-Agenten? Was jedes in Tokens kostet, was die Messungen zeigen, wann eine CLI gewinnt, wann MCP, und wo Code beide schlägt.