A component exposes tools, resources and prompts. Whenever it needs input from the user, it never sends its own JSON-RPC request; instead it embeds the need inside its reply to the client's request. Which participant is this?
Select an answer to reveal the explanation.
Short Explanation
Tools, resources and prompts on offer? You're looking at the server. And in this revision servers don't knock on the client's door with their own requests; they tuck the ask into a reply. That's the key tell.
Full Explanation
Servers provide specialized context and capabilities: they expose resources, tools and prompts through MCP primitives, operate independently with focused responsibilities, and request client input such as elicitation through an InputRequiredResult within a reply. The 2026-07-28 revision made this a breaking change: servers no longer send server-initiated JSON-RPC requests like elicitation/create on their own, and instead return input requests that the client fulfils before retrying the original call. The client is the component that sends requests, attaches per-request metadata and routes messages; it consumes primitives rather than exposing them. The host creates and manages clients and enforces consent, but it does not publish tools, resources or prompts over the protocol. The language model decides which tools to use based on the definitions the host provides, yet it neither exposes primitives nor participates directly in JSON-RPC exchanges. Exam caveat: only tools/call, resources/read and prompts/get may return an InputRequiredResult, and servers must not include input requests for capabilities the client did not declare. Operational check: confirm the component answers tools/list, resources/list and prompts/list, and confirm that its requests for user input appear only as InputRequiredResult replies, never as standalone requests.