What is the primary purpose of the MCP client?	To provide a means of communication and serve as the access point to all tools implemented by the MCP server.
What does the term "transport agnostic" mean regarding MCP?	It means the client and server can communicate over a variety of different protocols (e.g., standard I/O, HTTP, WebSockets).
Which message is sent from the client to the server to request a list of available tools?	The list tools request.
What message does the server send back to the client after receiving a tool listing request?	The list tools result.
Which message type is used to ask the server to run a specific tool with arguments?	The call tool request.
What message contains the outcome or data from a successfully run tool?	The call tool result.
In the typical workflow, what is the server's first action after receiving a user query?	It asks the MCP client to get a list of tools.
Who is responsible for actually executing the tool when the MCP server requests it?	The MCP server (which makes the follow-up request to the external provider, like GitHub).
After the MCP server returns the tool result to the client, how does the server deliver this data to the LLM (e.g., Claude)?	It parks the tool result inside a user message.
What is the final step in the workflow once the LLM has formulated its response?	The server sends the final text response back to the user.
