What's the difference between tool calling and MCP?
Tool calling is the model choosing a function and filling in its arguments; MCP is a protocol that decides where that function’s definition and execution actually live, hosted on a separate server rather than baked into your own application code. An MCP server advertises what it offers over a standard request and executes the call when asked, so the same server can serve tools to any MCP-aware client without custom integration code per client.
From the model’s side, nothing changes: it still emits the same structured call naming a tool and its arguments, whether that tool is a local function or one an MCP server exposes. What MCP adds is a layer the model never sees and that still has to work correctly: a cached tool list that goes stale when a server changes its schema, a timeout for a server that never answers, and a protocol-level error path that’s separate from the tool simply failing. Tool calling is what the model does; MCP is one way of supplying and running the tools it calls.