At a glance
| Criterion | MCP | A2A | agents.json |
|---|---|---|---|
| Audience | AI clients (Claude Desktop, Cursor, Cline) | Other agents and orchestrators | Agents calling your REST API |
| Discovery path | /.well-known/mcp.json | /.well-known/agent-card.json | /agents.json or /.well-known/agents.json |
| Transport | JSON-RPC (streamable HTTP, stdio) | JSON-RPC, gRPC, or HTTP+JSON | HTTP (per your OpenAPI) |
| Built on | Custom protocol | Custom protocol | OpenAPI extension |
| Spec | SEP-2127 (WG draft, superseded SEP-1649) | a2a.proto v1.0.0 | Wildcard v0.1.0 (pre-standard) |
| Exposes | Tools, resources, prompts | Skills, modalities, interfaces | Flows over OpenAPI operations |
| Required fields | 3 (name, description, version) | 8 top-level | 4 (agentsJson, info, sources, flows) |
What is MCP?
The Model Context Protocol exposes tools, resources, and prompts to AI clients over JSON-RPC. A server card published at /.well-known/mcp.json advertises the server’s name, description, version, and (optionally) the transports it exposes, so MCP clients like Claude Desktop, Cursor, and Cline can auto-connect without manual configuration. The discovery spec SEP-2127 is a Working Group draft that superseded the earlier SEP-1649 proposal.
What is A2A?
The Agent-to-Agent protocol is an open standard for communication between agents — one agent invoking another’s skills, delegating tasks, or composing into a multi-agent system. Each agent publishes a JSON card at /.well-known/agent-card.json declaring its name, version, capabilities, supported interfaces (JSON-RPC, gRPC, or HTTP+JSON), modalities, and callable skills. Spec: a2a.proto v1.0.0.
What is agents.json?
Wildcard’s agents.json (v0.1.0) is a flow specification layered over OpenAPI. It declares sources — each pointing at an OpenAPI 3+ document — and flows, named multi-step sequences that reference API operations by their operationId. It narrows your OpenAPI surface to the journeys you want agents completing, rather than exposing every endpoint. Four top-level fields are required: agentsJson, info, sources, and flows. The spec defines no authentication field — auth stays in the OpenAPI document you reference. Published at /agents.json or /.well-known/agents.json. The spec is pre-standard, so field requirements are guidance.
How do MCP, A2A, and agents.json differ?
They target different layers of the agent stack and aren’t substitutes:
- Audience. MCP talks to AI clients. A2A talks to other agents. agents.json talks to AI agents through your existing REST API.
- Transport. MCP and A2A define their own JSON-RPC-based wire protocols. agents.json inherits whatever transport your OpenAPI describes — usually plain HTTP/JSON.
- Scope. MCP exposes tools, resources, and prompts. A2A exposes skills, modalities, and supported interfaces. agents.json points to selected API operations with invocation hints.
- Maturity. A2A is the most formal (normative protobuf schema). MCP server cards are still a Working Group draft (SEP-2127). agents.json is pre-standard with the lowest bar to publish.
- Discovery path. All three follow the RFC 8615 well-known convention — though agents.json also accepts the document at the site root.
When should I use MCP?
When your software exposes tools (callable functions), resources (read-only data), or prompts to AI clients. The canonical use case is a developer-tools surface that an IDE assistant or Claude Desktop can connect to and operate — database queries, file lookups, search indexes, internal docs. Publish an MCP server card and the client can install your server with one click. MCP has the broadest client adoption of the three.
When should I use A2A?
When your software is itself an agent — runs an LLM, makes decisions, takes actions — and you want it to be invokable by, or to invoke, other agents. The canonical use case is a travel planner that delegates flight search to a flights agent and hotel search to a hotels agent. A2A is also the right choice when you’re building a multi-agent orchestration system internally and want a portable interface between components.
When should I use agents.json?
When you already publish an OpenAPI specification and want agents to call your REST endpoints with the same auth and request shapes your existing clients use. agents.json is the cheapest of the three to adopt because it builds on infrastructure you already have. It’s the right fit for SaaS APIs where the goal is “an agent can do what a human customer does, without bespoke MCP plumbing.”
Can I use more than one?
Yes — and many production sites do. Pair MCP and agents.json when you want both a tools-shaped interface for AI clients and a way for agents to drive your public REST API. Add A2A on top if you ship an agent that other agents should discover. There is no protocol conflict; the three files describe different surfaces of the same underlying capability.
Frequently asked questions
- Are MCP, A2A, and agents.json competing standards?
- No. They solve different problems. MCP exposes tools, resources, and prompts to AI clients. A2A enables agent-to-agent communication and delegation. agents.json describes which existing OpenAPI endpoints agents should call. Most production sites benefit from MCP plus agents.json; A2A is additive when you ship an agent-as-a-service.
- Do I need an A2A agent card if I publish an MCP server card?
- No. They describe different things. An MCP server card advertises a tool/resource server that clients connect to. An A2A agent card describes an autonomous agent that can be invoked by, or compose with, other agents. If your software is a tool surface, publish MCP only. If it has its own LLM and decision loop, publish A2A as well.
- Does agents.json replace OpenAPI?
- No. agents.json is an extension on top of OpenAPI. Your OpenAPI document remains the source of truth for paths, schemas, and authentication. agents.json layers on top of it, grouping specific operations (referenced by operationId) into named multi-step flows so agents know which sequences to call. You ship both.
- Which one will become the dominant standard?
- Probably moot — the three target different layers of the agent stack. MCP has the strongest adoption among AI clients (Claude Desktop, Cursor, Cline). A2A has Google backing and a normative spec. agents.json is youngest and pre-standard, but is the cheapest to ship if you already have OpenAPI. Pick based on what you expose, not which will win.
- Where should I publish each file?
- MCP server card at /.well-known/mcp.json (Content-Type application/json). A2A agent card at /.well-known/agent-card.json (Content-Type application/a2a+json preferred). agents.json at /agents.json or /.well-known/agents.json — both are accepted by validators.