DISC-016Find
Agent resource catalog (ARD) published
Whether your shop publishes an Agentic Resource Discovery (ARD) manifest listing its agent-facing resources.
What we check
We look for an ARD manifest at /.well-known/ard.json and, if it is absent there, at /.well-known/ai-catalog.json. Agentic Resource Discovery v0.91 is a proposal from an industry working group, dated 2026-08-26, and is not an IETF standard. The older path comes from v0.9. The manifest is a JSON object with a non-empty "entries" array. Each entry needs identifier, displayName and type (a media type such as application/mcp-server-card+json), and exactly one of url or data.
Why it matters
If your shop offers resources for agents, such as an MCP server, an A2A agent or an API, an ARD manifest lists them all in one file at your domain. An agent reads it to learn what it can use to search, buy or manage orders with you.
How we check
We read /.well-known/ard.json first and the older path only if the first is absent. PASS: a manifest at ard.json with at least one entry, every entry complete, served as application/json. WARN: the body is not JSON; "entries" is missing or empty; an entry lacks a required field or has both or neither of url and data; the media type is wrong; or the manifest exists only at the older ai-catalog.json path, which v0.91 consumers are not required to read. FAIL: both paths return 404 or 410, or return your site's ordinary HTML page. SKIPPED: bot management answered, your robots.txt disallows the path for our crawler, or the server returned a status such as 429 or a 5xx. We read only these well-known paths, not robots.txt Agentmap lines, rel="ard" links or DNS.
How to fix it
- If your shop publishes agent-facing resources (an MCP server, an A2A agent, an API), list them at /.well-known/ard.json.
- Give the file an "entries" array. Each entry needs identifier (for example urn:air:<your domain>:...), displayName, type (for example application/mcp-server-card+json) and exactly one of url or data.
- Serve it as application/json.
- If you publish /.well-known/ai-catalog.json today, move the content to ard.json and drop the old file once the new one is live.
What good looks like
GET /.well-known/ard.json
HTTP/1.1 200 OK
Content-Type: application/json
{
"specVersion": "0.91",
"entries": [
{
"identifier": "urn:air:example.com:mcp:shop",
"displayName": "Example Shop MCP server",
"type": "application/mcp-server-card+json",
"url": "https://example.com/.well-known/mcp/server-card.json"
}
]
}