PRODUCTION SCENARIO
An MCP weather tool calls an upstream API that returns a rate-limit failure. The server author is choosing between raising a JSON-RPC error and returning a result.
How should the failure be reported?
Answering here is anonymous. Nothing is saved unless you sign in.
Show answer and explanation
Answer: As a tool result with isError true and the failure text in content
Protocol errors cover unknown tools and malformed requests, while a failure inside a working tool such as an upstream rate limit is reported in the result with isError set to true, and clients pass that to the model so it can self-correct. A JSON-RPC error hides the failure from the model, and leaving isError false hides it from the client.