ardregistry.net

ARD reference

Agentic Resource Discovery, explained properly

The specification says agents should find capabilities the way a search engine finds pages. This is a working reference for how that actually goes: what the format requires, what the announcements got out of date, and what the ecosystem looks like when you measure it.

Agentic Resource Discovery (ARD) is an open specification that lets an AI agent find tools, skills, MCP servers, APIs and other agents at runtime, by describing the job in plain language, instead of having every capability wired in ahead of time. Publishers host a JSON manifest at /.well-known/ard.json on their own domain. Registries crawl those manifests and answer searches over them.

It was announced by Google on 17 June 2026 and is developed by a working group including Microsoft, Hugging Face and GoDaddy, under Apache 2.0. The current revision is v0.91, status Proposal, dated 26 August 2026.

The problem ARD was written to solve

An agent is only as good as the tools it can reach, and the way it reaches them today does not survive contact with scale. You install an MCP server by pasting a URL into a config file. You add a skill by cloning a repository. Every capability your agent has is one somebody decided in advance to wire in.

That breaks in two directions at once. The first is obvious: an agent cannot use a tool nobody told it about, so it fails at tasks a tool exists for. The second is the one that bites in production. Tool descriptions go into the context window, so every tool you add costs tokens on every single request, and accuracy starts falling long before you run out of room. The specification puts the problem plainly:

Agent descriptions tend to be generic, and most LLMs currently select tools by including all descriptions in the context window, which does not scale. ARD addresses this by moving discovery outside the LLM into a dedicated search service, where richer signals (representative queries, publisher identity, compliance metadata, usage patterns) can be leveraged without consuming context window tokens.

ARD specification v0.91, section 2, Motivation agenticresourcediscovery.org

So the fix is not a better prompt or a bigger window. It is to stop carrying the catalogue around. Ask a search service at the moment you need something, get back the two or three capabilities that fit, and load only those.

How ARD works

Two pieces, and the whole design falls out of them.

Catalogs

You describe what you offer in a JSON file and host it on your own domain, at /.well-known/ard.json. Nobody grants you the right to do this. Because the file lives on your domain, controlling the domain is what proves the claim is yours.

Registries

A registry crawls those files, indexes them, and answers POST /search with a ranked list. It is a search engine whose corpus is capabilities rather than pages. Anyone can run one, and they are expected to disagree about what to include.

A client with a job to do sends a plain-language description of the job to a registry. The registry returns matching entries with the metadata needed to verify who published them. The client verifies, connects to the resource over that resource's own protocol, and ARD is out of the picture. It never sits in the data path.

Found by what it does, not what it is called

This is the part most summaries skip, and it is the part that changes how you should write an entry. Ranking is built from representativeQueries: two to five plain sentences saying what someone would ask when they need this resource. Not keywords, not a category, actual questions.

The effect is easy to underrate until you watch it work. Searching our own index for scrape a page behind Cloudflare returns servers named cloro and Hydrafetch. Neither name contains a word from that query. They rank because someone wrote down what they are for. A well described tool with a bad name beats a badly described tool with a good one, which is not how any package registry has ever worked.

The most common way to be invisible. An entry with no representativeQueries is still a valid catalog entry. It is just not a discoverable one. The conformance tester flags it as a warning rather than an error, so it is entirely possible to publish something that validates cleanly and is never found. How to write them.

What counts as an agentic resource

Deliberately broad. The specification calls ARD an artifact-agnostic envelope: it identifies what a thing is with an IANA media type and leaves the internals to whichever protocol owns them. In practice these are the families that actually exist in the wild today, counted from 14,732 indexed entries:

FamilyWhat it isMedia typeShare of the index
MCP serverTools an agent calls over Model Context Protocolapplication/mcp-server-card+json8,714
SkillA packaged instruction set, usually Markdownapplication/ai-skill+md2,764
OpenAPI serviceA conventional REST API described by a specapplication/openapi+json2,669
A2A agentAn agent with an Agent Card, spoken to over A2Aapplication/a2a-agent-card+json79
RegistryAnother ARD search service, which is how federation worksapplication/ai-registry+json12

Counted 4 September 2026 across 6,610 publishers. Live figures and method on State of ARD.

What it looks like

Here is a complete, valid manifest. This is not a cut down illustration, it is the whole file. If you host this at https://yourdomain.com/.well-known/ard.json you are published.

/.well-known/ard.json
{
  "specVersion": "1.0",
  "host": {
    "displayName": "Acme Weather",
    "identifier": "did:web:acme.com",
    "documentationUrl": "https://acme.com/docs"
  },
  "entries": [
    {
      "identifier": "urn:air:acme.com:server:weather",
      "displayName": "Weather Data Node",
      "type": "application/mcp-server-card+json",
      "url": "https://api.acme.com/mcp/weather.json",
      "description": "Live weather telemetry and forecasts for any coordinate.",
      "capabilities": ["WeatherTool", "ForecastTool"],
      "representativeQueries": [
        "what is the current wind speed in Chicago",
        "get the 5-day forecast for Seattle",
        "is it going to rain in Berlin tomorrow"
      ]
    }
  ]
}

Four terms are required on an entry: identifier, displayName, type, and exactly one of url or data. Everything else earns its place. The full field reference explains each one, including the traps.

Where the ecosystem actually stands

ARD was announced on 17 June 2026. Most of what has been written about it dates from that week and describes intentions. These are measurements, taken 4 September 2026 from a public index that crawls manifests, MCP endpoints and the other public registries.

14,732resources indexed
6,610distinct publishers
97,230tools enumerated
94.8%endpoints answering

The interesting number is not any of those. It is this one: of 8,543 endpoints asked to list their tools, only 2,607 answered. 2,072 demanded credentials, which is fair. But 1,236 returned 404 and 558 returned 405, and a good share of those are servers that work perfectly well and are simply answering the wrong way to a discovery request. Their owners almost certainly do not know.

The full report breaks that down by cause, with the method written out and the raw counts served as JSON.

Start here

If you publish something an agent could call

The whole distance between having built a thing and having it found is one static file and one request. There is no application, no review and no waiting list.

Get indexed

Publishing the file is half of it. A registry can only index a domain it has encountered, so tell the ones you care about.

one call, any ARD registry that accepts submissions
curl -X POST https://neuronto.com/submit \
  -H "Content-Type: application/json" \
  -d '{"url": "https://yourdomain.com"}'

Disclosure: Neuronto is run by the people who write this site, and it is named first for that reason as much as any other. It resolves a bare domain to your manifest, indexes entries of every type rather than MCP servers only, and answers with what it found or exactly what it tried. Add "dry_run": true to see the outcome without being written anywhere.

The other public registries take submissions through their own doors, and submitting to several costs nothing: WellKnown, ARD Registry Hub, Desvela. What actually reaches all of them over time is the manifest on your own domain, which is the part nobody can take away from you. How each one behaves, probed.

Common questions

Is ARD a replacement for MCP?

No. MCP is how an agent talks to a tool once it has one. ARD is how it finds the tool in the first place. The specification is explicit that it sits entirely before invocation and hands off to the resource's own protocol. A server can be listed through ARD and still be spoken to over MCP, and almost all of them are.

Do I need permission to publish an ARD manifest?

No, and that is the point of the design. You host ard.json on a domain you control, and any registry that finds it may index it. There is no application and no gatekeeper. Ownership of the domain is what makes the claim checkable.

Is it ard.json or ai-catalog.json?

It is ard.json. The path /.well-known/ai-catalog.json and the link relation ai-catalog come from the predecessor format and were superseded in v0.91 on 26 August 2026. Consumers may still check the old path as a courtesy, but they are not required to, so a resource that stays there may simply not be found. Here is how to move.

Does ARD decide whether a tool is safe?

No, and it does not claim to. It carries identity, provenance and attestation signals so that a registry and a client can judge. The relevance score on a search result is relevance only, and the specification says in as many words that it must not be read as a trust, compliance or safety rating.

Who controls ARD?

A working group with participants from Microsoft, Google, Hugging Face and GoDaddy, building on the AI Catalog data model from the Linux Foundation's AI Catalog Working Group. The specification is Apache 2.0 and development happens in the open on GitHub.

How is this different from a directory like PulseMCP or Glama?

A directory is a website with a list on it. ARD is a wire format plus a search API, so any client can query any registry the same way, and registries can pass queries to each other. A directory can be an ARD registry, and several are becoming one. The difference is whether a machine can use it without someone writing a scraper.

Is ARD finished?

No. The current revision is v0.91 and its status is Proposal. It has already renamed the manifest once. Anything you build should read the version field, and this site keeps a changelog so you can see what moved.

Forty more questions and answers.

Last reviewed 2026-09-04. Checked against ARD v0.91 (Proposal, 2026-08-26).