{
  "@context": "https://schema.org",
  "@id": "https://aggr.aymericbeaumet.com/items/huggingface-co/2026-06-17-agentic-resource-discovery-let-agents-search/#webpage",
  "@type": [
    "WebPage",
    "ArchiveComponent"
  ],
  "articleBody": "If you build with agents today, you probably know three protocols. MCP gives agents a standard way to call tools. Skills give agents a way of consuming instructions. A2A gives agents a way to call other agents. All three assume the user already knows which tool, instruction, or agent they need. The user is still responsible for discovering, integrating, and maintaining those capabilities.\n\nThe Agentic Resource Discovery (ARD) specification is the discovery layer that sits in front of them. It is a draft, open specification developed by contributors from Microsoft, Google, GoDaddy, Hugging Face, and others, with broad participation across the industry. It defines how agents and tools are cataloged, indexed, and searched across federated registries, so an agent can find capabilities at runtime instead of needing them pre-installed. It is not a product or a marketplace. It is a shared standard that any company can implement independently, and that any agent or tool can participate in.\n\nIn this post, we'll explore the specification, how Hugging Face has implemented it, and how you can start building on ARD.\n\n## The discovery problem\n\nThe current model for agent capabilities is install-first, use-later. A developer hardcodes an MCP server URL into a config file. A user connects a service to their AI app via a plugin and reuses it. This works for the handful of tools an agent uses every day, but it doesn't scale to thousands of ad-hoc surfaces.\n\nThe fallback is to dump every available tool description into the LLM's context window and let the model pick. This is limited by the context budget. There are search-based strategies here too, but the descriptions are often too thin to disambiguate well.\n\nARD moves selection outside the LLM. A registry indexes capabilities with richer signals such as publisher identity, representative queries, compliance attestations, and tags. It exposes a REST endpoint. The client searches in natural language, and the model invokes whatever the search returns. The shift is from manually installed, static catalogs to intent-based search that lets an agent find the right capability dynamically, and reach a growing ecosystem of MCP tools, A2A agents, and other services without pre-configuring each one.\n\nThe specification defines two things:\n\n- A static manifest format called `ai-catalog.json` lets publishers host their capabilities at a well-known URL.\n- A dynamic registry API at `POST /search` provides live, ranked discovery.\n\n## ARD on the Hugging Face Hub\n\nThe Hugging Face [Discover Tool](https://github.com/huggingface/hf-discover) is our reference implementation of ARD. It provides search access to thousands of Skills, ML applications, and MCP Servers — on Hugging Face and across other ARD discovery services.\n\nIt works by combining the Hub's existing semantic search over Spaces, alongside our Agent Skills, and serving the results as ARD catalog entries. The Hub already hosts a catalog of Spaces running Gradio apps, MCP servers, and demos. Its semantic search supports an `agents=true` flag that returns Spaces ranked by agent-oriented metadata, and Discover translates that search into the ARD specification.\n\nThe adapter applies two filters. First, the response includes only Spaces whose runtime stage is `RUNNING`. Second, the response media type is driven by the request. Three media types are supported:\n\n- `application/ai-skill`: the default. A generated `SKILL.md` wrapping the Space's `agents.md`.\n- `application/mcp-server+json`: an MCP server catalog entry for Spaces tagged `mcp-server`.\n- `application/vnd.huggingface.space+json`: raw Space metadata for clients that want to handle it themselves.\n\nThe skill type involves an additional transformation. Many Spaces ship an `agents.md` file describing how an agent should interact with them. Discover reads that file and wraps it with the frontmatter a skill consumer expects: `name`, `description`, and source metadata covering the Space ID, Hub URL, app URL, and original `agents.md` URL. The result is a skill any skill-aware client can install or load through its normal skill flow.\n\nFor MCP-tagged Spaces, the adapter generates a catalog entry pointing at the Space's Gradio MCP endpoint over HTTP transport. The URL uses the Space's runtime domain when the Hub provides one, otherwise the standard `.hf.space` slug convention.\n\n## Using it\n\n`discover` is built into the [Hugging Face CLI](https://github.com/huggingface/huggingface_hub) (`hf`). To get started and give you or your agent access:\n\n```bash\n# Install the Hugging Face CLI tool:\nuv tool install huggingface_hub\n\n# Search for resources to train a model\nhf discover search \"Fine tune a language model\"\n\n# Find MCP Servers to generate an image\nhf discover search \"Generate an image\" --json --kind mcp\n\n# Search other registries\nhf discover search \"Purchase aeroplane tickets\" --registry-url <catalog-url>\n```\n\n### REST API and MCP Tool\n\nYou can also Search the catalog directly using either the REST API or an MCP Server.\n\nThe Hugging Face catalog is published at its well-known URL:\n\n```\nhttps://huggingface.co/.well-known/ai-catalog.json\n```\n\nTo call search directly:\n\n```\nPOST https://huggingface-hf-discover.hf.space/search\n```\n\n```bash\ncurl -s https://huggingface-hf-discover.hf.space/search \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": {\n      \"text\": \"fine tune a sentence transformer\",\n      \"filter\": {\n        \"type\": [\"application/ai-skill\"]\n      }\n    },\n    \"pageSize\": 5\n  }'\n```\n\nSearch for MCP servers\n\n```bash\ncurl -s https://huggingface-hf-discover.hf.space/search \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": {\n      \"text\": \"transcribe some audio\",\n      \"filter\": {\n        \"type\": [\"application/mcp-server-card+json\"]\n      }\n    },\n    \"pageSize\": 5\n  }'\n```\n\nAlternatively, connect any MCP Client to search via MCP endpoint using [https://huggingface-hf-discover.hf.space/mcp](https://huggingface-hf-discover.hf.space/mcp) to search the catalog.\n\n## What this means for the specification\n\nARD separates discovery from execution. The static manifest format is driven by media type, so any artifact protocol can ride the same envelope without specification-level changes. The registry API is plain HTTP REST, so any client can federate against it. Discover is one of several reference implementations of the specification across the ecosystem, and because federation is built into the protocol, a search through one service can surface capabilities hosted by another.\n\nThe Discover Tool is a working test of that design. It does not invent a new artifact format. It wraps an existing search backend, the Hub, in the specification's envelope, and lets the same Spaces surface as skills or MCP servers depending on what the client asked for.\n\nNext steps are tighter integration with the specification's federation modes (`auto`, `referrals`, `none`) and Hub-side support for static `ai-catalog.json` manifests on user and organization profiles. Once that lands, any Space publisher will be able to advertise their capabilities through the standard well-known URI mechanism.\n\n## Learn more\n\n- The Agentic Resource Discovery Specification: [https://agenticresourcediscovery.org/](https://agenticresourcediscovery.org/)\n- The Hugging Face Discover Tool: [https://github.com/huggingface/hf-discover](https://github.com/huggingface/hf-discover)\n- The Hugging Face CLI: [https://github.com/huggingface/huggingface_hub](https://github.com/huggingface/huggingface_hub)\n- Agent Skills on the Hub: [https://huggingface.co/docs/hub/agents-skills](https://huggingface.co/docs/hub/agents-skills)\n- Hugging Face Spaces: [https://huggingface.co/spaces](https://huggingface.co/spaces)\n",
  "authors": [],
  "captured_at": "2026-10-19T01:26:53.998049939+00:00",
  "category": "ai",
  "content_html": "<p>If you build with agents today, you probably know three protocols. MCP gives agents a standard way to call tools. Skills give agents a way of consuming instructions. A2A gives agents a way to call other agents. All three assume the user already knows which tool, instruction, or agent they need. The user is still responsible for discovering, integrating, and maintaining those capabilities.</p>\n<p>The Agentic Resource Discovery (ARD) specification is the discovery layer that sits in front of them. It is a draft, open specification developed by contributors from Microsoft, Google, GoDaddy, Hugging Face, and others, with broad participation across the industry. It defines how agents and tools are cataloged, indexed, and searched across federated registries, so an agent can find capabilities at runtime instead of needing them pre-installed. It is not a product or a marketplace. It is a shared standard that any company can implement independently, and that any agent or tool can participate in.</p>\n<p>In this post, we'll explore the specification, how Hugging Face has implemented it, and how you can start building on ARD.</p>\n<h2>The discovery problem</h2>\n<p>The current model for agent capabilities is install-first, use-later. A developer hardcodes an MCP server URL into a config file. A user connects a service to their AI app via a plugin and reuses it. This works for the handful of tools an agent uses every day, but it doesn't scale to thousands of ad-hoc surfaces.</p>\n<p>The fallback is to dump every available tool description into the LLM's context window and let the model pick. This is limited by the context budget. There are search-based strategies here too, but the descriptions are often too thin to disambiguate well.</p>\n<p>ARD moves selection outside the LLM. A registry indexes capabilities with richer signals such as publisher identity, representative queries, compliance attestations, and tags. It exposes a REST endpoint. The client searches in natural language, and the model invokes whatever the search returns. The shift is from manually installed, static catalogs to intent-based search that lets an agent find the right capability dynamically, and reach a growing ecosystem of MCP tools, A2A agents, and other services without pre-configuring each one.</p>\n<p>The specification defines two things:</p>\n<ul>\n<li>A static manifest format called <code>ai-catalog.json</code> lets publishers host their capabilities at a well-known URL.</li>\n<li>A dynamic registry API at <code>POST /search</code> provides live, ranked discovery.</li>\n</ul>\n<h2>ARD on the Hugging Face Hub</h2>\n<p>The Hugging Face <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/hf-discover\">Discover Tool</a> is our reference implementation of ARD. It provides search access to thousands of Skills, ML applications, and MCP Servers — on Hugging Face and across other ARD discovery services.</p>\n<p>It works by combining the Hub's existing semantic search over Spaces, alongside our Agent Skills, and serving the results as ARD catalog entries. The Hub already hosts a catalog of Spaces running Gradio apps, MCP servers, and demos. Its semantic search supports an <code>agents=true</code> flag that returns Spaces ranked by agent-oriented metadata, and Discover translates that search into the ARD specification.</p>\n<p>The adapter applies two filters. First, the response includes only Spaces whose runtime stage is <code>RUNNING</code>. Second, the response media type is driven by the request. Three media types are supported:</p>\n<ul>\n<li><code>application/ai-skill</code>: the default. A generated <code>SKILL.md</code> wrapping the Space's <code>agents.md</code>.</li>\n<li><code>application/mcp-server+json</code>: an MCP server catalog entry for Spaces tagged <code>mcp-server</code>.</li>\n<li><code>application/vnd.huggingface.space+json</code>: raw Space metadata for clients that want to handle it themselves.</li>\n</ul>\n<p>The skill type involves an additional transformation. Many Spaces ship an <code>agents.md</code> file describing how an agent should interact with them. Discover reads that file and wraps it with the frontmatter a skill consumer expects: <code>name</code>, <code>description</code>, and source metadata covering the Space ID, Hub URL, app URL, and original <code>agents.md</code> URL. The result is a skill any skill-aware client can install or load through its normal skill flow.</p>\n<p>For MCP-tagged Spaces, the adapter generates a catalog entry pointing at the Space's Gradio MCP endpoint over HTTP transport. The URL uses the Space's runtime domain when the Hub provides one, otherwise the standard <code>.hf.space</code> slug convention.</p>\n<h2>Using it</h2>\n<p><code>discover</code> is built into the <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/huggingface_hub\">Hugging Face CLI</a> (<code>hf</code>). To get started and give you or your agent access:</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-begin syntax-shell\">#</span></span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"> Install the Hugging Face CLI tool:</span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\">\n</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">uv</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> tool install huggingface_hub</span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-begin syntax-shell\">#</span></span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"> Search for resources to train a model</span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\">\n</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">hf</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> discover search <span class=\"syntax-string syntax-quoted syntax-double syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-shell\">&quot;</span>Fine tune a language model<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-shell\">&quot;</span></span></span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-begin syntax-shell\">#</span></span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"> Find MCP Servers to generate an image</span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\">\n</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">hf</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> discover search <span class=\"syntax-string syntax-quoted syntax-double syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-shell\">&quot;</span>Generate an image<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-shell\">&quot;</span></span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>json</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>kind</span> mcp</span>\n\n<span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-comment syntax-begin syntax-shell\">#</span></span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\"> Search other registries</span><span class=\"syntax-comment syntax-line syntax-number-sign syntax-shell\">\n</span><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">hf</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"> discover search <span class=\"syntax-string syntax-quoted syntax-double syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-shell\">&quot;</span>Purchase aeroplane tickets<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-shell\">&quot;</span></span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> --</span>registry-url</span> <span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&lt;</span>catalog-url<span class=\"syntax-keyword syntax-operator syntax-assignment syntax-redirection syntax-shell\">&gt;</span>\n</span></span></span></code></pre>\n<h3>REST API and MCP Tool</h3>\n<p>You can also Search the catalog directly using either the REST API or an MCP Server.</p>\n<p>The Hugging Face catalog is published at its well-known URL:</p>\n<pre><code><span class=\"code-snippet\">https://huggingface.co/.well-known/ai-catalog.json\n</span></code></pre>\n<p>To call search directly:</p>\n<pre><code><span class=\"code-snippet\">POST https://huggingface-hf-discover.hf.space/search\n</span></code></pre>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">curl</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>s</span> https://huggingface-hf-discover.hf.space/search <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  -</span>H</span> <span class=\"syntax-string syntax-quoted syntax-double syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-shell\">&quot;</span>Content-Type: application/json<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-shell\">&quot;</span></span> <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  -</span>d</span> <span class=\"syntax-string syntax-quoted syntax-single syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-shell\">&#39;</span>{\n    &quot;query&quot;: {\n      &quot;text&quot;: &quot;fine tune a sentence transformer&quot;,\n      &quot;filter&quot;: {\n        &quot;type&quot;: [&quot;application/ai-skill&quot;]\n      }\n    },\n    &quot;pageSize&quot;: 5\n  }<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-shell\">&#39;</span></span></span>\n</span></span></code></pre>\n<p>Search for MCP servers</p>\n<pre><code class=\"language-bash\"><span class=\"code-snippet\" data-language=\"Shell\"><span class=\"syntax-source syntax-shell syntax-bash\"><span class=\"syntax-meta syntax-function-call syntax-shell\"><span class=\"syntax-variable syntax-function syntax-shell\">curl</span></span><span class=\"syntax-meta syntax-function-call syntax-arguments syntax-shell\"><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\"> -</span>s</span> https://huggingface-hf-discover.hf.space/search <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  -</span>H</span> <span class=\"syntax-string syntax-quoted syntax-double syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-shell\">&quot;</span>Content-Type: application/json<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-shell\">&quot;</span></span> <span class=\"syntax-punctuation syntax-separator syntax-continuation syntax-line syntax-shell\">\\\n</span><span class=\"syntax-variable syntax-parameter syntax-option syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-parameter syntax-shell\">  -</span>d</span> <span class=\"syntax-string syntax-quoted syntax-single syntax-shell\"><span class=\"syntax-punctuation syntax-definition syntax-string syntax-begin syntax-shell\">&#39;</span>{\n    &quot;query&quot;: {\n      &quot;text&quot;: &quot;transcribe some audio&quot;,\n      &quot;filter&quot;: {\n        &quot;type&quot;: [&quot;application/mcp-server-card+json&quot;]\n      }\n    },\n    &quot;pageSize&quot;: 5\n  }<span class=\"syntax-punctuation syntax-definition syntax-string syntax-end syntax-shell\">&#39;</span></span></span>\n</span></span></code></pre>\n<p>Alternatively, connect any MCP Client to search via MCP endpoint using <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface-hf-discover.hf.space/mcp\">https://huggingface-hf-discover.hf.space/mcp</a> to search the catalog.</p>\n<h2>What this means for the specification</h2>\n<p>ARD separates discovery from execution. The static manifest format is driven by media type, so any artifact protocol can ride the same envelope without specification-level changes. The registry API is plain HTTP REST, so any client can federate against it. Discover is one of several reference implementations of the specification across the ecosystem, and because federation is built into the protocol, a search through one service can surface capabilities hosted by another.</p>\n<p>The Discover Tool is a working test of that design. It does not invent a new artifact format. It wraps an existing search backend, the Hub, in the specification's envelope, and lets the same Spaces surface as skills or MCP servers depending on what the client asked for.</p>\n<p>Next steps are tighter integration with the specification's federation modes (<code>auto</code>, <code>referrals</code>, <code>none</code>) and Hub-side support for static <code>ai-catalog.json</code> manifests on user and organization profiles. Once that lands, any Space publisher will be able to advertise their capabilities through the standard well-known URI mechanism.</p>\n<h2>Learn more</h2>\n<ul>\n<li>The Agentic Resource Discovery Specification: <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://agenticresourcediscovery.org/\">https://agenticresourcediscovery.org/</a></li>\n<li>The Hugging Face Discover Tool: <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/hf-discover\">https://github.com/huggingface/hf-discover</a></li>\n<li>The Hugging Face CLI: <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/huggingface/huggingface_hub\">https://github.com/huggingface/huggingface_hub</a></li>\n<li>Agent Skills on the Hub: <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/docs/hub/agents-skills\">https://huggingface.co/docs/hub/agents-skills</a></li>\n<li>Hugging Face Spaces: <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://huggingface.co/spaces\">https://huggingface.co/spaces</a></li>\n</ul>\n",
  "content_markdown": "If you build with agents today, you probably know three protocols. MCP gives agents a standard way to call tools. Skills give agents a way of consuming instructions. A2A gives agents a way to call other agents. All three assume the user already knows which tool, instruction, or agent they need. The user is still responsible for discovering, integrating, and maintaining those capabilities.\n\nThe Agentic Resource Discovery (ARD) specification is the discovery layer that sits in front of them. It is a draft, open specification developed by contributors from Microsoft, Google, GoDaddy, Hugging Face, and others, with broad participation across the industry. It defines how agents and tools are cataloged, indexed, and searched across federated registries, so an agent can find capabilities at runtime instead of needing them pre-installed. It is not a product or a marketplace. It is a shared standard that any company can implement independently, and that any agent or tool can participate in.\n\nIn this post, we'll explore the specification, how Hugging Face has implemented it, and how you can start building on ARD.\n\n## The discovery problem\n\nThe current model for agent capabilities is install-first, use-later. A developer hardcodes an MCP server URL into a config file. A user connects a service to their AI app via a plugin and reuses it. This works for the handful of tools an agent uses every day, but it doesn't scale to thousands of ad-hoc surfaces.\n\nThe fallback is to dump every available tool description into the LLM's context window and let the model pick. This is limited by the context budget. There are search-based strategies here too, but the descriptions are often too thin to disambiguate well.\n\nARD moves selection outside the LLM. A registry indexes capabilities with richer signals such as publisher identity, representative queries, compliance attestations, and tags. It exposes a REST endpoint. The client searches in natural language, and the model invokes whatever the search returns. The shift is from manually installed, static catalogs to intent-based search that lets an agent find the right capability dynamically, and reach a growing ecosystem of MCP tools, A2A agents, and other services without pre-configuring each one.\n\nThe specification defines two things:\n\n- A static manifest format called `ai-catalog.json` lets publishers host their capabilities at a well-known URL.\n- A dynamic registry API at `POST /search` provides live, ranked discovery.\n\n## ARD on the Hugging Face Hub\n\nThe Hugging Face [Discover Tool](https://github.com/huggingface/hf-discover) is our reference implementation of ARD. It provides search access to thousands of Skills, ML applications, and MCP Servers — on Hugging Face and across other ARD discovery services.\n\nIt works by combining the Hub's existing semantic search over Spaces, alongside our Agent Skills, and serving the results as ARD catalog entries. The Hub already hosts a catalog of Spaces running Gradio apps, MCP servers, and demos. Its semantic search supports an `agents=true` flag that returns Spaces ranked by agent-oriented metadata, and Discover translates that search into the ARD specification.\n\nThe adapter applies two filters. First, the response includes only Spaces whose runtime stage is `RUNNING`. Second, the response media type is driven by the request. Three media types are supported:\n\n- `application/ai-skill`: the default. A generated `SKILL.md` wrapping the Space's `agents.md`.\n- `application/mcp-server+json`: an MCP server catalog entry for Spaces tagged `mcp-server`.\n- `application/vnd.huggingface.space+json`: raw Space metadata for clients that want to handle it themselves.\n\nThe skill type involves an additional transformation. Many Spaces ship an `agents.md` file describing how an agent should interact with them. Discover reads that file and wraps it with the frontmatter a skill consumer expects: `name`, `description`, and source metadata covering the Space ID, Hub URL, app URL, and original `agents.md` URL. The result is a skill any skill-aware client can install or load through its normal skill flow.\n\nFor MCP-tagged Spaces, the adapter generates a catalog entry pointing at the Space's Gradio MCP endpoint over HTTP transport. The URL uses the Space's runtime domain when the Hub provides one, otherwise the standard `.hf.space` slug convention.\n\n## Using it\n\n`discover` is built into the [Hugging Face CLI](https://github.com/huggingface/huggingface_hub) (`hf`). To get started and give you or your agent access:\n\n```bash\n# Install the Hugging Face CLI tool:\nuv tool install huggingface_hub\n\n# Search for resources to train a model\nhf discover search \"Fine tune a language model\"\n\n# Find MCP Servers to generate an image\nhf discover search \"Generate an image\" --json --kind mcp\n\n# Search other registries\nhf discover search \"Purchase aeroplane tickets\" --registry-url <catalog-url>\n```\n\n### REST API and MCP Tool\n\nYou can also Search the catalog directly using either the REST API or an MCP Server.\n\nThe Hugging Face catalog is published at its well-known URL:\n\n```\nhttps://huggingface.co/.well-known/ai-catalog.json\n```\n\nTo call search directly:\n\n```\nPOST https://huggingface-hf-discover.hf.space/search\n```\n\n```bash\ncurl -s https://huggingface-hf-discover.hf.space/search \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": {\n      \"text\": \"fine tune a sentence transformer\",\n      \"filter\": {\n        \"type\": [\"application/ai-skill\"]\n      }\n    },\n    \"pageSize\": 5\n  }'\n```\n\nSearch for MCP servers\n\n```bash\ncurl -s https://huggingface-hf-discover.hf.space/search \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": {\n      \"text\": \"transcribe some audio\",\n      \"filter\": {\n        \"type\": [\"application/mcp-server-card+json\"]\n      }\n    },\n    \"pageSize\": 5\n  }'\n```\n\nAlternatively, connect any MCP Client to search via MCP endpoint using [https://huggingface-hf-discover.hf.space/mcp](https://huggingface-hf-discover.hf.space/mcp) to search the catalog.\n\n## What this means for the specification\n\nARD separates discovery from execution. The static manifest format is driven by media type, so any artifact protocol can ride the same envelope without specification-level changes. The registry API is plain HTTP REST, so any client can federate against it. Discover is one of several reference implementations of the specification across the ecosystem, and because federation is built into the protocol, a search through one service can surface capabilities hosted by another.\n\nThe Discover Tool is a working test of that design. It does not invent a new artifact format. It wraps an existing search backend, the Hub, in the specification's envelope, and lets the same Spaces surface as skills or MCP servers depending on what the client asked for.\n\nNext steps are tighter integration with the specification's federation modes (`auto`, `referrals`, `none`) and Hub-side support for static `ai-catalog.json` manifests on user and organization profiles. Once that lands, any Space publisher will be able to advertise their capabilities through the standard well-known URI mechanism.\n\n## Learn more\n\n- The Agentic Resource Discovery Specification: [https://agenticresourcediscovery.org/](https://agenticresourcediscovery.org/)\n- The Hugging Face Discover Tool: [https://github.com/huggingface/hf-discover](https://github.com/huggingface/hf-discover)\n- The Hugging Face CLI: [https://github.com/huggingface/huggingface_hub](https://github.com/huggingface/huggingface_hub)\n- Agent Skills on the Hub: [https://huggingface.co/docs/hub/agents-skills](https://huggingface.co/docs/hub/agents-skills)\n- Hugging Face Spaces: [https://huggingface.co/spaces](https://huggingface.co/spaces)\n",
  "dateCreated": "2026-10-19T01:26:53.998049939+00:00",
  "date_created": "2026-06-17T00:00:00+00:00",
  "date_modified": "2026-06-17T00:00:00+00:00",
  "date_published": "2026-06-17T00:00:00+00:00",
  "description": "If you build with agents today, you probably know three protocols. MCP gives agents a standard way to call tools. Skills give agents a way of consuming instructions. A2A gives agents a way to call other agents. All three assume the user…",
  "external_url": "https://huggingface.co/blog/agentic-resource-discovery-launch",
  "git": {
    "commit": "ebb0941c5c06a2ab2377342d607535262a3e969e",
    "path": "items/huggingface-co/2026/06/2026-06-17-agentic-resource-discovery-let-agents-search.md",
    "permalink": "https://github.com/aymericbeaumet/aggr-instance/blob/ebb0941c5c06a2ab2377342d607535262a3e969e/items/huggingface-co/2026/06/2026-06-17-agentic-resource-discovery-let-agents-search.md"
  },
  "id": "urn:aggr:item:9cde94d07e882bdc538c886555d8a29826cdab12",
  "isBasedOn": {
    "@id": "https://huggingface.co/blog/agentic-resource-discovery-launch"
  },
  "mainEntity": {
    "@id": "https://huggingface.co/blog/agentic-resource-discovery-launch",
    "@type": "CreativeWork",
    "archivedAt": {
      "@id": "https://aggr.aymericbeaumet.com/items/huggingface-co/2026-06-17-agentic-resource-discovery-let-agents-search/#webpage"
    },
    "dateModified": "2026-06-17T00:00:00+00:00",
    "datePublished": "2026-06-17T00:00:00+00:00",
    "headline": "Agentic Resource Discovery: Let agents search",
    "image": {
      "@type": "ImageObject",
      "caption": null,
      "height": 90,
      "url": "https://huggingface.co/blog/assets/agentic-resource-discovery-launch/thumbnail_.png",
      "width": 160
    },
    "timeRequired": "PT5M",
    "url": "https://huggingface.co/blog/agentic-resource-discovery-launch",
    "wordCount": 1098
  },
  "name": "Archived snapshot: Agentic Resource Discovery: Let agents search",
  "preview": {
    "alt": null,
    "color": null,
    "height": 90,
    "placeholder": {
      "data_url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=",
      "hash": ""
    },
    "url": "https://huggingface.co/blog/assets/agentic-resource-discovery-launch/thumbnail_.png",
    "width": 160
  },
  "reading_minutes": 5,
  "replicated_at": null,
  "source": "huggingface-co",
  "source_name": "Hugging Face - Blog",
  "summary": null,
  "tags": [],
  "temporalCoverage": "2026-10-19T01:26:53.998049939+00:00",
  "title": "Agentic Resource Discovery: Let agents search",
  "url": "https://aggr.aymericbeaumet.com/items/huggingface-co/2026-06-17-agentic-resource-discovery-let-agents-search/",
  "word_count": 1098
}