What is MCP, and how is it different from tool calling?
Suggested answer
The interviewer wants to know whether you can tell the mechanism by which a model asks for a tool to be run apart from the way tools are packaged and shared between applications.
Tool calling is a capability of the model: you describe the tools (name, description, input schema) in the request you send, and the model returns a block saying which tool it wants to call and with what input. Your own application is the one that runs the tool and sends the result back. The model doesn't run anything itself.
MCP (Model Context Protocol) is an open standard for AI applications to connect to outside tools and data. A tool is written once in an MCP server, and any application with an MCP client can list and call it. The two are not mutually exclusive: the application gets the list of tools from the MCP server, converts it to the format the model's API accepts (tool calling), and then when the model asks for a tool, forwards the call to the server. In short: tool calling is how the model asks for a tool to be run, and MCP is how tools are packaged so that many applications can use them.
When MCP is worth it: when one set of tools serves more than one application, or when you want to use someone else's existing server. If you have a single application and the tools rarely change, an ordinary function in the same code is simpler, because MCP adds a process and a protocol layer.
On safety, the MCP specification recommends that there should always be a human who can deny a tool call, and that hints such as readOnlyHint should be treated as untrustworthy unless the server is trusted. The server still has to check input and permissions itself, because the input is written by the model.
Bonus points: mention that with stdio, stdout is reserved for the protocol so logs must go to stderr, and that you should tell protocol errors apart from errors while running a tool (returned as a result with isError).