A client is about to use a server for the first time and wants to follow the normal sequence for working with its primitives. In what order does a client usually use the main method families?
Select an answer to reveal the explanation.
Short Explanation
You check the menu before you order. A client discovers what's on offer with the list methods, pulls the content it needs with get or read, and only then runs tools. Calling a tool you haven't discovered is like ordering a dish you guessed exists.
Full Explanation
Each primitive type has associated methods for discovery, retrieval and, for tools, execution. A client uses tools/list, prompts/list and resources/list to learn which primitives exist, together with their names, URIs, descriptions and schemas. It then retrieves content with prompts/get for a prompt template or resources/read for a resource's contents, and executes actions with tools/call using a name and arguments that match the discovered definition. This order lets the client present choices to users, give the model accurate tool schemas and avoid sending calls that the server cannot satisfy. Calling a tool before listing it skips discovery; the client would have to guess the name and argument schema, and an unknown tool produces a protocol error. Reading every resource before anything else ignores that resources are application-controlled context chosen for relevance, not bulk-fetched, and it leaves listing until too late. Starting with prompts/get presumes the client already knows a prompt's name, which it learns only from prompts/list. Exam caveat: server/discover may precede everything to learn versions and capabilities, and a client can skip it, but discovery of individual primitives still comes from the list methods. Operational check: trace a first session and confirm list requests precede any get, read or call requests for the same primitive type.