Skip to main content
Fouten komen op twee niveaus naar boven. Problemen met authenticatie, origin en rate limits worden vóór MCP afgewezen, als gewone HTTP-responses. Alles wat binnen een toolcall gebeurt, komt terug als een MCP-toolresultaat met isError: true.

Op HTTP-niveau

Deze vallen buiten de MCP-envelop; een MCP-clientbibliotheek verheft ze doorgaans tot transportfouten.

Tool-errors

Een mislukte toolcall is een normale JSON-RPC-success waarvan het resultaat isError: true, één tekstblok en geen structuredContent heeft:
Parse de tekst als JSON om te krijgen: Er wordt niets anders van de onderliggende fout blootgelegd: geen stacktraces, SQL, upstream-responses of interne IDs. Elk verzoek wordt server-side gelogd met de x-request-id die op de HTTP-response wordt geëchood; noem die als je contact opneemt met support.

Codes

Retries

Reads (readOnlyHint: true) zijn veilig om opnieuw te proberen na TIMEOUT, UPSTREAM_UNAVAILABLE of INTERNAL_ERROR, met backoff. Writes liggen anders. create-discount-code en create-payment-link zijn gemarkeerd als idempotentHint: false en hebben geen idempotency key. Een TIMEOUT wordt teruggegeven als de 30-secondenbegroting op is, wat kan gebeuren nadat de rij is gecommit — de code of link bestaat mogelijk al. Voordat je een write opnieuw probeert:
  1. list-discount-codes en zoek naar de code, of list-payment-links gefilterd op filiaal en zoek naar de titel/referentie.
  2. Roep de write alleen opnieuw aan als hij afwezig is.
Herhaal writes nooit automatisch. Daarom is retryable vandaag op elke code false: de server weet niet of jouw write is doorgekomen, dus zegt hij je niet om opnieuw te proberen.

Validatiefouten van je client

Omdat errors geen structuredContent dragen, slaan spec-compliant clients (waaronder de officiële TypeScript SDK) output-schema-validatie op hen over en tonen ze de envelop. Als je client in plaats daarvan een -32602 of “structured content does not match schema”-fout meldt, valideert hij de tekst tegen de outputSchema van de tool; lees het tekstblok direct.