I added Agentic Resource Discovery to 0xinsider so agents can find it

ARD is a new proposal from Google, Microsoft and Hugging Face for how agents find tools. What's in it, what 0xinsider publishes, and what a registry returns.

Trevor I. Lasn Trevor I. Lasn
· 5 min read
Building 0xinsider, real-time Polymarket analytics for sports and esports.

Right now an agent only knows about the tools someone set up for it. You paste an MCP server into a config file, and that’s its whole world. That works when there are five tools. It doesn’t work when there are fifty thousand.

Agentic Resource Discovery is a proposal for fixing that. Version 0.91 came out on August 26, written by Junjie Bu at Google, R.V. Guha at Microsoft and Shaun Smith at Hugging Face, with contributors from GitHub, GoDaddy, Snowflake and others. Guha also worked on RSS and Schema.org, which is about the right résumé for this.

The idea is to take tool discovery out of the model’s context window and put it in a search service.

How discovery works in ARD

  1. Publisher0xinsider.com/.well-known/ard.jsonA static JSON file. 9 entries, each with 2 to 5 example queries.
  2. RegistryPOST /searchCrawls manifests, builds a semantic index, ranks entries against a plain-English query.
  3. Agent"which Polymarket wallets placed the largest trades on tonight's NBA game"Gets back the top matches and loads only the one it needs.

A publisher puts a manifest at /.well-known/ard.json. A registry indexes it. An agent sends a plain-English question to the registry and gets back the entries that match, then connects to the one it needs. Nothing gets stuffed into the context up front.

0xinsider has had a manifest for a while, and this week I rebuilt it to match v0.91. Here’s the main entry:

{
"identifier": "urn:air:0xinsider.com:mcp:prediction-market-intelligence",
"displayName": "0xinsider MCP server",
"type": "application/mcp-server-card+json",
"url": "https://0xinsider.com/.well-known/mcp",
"representativeQueries": [
"which Polymarket wallets placed the largest trades on tonight's NBA game",
"grade this Polymarket wallet by settled P&L",
"where is sharp money concentrated on this Premier League market",
"show the Polymarket leaderboard for esports traders",
"what sports games are on today and which Polymarket markets cover them"
]
}

Four fields are required: identifier, displayName, type, and exactly one of url or data. The identifier is a URN anchored to your domain, urn:air:<publisher>:<namespace>:<name>. The type is a media type, so the same envelope can describe an MCP server, an A2A agent or a skill without ARD having to know anything about them.

representativeQueries is the field I spent the most time on. It holds 2 to 5 things a person might actually ask, and it’s what a registry builds its semantic index from. Writing them felt a lot like writing search keywords, except the reader is a model instead of Google.

0xinsider publishes nine entries: the product MCP server, the documentation MCP server, and seven agent skills covering things like wallet grades and large trades. The manifest carries a trustManifest that binds everything to https://0xinsider.com. The spec requires the publisher in every URN to match that identity, so a registry can check that an entry claiming to be 0xinsider really comes from 0xinsider.com.

The official conformance tool is a single Python file with no dependencies:

Terminal window
git clone https://github.com/ards-project/ard-spec && cd ard-spec
python3 conformance/bin/conformance-test manifest https://0xinsider.com/.well-known/ard.json

It checks every entry’s URN, the value-or-reference rule and the trust binding, then prints one verdict:

CONFORMANCE STATUS: PASS
Validated with 0 critical specification errors and 0 warnings.

The first thing I got wrong had nothing to do with JSON. Our firewall challenges traffic that doesn’t look like a browser, and verified crawlers like GPTBot get waved through. Registries aren’t verified crawlers. So /.well-known/ard.json answered 429 to exactly the clients it exists for, while the older ai-catalog.json path right next to it answered 200. The fix was one line in a bypass rule. If you publish a manifest, fetch it from a server with curl, not from your own browser.

Then I asked a registry about it. ora.ai runs one with the POST /search endpoint from the spec:

Terminal window
curl -s -X POST https://ora.ai/api/ard/search \
-H 'Content-Type: application/json' \
-d '{"query":{"text":"Polymarket MCP server"},"pageSize":5}'

On September 23 it didn’t return 0xinsider. Searching for “0xinsider” by name does find us, but as entries ora wrote itself, like urn:air:ora.ai:product:0xinsider.com, not the nine I published. The registry knows the site exists. It hasn’t ingested the manifest yet.

That’s where ARD is today. The publishing side is ready: a manifest is a static JSON file, and the conformance tool tells you in a second if it’s wrong. The search side, where registries crawl manifests and answer questions with them, is early. The spec still says “Proposal” at the top.

I’m doing it anyway because 0xinsider is built for agents as much as for people. The data behind it is also a read-only REST API and an MCP server. When someone asks an agent which Polymarket wallets are behind tonight’s NBA game, I want it to find 0xinsider without anyone pasting a URL into a config file first. ARD is the first proposal I’ve seen that gets there without one company owning the directory.

If you want to add one to your own site:

  • Write /.well-known/ard.json with one entry per thing an agent can use, and give each entry 2 to 5 real questions.
  • Run the conformance tool against the live URL.
  • Fetch it with curl from a server to make sure your firewall lets registries in.

It’s a small JSON file. The hard part is writing questions someone would actually ask.


Trevor I. Lasn

Building 0xinsider, real-time Polymarket analytics for sports and esports.


Found this article helpful? You might enjoy my free newsletter. I share dev tips and insights to help you grow your coding skills and advance your tech career.


Related Articles

Check out these related articles that might be useful for you. They cover similar topics and provide additional insights.

Llm
6 min read

Google Search Console MCP for Claude Code

Pull GSC data into Claude Code to find CTR problems, indexing bugs, and keyword gaps — then fix them in the same conversation.

Feb 15, 2026
Read article
Llm
3 min read

Next.js DevTools MCP: Your Development Server Just Got Smarter

The Next.js DevTools MCP connects Claude and Cursor to your running dev server. I use it every day.

Nov 2, 2025
Read article
Llm
6 min read

Building Custom MCP Servers with Next.js and mcp-handler

How to build a MCP server that works with Claude Code, Gemini CLI, Cursor, and more.

Jan 28, 2026
Read article
Llm
7 min read

AI Agents Explained

What AI agents are, how the agent loop works, and why they're different from chatbots.

Jan 30, 2026
Read article
Llm
5 min read

Anthropic's Sequential Thinking MCP

Ever wished your AI agent would slow down and think things through? This MCP server does exactly that

Sep 7, 2025
Read article
Llm
5 min read

Claude Code Superpowers: How to Add Skills That Plan Before Coding

Superpowers is an MCP plugin for Claude Code that enforces planning, TDD, and debugging workflows. Setup guide with real examples.

Nov 4, 2025
Read article
Llm
4 min read

Context7 MCP: Stop LLM Hallucinations with Live Docs

Context7 MCP server pulls version-specific library docs into Claude Code, Cursor, and other AI editors. Setup guide and how it works.

Nov 1, 2025
Read article
Llm
3 min read

Chrome DevTools MCP: Let Your AI Agent Debug Your App

Give your AI agent access to your running application. They can see errors, inspect the network tab, check the DOM, and debug issues while you work.

Nov 10, 2025
Read article

This article was originally published on https://www.trevorlasn.com/blog/agentic-resource-discovery-ard. It was written by a human and polished using grammar tools for clarity.