Agent ReadySign in
A2A discovery validation

A2A Agent Card validator

Check that your Agent-to-Agent server is discoverable at/.well-known/agent-card.jsonand meets the a2a.proto v1.0.0 required-field contract.

What is an A2A Agent Card?

The A2A Agent Card is a JSON document at /.well-known/agent-card.json that lets agents discover each other’s capabilities without prior configuration. It advertises the agent’s name, version, supported interfaces (JSON-RPC, gRPC, or HTTP+JSON), input/output modalities, and callable skills.

Why adopt it

A2A lets your agent be called by other agents - travel planners, concierges, analytics agents, orchestrators. Without an Agent Card, callers can’t discover your capabilities or figure out which transport to use. Think of it as a Yelp listing for agents: no card, no discoverability.

What we check

  • C4 - Exists. Agent Card is served at /.well-known/agent-card.json with HTTP 200. Content-Type application/a2a+json is preferred; application/json is accepted.
  • C5 - Fields. All eight required top-level fields per a2a.proto v1.0.0: name, description, version, capabilities, supportedInterfaces, defaultInputModes, defaultOutputModes, skills. Each supportedInterfaces entry needs url, protocolBinding (JSONRPC, GRPC, or HTTP+JSON), and protocolVersion.

Minimal valid example

{
  "name": "Acme Booking Agent",
  "description": "Books rooms across 80 hotel chains.",
  "version": "1.0.0",
  "capabilities": {},
  "supportedInterfaces": [
    {
      "url": "https://api.acme.dev/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "defaultInputModes": ["text/plain"],
  "defaultOutputModes": ["application/json"],
  "skills": []
}

All eight required fields present. Empty skills: [] and capabilities: {} will warn but not fail - the fields just have to exist. camelCase throughout (snake_case warns).

Specifications

Related tools