Fehler
MCP-Clients können drei Arten von Fehlern erhalten. Sie erscheinen an unterschiedlichen Stellen und müssen jeweils dort behandelt werden.
HTTP-Fehler
Die Anfrage erreicht das Tool nicht. Der Body enthält einen JSON-RPC-Fehler mit dem Code -32000.
| Status | Ursache | Behebung |
|---|---|---|
401 | Kein Token oder ein ungültiges bzw. abgelaufenes Token | Folgen Sie der WWW-Authenticate-Challenge; siehe Autorisierung |
405 | GET oder DELETE am Endpunkt | Senden Sie POST. Der Endpunkt bietet weder einen SSE-Stream noch Sitzungen |
429 | Ein Kontingentlimit wurde überschritten | Warten Sie Retry-After Sekunden; siehe Kontingente |
Tool-Fehler
Das Tool ist bei der Ausführung fehlgeschlagen oder wurde schon vor der Ausführung abgewiesen. In beiden Fällen ist die Antwort eine reguläre 200-Antwort mit einem tools/call-Ergebnis, das isError: true und die Ursache als Text enthält. Fehler, die das MCP SDK vor der Ausführung des Tool-Codes auslöst – etwa Argumente, die nicht zum Eingabeschema passen, oder ein unbekannter Tool-Name –, werden auf dieselbe Weise übermittelt. Ihr Text beginnt mit MCP error -32602:. Es handelt sich weiterhin um Tool-Ergebnisse, nicht um JSON-RPC-error-Objekte. Ein Client muss daher result.isError prüfen und nicht error.code.
Ein Fehler aus dem Tool selbst, bei check_availability mit { "domains": ["!!!"] }:
{
"result": {
"content": [{ "type": "text", "text": "Invalid domain format" }],
"isError": true
},
"jsonrpc": "2.0",
"id": 4
}
Ein Fehler bei der Eingabevalidierung, bei compare_prices mit { "domain": "kettlory" }:
{
"result": {
"content": [
{
"type": "text",
"text": "MCP error -32602: Input validation error: Invalid arguments for tool compare_prices: A full domain name is required at domain"
}
],
"isError": true
},
"jsonrpc": "2.0",
"id": 1
}
| Meldung | Ursache |
|---|---|
MCP error -32602: Input validation error: Invalid arguments for tool <name>: … | Die Argumente entsprechen nicht dem Eingabeschema des Tools: ein fehlendes Feld, ein Wert außerhalb des zulässigen Bereichs oder eine Domain ohne Punkt. Der Text endet mit dem Feldnamen, zum Beispiel Too big: expected array to have <=20 items at domains |
Invalid domain format | Nach dem Entfernen unzulässiger Zeichen bleibt nichts von der Eingabe übrig, oder der Name hat eine TLD, die NameBeta nicht kennt. Andere unzulässige Zeichen werden ohne Fehlermeldung entfernt; siehe check_availability |
MCP error -32602: Tool <name> not found | Der Tool-Name ist falsch geschrieben oder existiert nicht |
| Andere Meldungen | Die zugrunde liegende Abfrage ist fehlgeschlagen, etwa weil ein WHOIS- oder DNS-Server nicht geantwortet hat. Ein späterer Versuch kann erfolgreich sein |
Die Seite jedes Tools führt die dafür spezifischen Fehler auf. Ob ein fehlgeschlagener Aufruf trotzdem Ihr Kontingent verbraucht, erfahren Sie unter So werden Aufrufe gezählt.
Fehlerhafte Anfragen
Eine Anfrage, die der MCP-Transport nicht akzeptieren kann, wird mit einem 4xx-Status abgelehnt, bevor ein Tool ausgeführt wird. Beispiele sind 406, wenn der Accept-Header nicht sowohl application/json als auch text/event-stream enthält, oder ein JSON-RPC-Parsefehler (-32700), wenn der Body kein gültiges JSON-RPC enthält. JSON-RPC-Batch-Anfragen (Arrays) werden mit 400 und dem JSON-RPC-Fehler -32600 abgelehnt, da die MCP-Spezifikation seit der Fassung vom 18. Juni 2025 keine Batch-Anfragen mehr unterstützt. Senden Sie eine Anfrage pro POST. Korrigieren Sie die Anfrage, statt sie unverändert zu wiederholen. Endpunkt und Transport beschreibt, welche Anfragen der Endpunkt akzeptiert.