A client sends tools/call naming search_tickets_v3, but the server's current tools/list only contains search_tickets_v2. The request is otherwise well formed. What response should a compliant 2026-07-28 server return?
Select an answer to reveal the explanation.
Short Explanation
The method tools/call exists just fine — it's the name inside the params that's bogus. So you get -32602, invalid params. The trap is -32601, which would mean the server doesn't understand tools/call at all.
Full Explanation
An unknown tool is one of the cases the tools specification classifies as a protocol error, returned as a standard JSON-RPC error rather than a tool result, and its example uses code -32602, Invalid params, with a message naming the unknown tool. The logic follows JSON-RPC semantics: the method tools/call is implemented, but the name parameter does not identify anything the server can run. Method not found, -32601, applies when the RPC method itself is not implemented, for example a server receiving a method it does not support; using it here would tell the client that tool calling is unavailable. Returning an isError tool result is reserved for failures during execution of a real tool, such as API errors or invalid argument values; there is no tool to execute here. Code -32002 was the resource-not-found code in revisions up to 2025-11-25, is reserved and must not be emitted by implementations of this revision, and never applied to tools anyway. Exam caveat: the cache rules let a client re-fetch tools/list early after an unexpected invalid-params error, because the tool list has probably changed. Operational check: send tools/call with a bogus name and confirm the response contains an error object with code -32602 and no result field.