Mastra führt MCP Tasks für Tool-Aufrufe im Hintergrund ein

Mastra hat MCP Tasks eingeführt. Damit lassen sich lang laufende Tool-Aufrufe über MCPServer und MCPClient im Hintergrund ausführen. Agenten können Nutzern weiter antworten, während langsame oder rechenintensive Vorgänge laufen, und erhalten das Ergebnis, sobald die Aufgabe abgeschlossen ist.
- MCP Tasks führen lang laufende Tool-Aufrufe im Hintergrund aus.
- MCP-Clients fragen Server mithilfe einer Aufgaben-ID und eines Status ab.
- Agenten können weiter antworten, während Aufgaben ausgeführt werden.
- Aufgaben können mit suspend() auf menschliche Eingaben warten.
- Die API ist experimentell und kann sich ändern.
Von blockierten Tool-Aufrufen zu Hintergrundaufgaben
Vor MCP Tasks waren MCP-Tool-Aufrufe synchron. Jeder Aufruf nutzte eine einzelne HTTP-Anfrage, die offen blieb, bis der Vorgang abgeschlossen war. Dadurch wurde die Agentenschleife blockiert und der Agent konnte nicht auf neue Nutzeranfragen reagieren.
Mit dem neuen Ansatz kann ein MCP-Server schnell eine Aufgaben-ID zurückgeben. Damit ist die HTTP-Anfrage abgeschlossen und die Agentenschleife wieder frei, während der MCP-Client den Server auf Aktualisierungen prüft. Der Client erhält einen Aufgabenstatus: working, input_required, completed, failed oder cancelled.
Mastra zufolge behebt das Design zudem eine Einschränkung der bisherigen Funktion für Hintergrundaufgaben. Ein Tool-Aufruf konnte letztlich fehlschlagen, wenn er länger als das Proxy-Timeout oder das Leerlauf-Limit eines Load Balancers dauerte. MCP Tasks trennen die anfängliche Anfrage von der länger laufenden Verarbeitung.
Agenten erhalten Ergebnisse nach Abschluss der Verarbeitung
Wenn eine Aufgabe abgeschlossen ist, sendet Mastra dem Agenten ein Benachrichtigungssignal. Das Signal erreicht einen aktiven Lauf bei dessen nächster Modellanfrage, statt darauf zu warten, dass die Agentenschleife endet. Das Beispiel in Mastras Ankündigung zeigt einen Agenten, der Fragen beantwortet, während ein 30-Tage-Repository-Bericht als MCP-Aufgabe erstellt wird, und den fertigen Bericht anschließend als Dashboard anzeigt.
Aufgaben können auch auf menschliche Eingaben warten. Tools, die als Aufgaben ausgeführt werden, können suspend() verwenden. Dadurch wechselt die Aufgabe in den Status input_required, bis der Client antwortet. Das unterstützt Abläufe, bei denen eine Person eine Aktion genehmigen muss, bevor das Tool fortfährt.
MCP Tasks bauen auf Mastras Unterstützung für MCP 2.0 auf und folgen den MCP-Ereignissen als Erweiterung der MCP-Server- und Client-Grundfunktionen des Frameworks. In der Ankündigung wird die Funktion als MCP Tasks extension, SEP-2663, bezeichnet.
Konfiguration und Verfügbarkeit
Mastra zufolge können Entwickler die neuesten Pakete mit npm install @mastra/mcp@latest @mastra/core@latest installieren. Die Funktion erfordert @mastra/[email protected] und @mastra/[email protected] oder höher und wurde in PR #28420 hinzugefügt.
Hintergrundaufgaben müssen auf der Mastra-Instanz aktiviert werden. Auf einem MCP-Server können Tools so konfiguriert werden, dass sie always, auto oder off als Aufgaben ausgeführt werden. Die Option auto verwendet standardmäßig ein zweisekündiges syncWindowMs und wechselt zu einer Aufgabe, wenn ein Aufruf länger dauert. Off ist die Standardeinstellung.
Auf dem Client aktivieren Entwickler Aufgaben, damit dieser den Server abfragen kann. Außerdem können sie inputRequests für Tools konfigurieren, die menschliche Eingaben erfordern. Mastra weist darauf hin, dass MCP Tasks noch experimentell sind und sich die API zwischen Releases ändern kann.
Mastra: Introducing MCP Tasks in Mastra | Mastra Blog


