A client sends tools/call and receives a result whose resultType is "input_required". What does this indicate?
Select an answer to reveal the explanation.
Short Explanation
input_required is the server telling you it's halfway there and needs something from you first. You gather the input, then retry the original call with your answers attached. Don't mistake it for a finished result or an error.
Full Explanation
Every result in revision 2026-07-28 includes a resultType. A value of complete means the request finished and the result holds the final content. A value of input_required means the request is incomplete and the result is an InputRequiredResult, whose inputRequests describe what the server needs, such as an elicitation, and which may include requestState. This is the multi round-trip requests pattern: the client fulfils the requests, typically by asking the user, and retries the original request with matching inputResponses, any requestState, and a new JSON-RPC id. Only tools/call, resources/read and prompts/get may return this result type. Treating it as a finished tool result is wrong, because no final content has been produced yet. A missing required argument is a different situation: the server reports it either as a protocol error for a malformed request or as a tool execution error with isError true so the model can correct its input. Nothing about input_required asks for server/discover; discovery is unrelated to completing a pending request. Exam caveat: a resultType the client does not recognize must be treated as invalid, while an absent resultType from an older server is treated as complete. Operational check: confirm the client's retry reuses the original params, adds inputResponses, and sends a new id.