MCP
An open wire protocol that standardises how an application hosting a language model discovers and calls external capabilities - tools, resources and prompts - exposed by servers.
MCP solves the N-times-M integration problem: every model host speaking to every tool bespoke. It draws a boundary - the host asks, the server answers - using JSON-RPC 2.0, but deliberately owns no agent loop and no agent state. It is the contract between an agent and its tools, not the runtime that runs the agent.
Explained in depth
What MCP standardises, the client-server split it enforces, the three things a server can offer, and why that standardisation does not remove the trust problem it sits on top of.
Agent harnesses - the layer that owns the loopThe difference between an agent harness, an agent framework, and a protocol - what a harness actually provides (loop, permissions, sandbox, context, recovery) and why the layer names get confused.
A2A - the Agent2Agent protocolHow the A2A protocol v1.0 standardises communication between independent agents - the Agent Card for discovery, the Task as the unit of work, streaming and push delivery, and where the boundary with MCP actually sits.