# MCP, A2A and Function Calling: Who Does What — MCP & Agent-to-Agent Protocols

Source: https://www.geekswithgeeks.com/en/mcp-a2a/w-landscape

> 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.

```text
                 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
```

**Quiz:** Which statement is correct?

- [x] 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.
