# 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](/answers/mcp-tool-reliability/what-happens-when-an-mcp-server-changes-its-tool-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.

---

Source: https://tessary.ai/answers/tool-calling/whats-the-difference-between-tool-calling-and-mcp
More on Tool calling: https://tessary.ai/answers/tool-calling
From Tessary, agent reliability for AI agents in production: https://tessary.ai
