DocsCapabilitiesAgentic Resource Discovery (ARD)
Agentic Resource Discovery (ARD)
A file at /.well-known/ard.json listing the agents, tools and APIs a site offers, each with a stable name.
Why an agent cares
It gives each agent, MCP server or API a site offers a stable, domain-anchored name and says where to find it, so an agent or a registry can discover them from one address. Google's Lighthouse checks it in Chrome DevTools and PageSpeed Insights, and an entry that breaks the rules is rejected rather than half-read.
Adoption
Early production. Several independent organisations run it in production, though it is still niche on the open web.
Direction of travel: ▲ rising, as at .
496 files on 382 hosts in a 2026-10-14 survey, most still at the older ai-catalog.json address, and Lighthouse 13.5.0 (2026-09-18) audits it. The specification is a v0.91 Proposal from Google, Microsoft and Hugging Face authors.
| Adopter | Depth | Evidence |
|---|---|---|
| Hugging Face | production | huggingface.co |
| Supabase | production | supabase.com |
| Vercel | production | vercel.com |
| Zapier | production | zapier.com |
What we check
| Check | Severity | Raises | On whose authority |
|---|---|---|---|
| ARD Malformed Document | high | conformance, usability | specification: Agentic Resource Discovery (ARD) specification |
Supporting documents: Agentic Resource Discovery (ARD) specification Required by Agentic Resource Discovery (ARD) specification. Bad: the file is served as application/ai-catalog+json but has no entries list, so a consumer finds nothing in it. Fix: shape it as {"entries": [{"identifier": "urn:air:example.com:assistant", "displayName": "Assistant", "type": "application/mcp-server-card+json", "url": "https://example.com/mcp/card.json"}]}. | |||
| ARD Entry Missing Identifier | high | conformance, usability | specification: Agentic Resource Discovery (ARD) specification |
Supporting documents: Agentic Resource Discovery (ARD) specification Required by Agentic Resource Discovery (ARD) specification. Bad: an entry has no identifier, the stable handle registries index it by, so it can't be listed or found. Fix: add "identifier": "urn:air:example.com:assistant" (your domain, then a name). | |||
| ARD Entry Missing Type | high | conformance, usability | specification: Agentic Resource Discovery (ARD) specification |
Supporting documents: Agentic Resource Discovery (ARD) specification Required by Agentic Resource Discovery (ARD) specification. Bad: an entry has no type, so an agent can't tell whether it points at an MCP server, an agent card or an API. Fix: add the media type, e.g. "type": "application/mcp-server-card+json". | |||
| ARD Entry URL And Data | high | conformance, usability | specification: Agentic Resource Discovery (ARD) specification |
Supporting documents: Agentic Resource Discovery (ARD) specification Required by Agentic Resource Discovery (ARD) specification. Bad: an entry carries both url and data, or neither, but must carry exactly one, so a consumer can't tell where its content is. Fix: keep one: "url" pointing at the document, or "data" with it inline. | |||
| ARD Entry Missing Display Name | medium | conformance, usability | specification: Agentic Resource Discovery (ARD) specification |
Supporting documents: Agentic Resource Discovery (ARD) specification Required by Agentic Resource Discovery (ARD) specification. Bad: an entry has no displayName, which every entry must carry, so it is rejected by validators such as Lighthouse and shows no name to people. Fix: add "displayName": "Example Assistant". | |||
| ARD Entry Invalid Identifier | medium | conformance, usability | specification: Agentic Resource Discovery (ARD) specification |
Supporting documents: Agentic Resource Discovery (ARD) specification Required by Agentic Resource Discovery (ARD) specification. Bad: an identifier isn't in the urn:air: form with your domain as publisher (e.g. urn:ai: or a plain URL), so registries can't anchor it to your site. Fix: use "urn:air:example.com:assistant", with your full domain after urn:air:. | |||
| ARD Entry Type Not Media Type | medium | conformance, usability | specification: Agentic Resource Discovery (ARD) specification |
Supporting documents: Agentic Resource Discovery (ARD) specification Required by Agentic Resource Discovery (ARD) specification. Bad: an entry's type is a word such as "documentation" rather than a media type, so an agent can't tell how to read what it points at. Fix: use a media type, e.g. "type": "application/openapi+json". | |||
| ARD Invalid Trust Manifest | medium | conformance, usability | specification: Agentic Resource Discovery (ARD) specification |
Supporting documents: Agentic Resource Discovery (ARD) specification Required by Agentic Resource Discovery (ARD) specification. Bad: an entry's trustManifest has no identity, or gives it as an object rather than a string, so a registry can't verify who publishes the entry. Fix: set "identity": "did:web:example.com" or "spiffe://example.com/agent". | |||
| ARD Trust Identity Mismatch | medium | conformance, usability | specification: Agentic Resource Discovery (ARD) specification |
Supporting documents: Agentic Resource Discovery (ARD) specification Required by Agentic Resource Discovery (ARD) specification. Bad: an entry's trustManifest.identity names a different domain from the publisher in its identifier, which the specification forbids because it is how one site could pose as another; verifying registries reject the entry. Fix: issue the identity from the domain in the identifier, e.g. did:web:example.com for urn:air:example.com:assistant. | |||
| ARD Predecessor Path Only | informational | nothing | specification: Agentic Resource Discovery (ARD) specification |
Supporting documents: Agentic Resource Discovery (ARD) specification Agentic Resource Discovery (ARD) specification permits this, so it never fails the site. Informational (does not fail ARD Valid): the entries are only at /.well-known/ai-catalog.json, the older address, which agents following the current specification are not required to read. Consider serving the same file at /.well-known/ard.json as well. | |||
Examples
Both run through the same checks as a live scan: the first passes, the second is flagged.
{
"entries": [
{
"identifier": "urn:air:example.com:assistant",
"displayName": "Example Assistant",
"type": "application/mcp-server-card+json",
"url": "https://example.com/.well-known/mcp/server-card.json",
"representativeQueries": ["Track my order", "Find a product in my size"],
"trustManifest": { "identity": "did:web:example.com" }
},
{
"identifier": "urn:air:example.com:api:orders",
"displayName": "Orders API",
"type": "application/openapi+json",
"url": "https://api.example.com/openapi.json"
}
]
}{
"entries": [
{
"identifier": "urn:ai:example.com:assistant",
"type": "documentation",
"url": "https://example.com/assistant",
"data": { "inline": true }
},
{
"displayName": "Orders API",
"url": "https://api.example.com/openapi.json"
},
{
"identifier": "urn:air:example.com:search",
"displayName": "Search",
"type": "application/json",
"url": "https://example.com/search.json",
"trustManifest": { "identity": "did:web:another-company.example" }
},
{
"identifier": "urn:air:example.com:labs",
"displayName": "Labs",
"type": "application/json",
"url": "https://example.com/labs.json",
"trustManifest": { "identity": { "principalName": "example.com" } }
}
]
}Specifications
| Document | Revision | Kind |
|---|---|---|
| Agentic Resource Discovery (ARD) specification | Version 0.91, Proposal (2026-08-26) | specification |
| Lighthouse 13.5.0 release, which added the ARD audit | Living document | guidance |
Last re-read against the published documents: .