AgenticWebScore
Scan

Protocol Discovery · Recommended · Medium impact

A2A agent card

A2A v1.0 (Linux Foundation) is the emerging standard for agent-to-agent discovery. Almost no site publishes a card yet, which makes this one of the cheapest places to be early.

  • Recommended
  • Medium impact
  • Draft standard
A2A agent card — Property, Value
Property Value
Check ida2a-card
DimensionProtocol Discovery (25%)
TierRecommended — pool 20 pts
Weight inside tier2
ImpactMedium
MaturityDraft — A published specification that is not yet ratified.
ConditionalNo
Publishing skilla2a-agent-card
StandardsA2A v1.0

What the scanner requests

  • /.well-known/agent-card.json
  • /.well-known/agent.json

What is measured

The scanner GETs /.well-known/agent-card.json and the legacy alias /.well-known/agent.json and validates the JSON as an A2A v1.0 AgentCard. It passes when the card carries the required name, description, version, capabilities, defaultInputModes, defaultOutputModes and a non-empty skills array, plus at least one supportedInterfaces entry with url, protocolBinding and protocolVersion so a client knows how to call it. It partially passes when identity and skills are present but supportedInterfaces is absent or empty, leaving no transport to connect to.

Reproduce it yourself

You do not have to take our word for any of this. Run the same measurement against your own domain:

              DOMAIN=https://your-domain.example
for p in /.well-known/agent-card.json /.well-known/agent.json; do printf '%s -> ' "$p"; curl -sS "$DOMAIN$p" | jq -c '{name,version,interfaces:[.supportedInterfaces[]? | {url,protocolBinding,protocolVersion}],skills:(.skills|length)}' 2>/dev/null || echo "missing or not JSON"; done
            

The fix

This is the artifact to ship. It is the complete change, not a description of one.

              {
  "name": "Example Support Agent",
  "description": "Answers product and billing questions for partner agents.",
  "version": "1.0.0",
  "supportedInterfaces": [
    { "url": "https://your-domain.example/a2a/v1", "protocolBinding": "JSONRPC", "protocolVersion": "1.0" }
  ],
  "provider": { "organization": "Example Inc.", "url": "https://your-domain.example" },
  "capabilities": { "streaming": true, "pushNotifications": false },
  "defaultInputModes": ["text/plain", "application/json"],
  "defaultOutputModes": ["text/plain", "application/json"],
  "skills": [
    {
      "id": "billing-question",
      "name": "Billing question",
      "description": "Answers invoice and subscription questions for one account.",
      "tags": ["billing", "support"],
      "examples": ["Why was my last invoice higher than usual?"]
    }
  ]
}
            

Standards referenced

  • A2A v1.0

Related checks

Related checks — Check, Tier, Impact, Same skill
Check Tier Impact Same skill
mcp-card — MCP server cardEssentialHigh—
openapi — OpenAPI definitionEssentialHigh—
oauth-discovery — OAuth discovery documentsEssentialHigh—
api-catalog — API catalogRecommendedMedium—
agent-skills — Agent Skills declarationRecommendedMedium—
a2a-signed — Cryptographically signed agent cardEmergingMedium—
auth-md — /auth.md agent authentication guideEmergingMedium—
webmcp — WebMCP browser tool declarationEmergingMedium—