Laut dem am 24. Oktober von @ClaudeDevs veröffentlichtenHauptpostunterstützt Claude Code jetzt MCP Tasks: Ein MCP-Server kann einen sehr langen Tool-Aufruf in eine „Aufgabe“ verwandeln und selbst auf dem Server ausführen, während Claude nach Erhalt der Task-ID mit anderem weitermacht.Ein Folgepoststellt Elicitations vor, also ein Popup, das mitten in der Aufgabe nach Ihrer Eingabe fragt; ein weitererFolgepostbestätigt, dass die CLI bereits verfügbar ist.
Vorab das Fazit:
- MCP Tasks befinden sich derzeit in der öffentlichen Beta, im offiziellen Wortlaut: MCP tasks are in public beta in the Claude Code CLI and require Claude Code v2.1.304 or later.
- Damit ein Aufruf zum MCP Task wird, müssen mehrere Bedingungen gleichzeitig erfüllt sein: Der Server unterstützt Tasks, die Verbindung läuft über das Protokoll 2026-07-28, die Sitzung kann Feature Flags abrufen und der Aufruf stammt aus der Hauptkonversation.
- Wir haben das mit dem API Key dieser Seite unter Claude Code v2.1.309 getestet: Das Protokoll wird auf 2026-07-28 ausgehandelt, MCP-Aufrufe, die länger als 2 Minuten dauern, wandern automatisch in den Hintergrund und lassen sich in /tasks samt Fortschritt ansehen, und die Elicitation-Rückfrage mitten in der Aufgabe funktioniert. Der serverseitige MCP Task selbst wurde jedoch nicht aktiviert. Der Grund hängt mit den Feature Flags zusammen und wird weiter unten erläutert.
- Unser älteres Tutorial verlangt nicht, dass Sie DISABLE_TELEMETRY oder CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC setzen. Im Test war das Verhalten mit und ohne diese Variablen identisch.
Welches Problem sie lösen
Bisher blockierte ein lang laufender MCP-Tool-Aufruf, etwa ein Report-Export oder ein Build, Claude komplett: Es konnte nur warten. Die offizielle Dokumentation definiert einen MCP Task so:
An MCP task is a long job, such as a report export or a build, that an MCP server runs itself using the MCP tasks extension. Claude's tool call returns once the server accepts the job, so Claude keeps working unless you make Claude wait.
Anders gesagt: Sobald der Server den Auftrag annimmt, kehrt der Tool-Aufruf zurück und Claude arbeitet weiter. Ist die Aufgabe fertig, erscheint im Gespräch eine Zeile und Claude erhält das Ergebnis. In der Statusleiste unten wird ein Zähler wie 1 MCP task angezeigt. Aufgaben auf Remote-Servern laufen weiter, auch wenn Sie Claude Code beenden. Stellen Sie dieselbe Sitzung später wieder her, können Sie sie weiterverfolgen.
Elicitations lösen ein anderes Problem: Muss mitten in der Aufgabe jemand entscheiden, etwa „Jetzt auf Staging deployen?“, kann der Server Ihnen ein Formular anzeigen, statt nur fehlzuschlagen oder zu raten.
Nicht dasselbe wie „nach 2 Minuten automatisch in den Hintergrund“
Das lässt sich leicht verwechseln. Claude Code kennt noch einen älteren Mechanismus: Läuft ein normaler MCP-Aufruf in der Hauptkonversation länger als zwei Minuten, wird er automatisch in den Hintergrund verschoben und blockiert die Sitzung nicht mehr. Der Originaltext der Doku:
An MCP tool call in the main conversation that is still running after two minutes moves to a background task instead of blocking the session.
Die Unterschiede:
| Normaler Aufruf, automatisch im Hintergrund | MCP Task (serverseitige Aufgabe) | |
|---|---|---|
| Wer führt aus | Weiterhin derselbe Tool-Aufruf, Claude Code wartet im Hintergrund darauf | Der MCP-Server führt selbst aus, Claude Code fragt den Status in Intervallen ab |
| Wann es in den Hintergrund geht | Nach 2 vollen Minuten | Sobald der Server den Auftrag annimmt |
| Nach dem Beenden von Claude Code | Originaltext der Doku: it doesn't survive exiting the session | Die Aufgabe läuft auf dem Remote-Server weiter, mit claude --resume holen Sie das Ergebnis ab |
| Details in /tasks | Ohne den Hinweis runs on the server | Zeigt runs on the server; survives exiting this session |
| Erforderliche Voraussetzungen | Keine besonderen Anforderungen | Version, Protokoll, Feature Flags, Serverunterstützung usw., siehe nächster Abschnitt |
Die Doku nennt auch ein Prüfkriterium: Zeigt die Detailansicht eines Hintergrundaufrufs in /tasks runs on the server; survives exiting this sessionan, handelt es sich um einen serverseitigen MCP Task.
Version und Voraussetzungen
Der Abschnitt „What a call needs to become an MCP task“ der offiziellen Doku listet alle Bedingungen auf. Ein Tool-Aufruf muss sie gleichzeitig erfüllen, um zum MCP Task zu werden:
- Der Server unterstützt Tasks.
- Der Server ist HTTP, stdio oder ein claude.ai-Connector und über das Protokoll 2026-07-28 verbunden. Originaltext: Setting
MCP_SDK_GENERATION=v1orMCP_PROTOCOL_NEGOTIATION=legacyrules that out. - Die Sitzung ruft Feature Flags ab. Originaltext: so not on a third-party provider such as Amazon Bedrock, and not with telemetry or flag fetching turned off.
- Anthropic hat MCP Tasks für Ihre Art von Sitzung aktiviert. Ab v2.1.304 gilt das für die Terminal-CLI, das Agent SDK und GitHub Actions. Originaltext: Other surfaces, such as the VS Code extension and the desktop app, don't have MCP tasks.
- Der Aufruf stammt aus der Hauptkonversation, nicht von einem Sub-Agent.
- Die Sitzung ist interaktiv, oder es handelt sich um das Agent SDK, das aus
--input-format stream-jsonden Eintragclaude -pliest, undCLAUDE_AUTO_BACKGROUND_TASKSist 1,CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUNDist nicht 1,CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSist nicht 0.
Beachten Sie die letzte Bedingung: Ein normaler einmaliger claude -p "..." erhält keine MCP-Tasks, im Original heißt es: A one-shot claude -p "" run doesn't get MCP tasks.
Prüfen Sie zuerst die Version:
claude --version
# 低于 2.1.304 就先升级
claude update
So aktivieren und nutzen Sie es
1. Einen MCP-Server anbinden, der Tasks unterstützt
Das Hinzufügen funktioniert wie bei einem normalen MCP-Server, es gibt keinen zusätzlichen Schalter:
# 远程 HTTP 服务器
claude mcp add --transport http my-server https://mcp.example.com/mcp
# 本地 stdio 服务器
claude mcp add --transport stdio my-server -- python3 /path/to/server.py
Der Server muss die MCP-Tasks-Erweiterung implementieren. Laut Dokumentation sendet Claude Code bei einer Verbindung mit 2026-07-28 in jeder Anfrage im Feld params._meta["io.modelcontextprotocol/clientCapabilities"] mit extensions , darunter "io.modelcontextprotocol/tasks": {}; bei tools/call , die nicht zur Task werden können, fehlt diese Erweiterung. Nur wenn der Server sie sieht, darf er mit "resultType": "task" antworten. Antwortet er trotzdem mit einer Task, obwohl er sie nicht gesehen hat, erhält Claude Unsupported result type 'task' for tools/call.
Wenn Sie noch keinen MCP-Server angebunden haben, werfen Sie zuerst einen Blick auf die Codex-Seite:MCP-Konfigurationsanleitung, um zu verstehen, wie Sie Server hinzufügen, entfernen und abfragen, oder aufClaude Code steuert Unreal Engineals vollständiges Beispiel für eine MCP-Anbindung.
2. Fortschritt mit /tasks ansehen, mit x stoppen
Sobald die Task läuft, geben Sie /tasks ein, um die Liste zu öffnen. So steht es zum Stoppen im Original:
To stop a running task, select it in /tasks and press x, or ask Claude to.
Ein paar Details:
- Ein Druck auf
Escstoppt keine Hintergrund-Tasks. - Nach dem Stoppen bittet Claude Code den Server um Abbruch, der Server kann aber trotzdem bis zum Ende weiterlaufen.
- Wurde die Verbindung zum Server getrennt, verbinden Sie sich zuerst in
/mcpneu. Sonst kann die Abbruchanfrage nicht gesendet werden, und Claude Code verfolgt diese Task nicht mehr.
Wenn eine Task endet, erscheint im Gespräch eine Zeile wie diese:
MCP task <server task id> (<server>/<tool>) completed.
Das Ergebnis geht an Claude und wird nicht direkt im Gespräch ausgegeben. Wenn Sie es sehen möchten, fragen Sie Claude. Erhält Claude das Ergebnis im Leerlauf, verarbeitet es von selbst weiter.
3. Nach dem Beenden mit claude --resume das Ergebnis abholen
Tasks auf Remote-Servern laufen nach dem Beenden weiter. Stellen Sie bei der Rückkehr die Sitzung wieder her, in der die Task lag:
claude --resume
Voraussetzung ist, dass Servername und Verbindungseinstellungen unverändert bleiben. In einer neuen Sitzung oder mit --fork-session folgt Claude Code der ursprünglichen Task nicht; auch in einem einmaligen claude -p folgt es --resume ebenfalls nicht. Außerdem wird der Prozess eines stdio-Servers beendet, wenn Claude Code beendet wird. /tasks zeigt zwar trotzdem survives exiting this session an, doch die Dokumentation empfiehlt: Sofern die Serverdokumentation nicht ausdrücklich zusichert, dass die Arbeit den Prozess überlebt, lassen Sie die Task zuerst fertig laufen oder stoppen Sie sie, bevor Sie beenden.
4. Claude auf das Ergebnis warten lassen
Standardmäßig wartet Claude nicht. Damit es wartet, setzen Sie in settings.json unter env eine der beiden Optionen:
CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSauf0: Claude wartet auf jeden MCP-Aufruf und schaltet damit auch das automatische Verschieben normaler Aufrufe in den Hintergrund nach 2 Minuten ab.CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUNDauf1: Claude wartet auf das Task-Ergebnis, aber das automatische Verschieben normaler Aufrufe in den Hintergrund bleibt aktiv. Aufrufe über 2 Minuten wandern also weiterhin in den Hintergrund, allerdings als normaler Hintergrundaufruf und nicht als MCP-Task, und beim Beenden ist er weg.
{
"env": {
"CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS": "0"
}
}
Wenn Sie nur CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1 setzen oder den Bare-Modus verwenden, wartet Claude nicht auf MCP-Tasks.
5. Elicitation: Die Task braucht mittendrin Ihre Bestätigung
Während einer laufenden Task kann ein Elicitation-Dialog erscheinen. Zwei Punkte sind zu beachten:
/tasksgeöffnet ist, bleibt der Dialog verborgen. Schließen Sie zuerst/tasks, bevor Sie antworten können.- Auch Decline oder Esc gilt als Antwort. Der Server entscheidet selbst, ob die Task weiterläuft.
In nicht interaktiven Sitzungen wird eine Task abgebrochen, sobald sie eine Eingabe verlangt. Im Original heißt es: In a non-interactive session, Claude Code asks the server to cancel a task that requests input, without running your Elicitation hooks or calling the Agent SDK's onElicitation callback.
Was Sie bei Drittanbieter-APIs beachten sollten
Wir sind nach derAnleitung zur Claude-Code-Konfiguration mit Drittanbieter-APIvorgegangen und haben in der globalen ~/.claude/settings.json den Key dieser Seite hinterlegt (ANTHROPIC_BASE_URL ohne /v1):
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
"ANTHROPIC_AUTH_TOKEN": "你的 API Key"
}
}
Anschließend haben wir mit Claude Code v2.1.309 einen selbst geschriebenen, minimalen stdio-MCP-Server angebunden. Er implementiert die Tasks-Erweiterung und stellt zwei Tools bereit: einen langsamen Build und ein Deployment, das mittendrin eine Bestätigung braucht. Hier die Testergebnisse.
Test 1: Protokoll und MCP-Task
- Die Verbindung funktioniert, das Debug-Log verzeichnet
negotiatedProtocolVersion":"2026-07-28", das neue Protokoll kommt also zum Einsatz. - Das Debug-Log verzeichnet außerdem
mcp runtime arm: v2 (source: default). Laut Dokumentation verwenden Sitzungen, die keine Feature-Flags abgerufen haben, standardmäßig die v2-Runtime; die source dieser Zeile ist default, nicht flags. - In dem vom Server empfangenen
tools/callenthältclientCapabilitiesnur roots und elicitation, aber keinio.modelcontextprotocol/tasks. Der Server kann daher keine Task zurückgeben, der Aufruf wird als normaler MCP-Aufruf ausgeführt.
Fazit: Mit dem Key dieser Seite war die serverseitige MCP-Task in unserem Test nicht aktiviert. Das passt zu der Vorgabe in der Dokumentation, dass die Sitzung Feature-Flags abrufen können muss. Offizieller Beitrag und Dokumentation sprechen noch von einer öffentlichen Beta. Sollte sich der Kreis der freigeschalteten Nutzer ändern, aktualisieren wir diesen Artikel.
Test 2: Normaler langer Aufruf wandert automatisch in den Hintergrund, /tasks
Das langsame Build-Tool lief 150 Sekunden:
- Nach etwa 2 Minuten wurde der Aufruf in den Hintergrund verschoben, Claude meldete, die Task laufe nun im Hintergrund, und unten wurde
1 MCP taskangezeigt. - Wenn Sie
/tasksöffnen, sehen Sie den Fortschritt und die vom Server gemeldeten Fortschrittsmeldungen, unten erscheint der HinweisEsc to go back · x to stop. - Nach 150 Sekunden erschien die Abschlussmeldung, und Claude gab sofort das Ergebnis aus.

claude-code-mcp-tasks-tasks

claude-code-mcp-tasks-done
Achtung: Das ist das automatische Verschieben eines normalen Aufrufs in den Hintergrund. /tasks kennzeichnet ihn zwar auch als MCP-Task, in den Details fehlt aber der Hinweis runs on the server, und beim Beenden der Sitzung ist er weg. Lassen Sie lange Tasks vor dem Beenden zu Ende laufen oder passen Sie den Schwellenwert mit CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS an.
Test 3: Elicitation, Bestätigung mittendrin
Beim Aufruf des Deploy-Tools gab der Server unter dem Protokoll 2026-07-28 ein Ergebnis zurück, das eine Eingabe verlangt, und Claude Code zeigte ein Formular:

claude-code-mcp-tasks-elicitation
Nachdem wir die Bestätigung angehakt und Accept gewählt hatten, erhielt der Server confirm: true, und das Tool lieferte sein Ergebnis. Von der Frage bis zum Ergebnis vergingen etwa 7 Sekunden. Eine Bestätigung mittendrin bei einem normalen MCP-Aufruf funktioniert also auch mit einem Drittanbieter-Key.
Telemetrie-Variablen: Was sinnvoll ist
Manche Leser setzen eine der folgenden beiden Variablen, um weniger Anfragen zu senden:
export DISABLE_TELEMETRY=1
# 或
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
Wir haben den Test mit jeder der beiden Variablen wiederholt: Die Runtime war ebenfalls v2 (source: default), der Server erhielt ebenfalls keine Tasks-Erweiterung, und der Elicitation-Dialog funktionierte wie gewohnt. Für Nutzer mit Drittanbieter-Key macht es beim MCP-Teil also keinen Unterschied, ob Sie die Variablen setzen.
Empfehlung:
- Mit offiziellem Konto und serverseitigen MCP-Tasks: Schalten Sie laut Dokumentation weder Telemetrie noch den Flag-Abruf ab.
- Mit Drittanbieter-API-Key: Die beiden Variablen beeinflussen die hier getesteten Funktionen nicht, entscheiden Sie nach Ihren Datenschutz- und Netzwerkanforderungen. Unsere Claude-Code-Anleitung verlangt ohnehin nicht, sie zu setzen.
- Setzen Sie aus „Kompatibilitätsgründen“ nicht
MCP_SDK_GENERATION=v1oderMCP_PROTOCOL_NEGOTIATION=legacy, das schließt MCP-Tasks direkt aus.
Wenn Sie eher Langsamkeit und Hänger als Probleme mit Tasks beobachten, hilftClaude Code reagiert langsam: Fehlersuche.
Häufige Status- und Fehlermeldungen
Die folgenden Meldungen erscheinen in /tasks-Einträgen oder in der Abschlusszeile einer Task, ihre Bedeutung stammt aus der Statustabelle der offiziellen Dokumentation. Während eine Meldung angezeigt wird, kann die Task weiterlaufen, Claude Code fragt den Status weiter ab.
| Meldung | Bedeutung | Was tun |
|---|---|---|
| reconnecting… | Nach der Wiederherstellung hat der Server noch nicht geantwortet, oder die Statusabfrage blieb ohne Antwort | Verschwindet die Meldung nicht, verbinden Sie sich in /mcp neu |
| needs a sign-in to … | Der Server hat die Statusabfrage abgelehnt | In /mcp anmelden |
| status requests come back with errors; retrying… | Der Server oder ein vorgeschalteter Proxy gibt einen Fehler zurück | Warten, bis Claude Code es erneut versucht |
| server '…' did not reconnect within 300s | Innerhalb von 5 Minuten gab es keine erfolgreiche Abfrage | In /mcp neu verbinden |
| server '…' is not configured in this session; the task may still be running on it | In der Sitzung gibt es keinen Server mit diesem Namen | Server unter dem ursprünglichen Namen wiederherstellen, dann die Sitzung wiederherstellen |
| server '…' was reconfigured to a different transport since this task was created am Anfang der Meldung | URL, Befehl, Argumente, Umgebungsvariablen, Header oder Timeout des Servers wurden geändert | Ursprüngliche Einstellungen wiederherstellen, dann die Sitzung wiederherstellen |
| the server rejected this task's id; asking again… | Der Server meldet, dass er diese Task-ID nicht kennt; Claude Code fragt noch bis zu 5 Minuten lang nach | Warten |
| Eine Zeile, die mit outcome unknown. endet | Claude Code verfolgt die Aufgabe nicht mehr | Klären Sie zuerst beim Server, was er getan hat, und entscheiden Sie dann, ob Sie den Aufruf erneut ausführen. So vermeiden Sie doppelte Ausführungen |
Zwei typische Tool-Fehler auf Serverseite, im Wortlaut der Dokumentation:
- Der Client sendet die tasks-Erweiterung nicht mit, der Server antwortet aber mit task:
Unsupported result type 'task' for tools/call. - Ungültige Task-ID (maximal 128 druckbare ASCII-Zeichen, keine Leerzeichen): Die Fehlermeldung beginnt mit
MCP serverund enthältreturned a malformed task handle for tool.
Häufige Fragen
Welche Version braucht Claude Code MCP Tasks?
v2.1.304 oder höher; derzeit ist das Feature in der CLI als Beta verfügbar. Auch das Agent SDK und GitHub Actions werden unterstützt, die VS Code Extension und die Desktop-App bislang nicht.
Funktionieren MCP Tasks mit einem API Key von Drittanbietern?
Beim Test mit dem Key dieser Seite unter v2.1.309 war MCP Task auf der Serverseite nicht aktiviert, und der Client hat die tasks-Erweiterung gegenüber dem Server nicht angekündigt. Der automatische Wechsel in den Hintergrund nach über 2 Minuten, Anzeigen und Stoppen über /tasks sowie Elicitation-Bestätigungen mitten im Lauf funktionieren dagegen normal.
Funktioniert es auch mit gesetztem DISABLE_TELEMETRY?
Laut Dokumentation gibt es in Sitzungen mit deaktivierter Telemetrie oder deaktiviertem Flag-Abruf keine MCP Tasks. Mit einem Drittanbieter-Key verhielt es sich in unserem Test mit und ohne diese Einstellung gleich, Elicitation blieb nutzbar.
Werden Aufrufe in Subagenten und in claude -p zu Tasks?
Aufrufe, die ein Subagent startet, werden es nicht. Ein einmaliger claude -p "" ebenfalls nicht; beim Agent SDK oder bei einem --input-format stream-json , der claude -p liest, ist es nur möglich, wenn Bedingungen wie CLAUDE_AUTO_BACKGROUND_TASKS=1 erfüllt sind und die Eingabe offen bleibt.
Bleibt der Task nach dem Beenden von Claude Code erhalten?
Der MCP Task auf dem Remote-Server bleibt bestehen. Mit claude --resume setzen Sie dieselbe Sitzung fort und holen das Ergebnis ab; Servername und Verbindungseinstellungen dürfen sich dabei nicht ändern. Das automatische Hintergrundlaufen normaler Aufrufe endet mit dem Beenden. Prozesse von stdio-Servern werden beim Beenden gestoppt.
Wie sorge ich dafür, dass Claude auf das Task-Ergebnis wartet, bevor es weitermacht?
Setzen Sie CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS=0(wartet auf alle MCP-Aufrufe) oder CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND=1(wartet auf Task-Ergebnisse; Aufrufe über 2 Minuten werden dennoch zu normalen Hintergrundaufrufen).
Was tun, wenn das Elicitation-Dialogfeld nicht erscheint?
Prüfen Sie zuerst, dass /tasksnicht aktiv ist; solange es offen ist, bleibt der Dialog verborgen. In nicht-interaktiven Sitzungen wird ein Task, der eine Eingabe verlangt, direkt abgebrochen.



