Function calling is the LLM's tool-call vocabulary; MCP is the host to server protocol that delivers tools, resources, and prompts to the LLM in the first place.
Imagine a TV remote and the HDMI cable behind your TV. The remote (function calling) is how you tell the TV which input to switch to. The HDMI cable (MCP) is the standard wire that lets any device, a Blu-ray, a console, a streaming stick, plug into the TV without redesigning the back panel. Function calling is the model saying 'play movie' in a structured shape the host knows how to read. MCP is the standardized port behind the host that lets it talk to any tool server, file server, or prompt server without writing a custom integration per vendor. They live at different layers and play well together.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
The MCP versus function calling question trips up a lot of candidates because both involve tools and both showed up in the same 2024-2025 wave of agent tooling. The trap is treating them as alternatives. They're not. They live at different layers of the agent stack and solve different problems.
Function calling answers the question, 'how does the model tell the host it wants to run a tool?' MCP answers a different question, 'how does the host find out what tools, files, and prompts are available in the first place, especially across multiple vendors?'
This deep dive walks through both layers, shows how they compose in a real stack like Claude Code, and gives you the language to explain the boundary in an interview.
What function calling actually is
Function calling is a contract between the model and the host runtime. The host puts a tool schema into the prompt, typically as JSON Schema describing the function name, arguments, and return shape. The model emits a structured payload like { name: "search_docs", arguments: { query: "vector index" } } when it decides to call that tool. The host parses the payload, runs the underlying function, and feeds the result back into the next turn.
The key insight: function calling is format, not transport. There is no network, no protocol. It's just a convention for how the model serializes intent and how the host deserializes it. OpenAI, Anthropic, Gemini, and Mistral each ship their own slightly different shape, but the idea is identical.
Where it stops short: it says nothing about where the tools come from. Every app shipping function calling in 2023 wrote bespoke wrapper code per integration, the Notion plug-in, the GitHub plug-in, the database plug-in, all hand rolled. That bespoke per app problem is exactly what MCP exists to fix.
Situations where this technique stops working.
2–4 min · Everything important, quickly.
| Concern | Function calling | MCP |
|---|---|---|
| Layer | Model output contract | Host-to-server protocol |
| Defined by | Each model vendor (OpenAI, Anthropic, etc.) | Open spec, vendor-neutral |
| Transport | Inside the prompt and completion | JSON-RPC over stdio or HTTP+SSE |
| Primitives | Tool schemas, tool calls | Tools, resources, prompts |
| Reusable across apps | No, model-specific shape | Yes, one server runs in any host |
Real products, models, and research that use this idea.
- Claude Code ships a built-in MCP client and discovers tools from any registered server at session start.
- Anthropic's MCP server registry exposes filesystem, GitHub, Postgres, and Slack servers as drop-in plug-ins.
What an interviewer would ask next. Try answering before peeking at the approach.
QHow would you handle authentication when an MCP server talks to a private API?
Per-server credentials in the host config; OAuth bearer tokens on the HTTP transport; never let the model see the secret.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Treating MCP and function calling as competing standards. They sit at different layers, the host can speak both at once.
60 second bullets to scan on the way to the call.
Which layer function calling sits at
Which layer MCP sits at
Primary sources. Browse if you want the original framing.
Same topic, related formats. Practice these next.