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.jsonwith HTTP 200. Content-Typeapplication/a2a+jsonis preferred;application/jsonis accepted. - C5 - Fields. All eight required top-level fields per a2a.proto v1.0.0:
name,description,version,capabilities,supportedInterfaces,defaultInputModes,defaultOutputModes,skills. EachsupportedInterfacesentry needsurl,protocolBinding(JSONRPC,GRPC, orHTTP+JSON), andprotocolVersion.
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).