MCP vs function calling: what's the difference?
Function calling is the model capability: the model returns a structured request to call a tool, and your code runs it. MCP is a protocol: it standardises how tools, data and prompts are exposed by servers and discovered by AI applications, so one integration works in many apps. They aren't alternatives, because an MCP client typically turns MCP tools into function definitions for the model.
Comparison
| Function calling | MCP | |
|---|---|---|
| What it is | Model feature | Open protocol |
| Defined by | Each model provider | Open specification, now under the Linux Foundation's Agentic AI Foundation |
| Scope | One app's tools | Tools, resources and prompts shared across apps |
| You write | Tool schemas and handlers in your app | An MCP server once, used by any MCP client |
| Good for | A few app-specific tools | Reusable integrations, many apps or teams |
How they fit together
1 - An MCP server exposes tools, for example "search tickets" and "create ticket". 2 - An MCP client (an IDE, a chat app or your own agent) connects and lists them. 3 - The client passes the tool definitions to the model through function calling. 4 - The model returns a tool call, the client sends it to the server, and the result goes back to the model.
What MCP is for
MCP standardises how AI applications connect to tools and data, so the same integration can be used from many clients without rewriting it. Less lock-in to one vendor's tool format is a side effect of that standard, not its main purpose.
Security
An MCP server is code with access to your systems, so treat installing one like installing a dependency with credentials: review it, give it the least access it needs, and require approval for actions that change data. See agent permissions and sandboxing.
When to choose which
- A single app with three internal tools: plain function calling.
- Tools you want available in IDEs, chat apps and your own agents: an MCP server.
From the floor
When I go through resumes with engineers preparing for interviews, MCP is one of the terms we check, because "what exactly is MCP and why would we use it?" is a common question, and the answer that holds up is the standardisation one: write an integration once, use it from any client.
Related
- Model Context Protocol
- Structured outputs and function calling
- Tool design
- Agent permissions and sandboxing