Agent ReadySign in

MCP vs A2A vs agents.json

Three agent-discovery protocols for the open web. Here’s which one solves your problem — and why most teams ship more than one.

Last updated

At a glance

CriterionMCPA2Aagents.json
AudienceAI clients (Claude Desktop, Cursor, Cline)Other agents and orchestratorsAgents calling your REST API
Discovery path/.well-known/mcp.json/.well-known/agent-card.json/agents.json or /.well-known/agents.json
TransportJSON-RPC (streamable HTTP, stdio)JSON-RPC, gRPC, or HTTP+JSONHTTP (per your OpenAPI)
Built onCustom protocolCustom protocolOpenAPI extension
SpecSEP-1649, ratified 2025-11-25a2a.proto v1.0.0Wildcard v0.1.0 (pre-standard)
ExposesTools, resources, promptsSkills, modalities, interfacesSelected API endpoints with hints
Required fields3 (name, transport, endpoint)8 top-level1 (name); rest are guidance

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 transport, endpoint, and capabilities so MCP clients like Claude Desktop, Cursor, and Cline can auto-connect without manual configuration. The discovery spec SEP-1649 ratified on 2025-11-25.

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 an OpenAPI extension that declares which existing REST endpoints agents are meant to call, with inline descriptors for authentication, inputs, and outputs. It narrows your OpenAPI surface to the operations you want agents using, rather than exposing everything. 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 ratified late 2025. 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 promptsto 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 points to specific operations and adds inline hints for agent invocation — input templates, output expectations, and auth context. 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.