AgenticWebScore
Scan

Protocol Discovery · Emerging · Low impact

ARD resource discovery manifest

Cisco/Outshift's Agentic Resource Discovery specification; Lighthouse audits it too.

  • Emerging
  • Low impact
  • Experimental standard
ARD resource discovery manifest — Property, Value
Property Value
Check idard-manifest
DimensionProtocol Discovery (25%)
TierEmerging — pool 5 pts
Weight inside tier1
ImpactLow
MaturityExperimental — An early convention that may still change shape.
ConditionalNo
Publishing skillard
Standardsard-spec

What the scanner requests

  • /.well-known/ard.json
  • /.well-known/agent-resources.json
  • /.well-known/ai-catalog.json
  • /ard.json

What is measured

The scanner GETs /.well-known/ard.json, /.well-known/agent-resources.json, /.well-known/ai-catalog.json and /ard.json and parses the first 200 response. It passes when the document is an ARD manifest: an entries array whose items each carry the ARD terms identifier, displayName and type, plus exactly one of url or data. It partially passes when entries exist but lack identifier or type, or carry both url and data, which the specification forbids.

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/ard.json /.well-known/agent-resources.json /.well-known/ai-catalog.json /ard.json; do printf '%s -> ' "$p"; curl -sS "$DOMAIN$p" | jq -c '[.entries[]? | {identifier,displayName,type,url}]' 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.

              {
  "entries": [
    {
      "identifier": "urn:air:your-domain.example:server:support",
      "displayName": "Example Support MCP Server",
      "type": "application/mcp-server-card+json",
      "url": "https://your-domain.example/.well-known/mcp/server-card.json",
      "description": "Tools for order status and returns.",
      "representativeQueries": ["where is order 12345"]
    },
    {
      "identifier": "urn:air:your-domain.example:agent:support",
      "displayName": "Example Support Agent",
      "type": "application/a2a-agent-card+json",
      "url": "https://your-domain.example/.well-known/agent-card.json",
      "description": "Agent-to-agent endpoint for support conversations."
    }
  ]
}
            

Standards referenced

  • ard-spec

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-card — A2A agent cardRecommendedMedium—
a2a-signed — Cryptographically signed agent cardEmergingMedium—
auth-md — /auth.md agent authentication guideEmergingMedium—