MCP vs function calling
MCP (Model Context Protocol) and function calling are complementary, not competing, technologies. Function calling is the mechanism by which an LLM decides to invoke a specific function. MCP is the protocol that defines how those functions (tools) are discovered, described, and invoked across process boundaries.
Why this subject matters
Confusing MCP with function calling leads to poor architectural decisions. The two technologies solve different problems at different layers of the stack.
Current status
Function calling is a mature capability supported by every major LLM provider. MCP is newer but has been rapidly adopted as the standard for cross-tool connectivity. Most production AI systems use both.
Core concepts
- Function calling (the mechanism)
- The LLM's ability to output a structured function name + parameters instead of free text. The model decides whether to call a function, which function, and what arguments.
- MCP (the protocol)
- A standard for how tools are described, discovered, and invoked across processes. MCP standardises the 'wiring' between models and tools.
- Tool description (the bridge)
- The MCP server provides a tool description (name, description, JSON Schema). The host converts this into the function-calling format the specific LLM expects.
Architecture / Mechanism
Layer 1 — The Model: The LLM receives a prompt and available function definitions. It decides whether to respond with text or a function call.
Layer 2 — The Host: The host application receives the function call from the model and routes it to the correct tool via its MCP client.
Layer 3 — The Server: The MCP server receives the tool call, executes it, and returns the result back up through the host to the model.
Known limitations
- Function-calling formats differ across providers — host code must normalise these differences.
- MCP tool descriptions must be converted to provider-specific formats, which can lose fidelity.
- MCP does not prescribe which function-calling format to use — that is a host implementation detail.
Comparisons
| Aspect | Option A | Option B |
|---|---|---|
| What it is | Function calling: LLM capability (outputs a function call) | MCP: connectivity protocol (connects model to tool) |
| Layer | Function calling: model/inference layer | MCP: transport/integration layer |
| Standardisation | Function calling: provider-specific API format | MCP: open, cross-provider standard |
| Reuse | Function calling: tool defined per integration | MCP: write once, use with any MCP host |
| Without the other | Function calling without MCP: works for simple API calls, but every integration is bespoke | MCP without function calling: tools are described but no model can invoke them |
Claims and Evidence
MCP and function calling are complementary technologies operating at different layers of the stack.
MCP standardises tool description and invocation in a way that is independent of any specific model provider.
Open questions / Disputed areas
- Will LLM providers converge on a single function-calling format?
- Should MCP evolve to include a standard function-calling format?
- How do emerging agent-to-agent protocols relate to the MCP + function-calling stack?