Function calling
A model feature that returns a structured request to call one of the tools you described.
Your code runs the tool and sends the result back; it is the building block underneath agents.
AI & agents
Function calling is how a model asks to run a tool, MCP is a standard way to expose tools and data to any AI app, and A2A is a protocol for agents to talk to other agents.
A model feature that returns a structured request to call one of the tools you described.
Your code runs the tool and sends the result back; it is the building block underneath agents.
The Model Context Protocol: an open standard for exposing tools, resources and prompts to AI applications.
Build a server once and any MCP client (IDEs, chat apps, agents) can discover and use its tools.
The Agent2Agent protocol for agents from different vendors to discover each other and collaborate.
Agents publish capabilities and exchange tasks and messages, so one agent can delegate work to another.
| Aspect | Function calling | MCP | A2A |
|---|---|---|---|
| Connects | Model ↔ your code | AI app ↔ tools and data | Agent ↔ agent |
| Scope | One API call | Reusable server | Network of agents |
| Standard | Provider-specific formats | Open protocol | Open protocol |
| Unit | Tool call | Tool / resource / prompt | Task |
| Use for | Any tool use | Sharing tools across apps | Delegating between agents |
Function calling is a model capability: the model returns a structured request to run a tool you described. MCP is an open protocol for exposing tools, resources and prompts to any AI application. A2A is a protocol for independent agents to discover each other and delegate tasks.
No, it builds on it. An MCP client discovers tools from MCP servers and presents them to the model as function definitions; the model still uses function calling to request them, and the client forwards the call to the MCP server.
The many-to-many integration problem: without a standard, every AI app writes custom code for every tool or data source. With MCP, a tool is wrapped once as a server, and any MCP-compatible client can use it.
Collaboration between agents built by different teams or vendors. A2A defines how an agent advertises its capabilities, accepts tasks, exchanges messages and returns results, so agents can delegate work without sharing internal code.
When one application owns both the model call and the tools, for example a backend calling a few internal functions. You define the tools in code and run them yourself; no protocol layer is needed.
Servers expose tools (actions), resources (readable data) and prompts (templates). Clients inside host applications connect to servers, list their capabilities and call them on behalf of the model.
Local servers commonly use standard input and output, and remote servers use Streamable HTTP. Remote servers add authentication, typically OAuth, so users grant access to their data.
A description of the agent published at a well-known location: its name, skills, endpoint, supported input and output types and authentication requirements, so other agents can discover and call it.
MCP connects an agent to its tools and data; A2A connects an agent to other agents. A travel agent might use MCP servers for flight and hotel APIs and use A2A to delegate visa checks to a partner's agent.
Your application. The model only proposes the call with arguments; your code validates them, runs the function and sends the result back as a tool message for the model's next step.
Practise every comparison in your dashboard.
Start learning