Lesson 2 / 31

MCP, A2A and Function Calling: Who Does What

Place each mechanism correctly in the stack.

Three different layers

Function (tool) calling is a feature of a model API: you describe functions and the model can ask you to call them. It lives inside one application. MCP (Model Context Protocol) standardises how an AI application discovers and uses tools, resources (data) and prompts exposed by external servers, so the same tool server works with many hosts. A2A (Agent2Agent protocol) standardises how independent agents, possibly built by different teams or vendors on different frameworks, discover each other, delegate tasks and exchange results without sharing their internals. Rule of thumb: MCP is vertical (agent to tools and data), A2A is horizontal (agent to agent). They complement each other, and details of both specifications continue to evolve, so consult the current official documentation.

The stack

Where each piece sits.

                 user
                   |
          [ Host application / agent ]  <---- A2A ---->  [ another agent ]
             |        |                                        (own tools, own model,
         MCP client  MCP client                                 own framework)
             |        |
        MCP server  MCP server
        (orders DB) (calendar)

function calling = how the model inside the host asks for a tool call
MCP              = how the host reaches external tools/data
A2A              = how agents delegate work to each other

Quick check: Which statement is correct?

  • MCP connects an agent to tools and data; A2A connects agents to agents
  • A2A connects an agent to a database; MCP connects two models
  • They are the same protocol
  • Both replace the LLM
Answer

MCP connects an agent to tools and data; A2A connects agents to agents — MCP is vertical integration; A2A is horizontal collaboration.