# When You Do and Do Not Need Protocols — MCP & Agent-to-Agent Protocols

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

> Avoid adding protocol layers that the problem does not require.

## Pay the complexity only when it buys reuse

Protocols add moving parts: processes or network services, authentication, versioning and more things to monitor. Use **plain function calling** inside a single application with a handful of tools. Use **MCP** when tools should be reused across several hosts, shipped by other teams or vendors, or run in a separate process or trust domain. Use **A2A** when agents are owned by different teams or organisations, run on different frameworks, or must evolve independently, and a simple function call is not enough because the work is long-running, multi-step or needs back-and-forth. Do not split one agent into several A2A services just to look modern: a plain function call is simpler, faster and easier to debug.

## A decision guide

Starting points only.

```text
Situation                                             Reasonable choice
1 app, 3-5 tools, one team                              function calling
Same tools needed in an IDE, a chat app and CI         MCP server
Tools run in another process / need separate trust     MCP server
Another team's agent must do a long task for yours      A2A
Agents on different frameworks / vendors               A2A
Just want it to look "agentic"                         neither; keep it simple
```

**Quiz:** When is plain function calling usually enough?

- [ ] Agents from different vendors
- [x] One application with a few tools owned by one team
- [ ] Tools needed in many hosts
- [ ] A long cross-organisation task

*Answer:* One application with a few tools owned by one team. Do not add protocol layers that give no reuse or isolation benefit.
