As AI moves from talking to doing, three terms get thrown around together: function calling, MCP, and agents. They're related but distinct, sitting at different levels of complexity. Knowing the difference helps you avoid over-engineering — or under-building.

Function calling: the primitive

Function calling (tool use) is the base capability: you describe tools to a model, and it can output a structured request to call one. Your code executes it and returns the result. It's the mechanism that lets a model reach outside itself for a single action — search, calculate, look up. It's a feature of the model API, not a system.

MCP: the standard connector

The Model Context Protocol (MCP) is a standard way to expose tools and data to AI. Instead of custom-wiring each tool into each app, you expose it via an MCP server, and any MCP-aware client can use it. MCP is about interoperability — a common plug so integrations aren't one-off glue code. It's infrastructure that makes tools reusable across apps.

Function calling is "the model can use a tool." MCP is "here's a standard way to plug tools in." Agents are "the model uses tools in a loop to pursue a goal."

Full agents: the system

An agent uses function calling (and maybe MCP-connected tools) in a loop to pursue a goal over multiple steps — observe, decide, act, repeat, until done. It adds planning, memory, error recovery, and the machinery of autonomy. An agent is a system built on top of tool use, not a single call.

How to choose

  • Need the model to do one discrete action? → function calling is enough.
  • Building tools you want reusable across many AI apps, or connecting to standardized services? → MCP.
  • Need multi-step, goal-directed autonomy? → a full agent (with the guardrails and reliability work that entails).

The takeaway

These aren't competing choices so much as layers: function calling is the primitive, MCP standardizes connecting tools, and agents orchestrate it all toward goals. Match the level to your need — many "we need an agent" problems are really "we need one function call," and building the full agentic system when you don't need it is a common, costly over-engineering trap.

0 viewsSource: ExplainerCite · BibTeX
Was this useful?