---
title: "Keep one catalogue of agent tools · Agent Wranglers"
url: https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/agentic-resource-discovery
id: AGT-65
level: Optional
updated: 2026-10-27
build: a2a6bdfed830
tokens: 819
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Keep one catalogue of agent tools

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Ready for AI agents](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers.md). Updated 2026-10-27.

- ID: AGT-65
- Level: Optional
- Chapter: [Ready for AI agents](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents.md)
- Rule: List your MCP servers, agents and skills in `/.well-known/ai-catalog.json`. Link it from every page.
- Check: The catalog parses as JSON. Every entry's URL answers 200 with the media type named in its `type`. Every page has the `rel="ai-catalog"` link.
- Review by: 2027-04-30
- How: Experimental. This rests on a draft or a proposal, not a standard, so recheck it by the review date. Serve an AI Catalog as `application/ai-catalog+json` with `specVersion` and `entries`. Give each entry an `identifier`, a `type` (the media type of what it points to) and a `url`. Leave out an entry's `displayName` when the card it points to has its own name. Link it with `rel="ai-catalog"`. The format is a draft from the A2A and MCP communities, under the Linux Foundation. For an API, also follow [Make the API easy for agents to find](https://agentwranglers.se/playbook/api-design/contracts-and-docs/agent-discovery.md).

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### JSON example

```json
{
  "specVersion": "1.0",
  "host": { "displayName": "Example Co.", "identifier": "example.com" },
  "entries": [
    {
      "identifier": "urn:air:example.com:mcp:bookings",
      "type": "application/mcp-server-card+json",
      "url": "https://example.com/mcp/server-card"
    },
    {
      "identifier": "urn:air:example.com:a2a:helper",
      "type": "application/a2a-agent-card+json",
      "url": "https://example.com/.well-known/agent-card.json"
    }
  ]
}
```

### HTML example

```html
<link rel="ai-catalog" href="/.well-known/ai-catalog.json">
```

## Related rules

- AGT-62 [Publish an agent card](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/a2a-agent-cards.md) in Agents as users
- API-49 [Make the API easy for agents to find](https://agentwranglers.se/playbook/api-design/contracts-and-docs/agent-discovery.md) in API design

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/agentic-resource-discovery">Agent Wranglers agents as users playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [List agent endpoints in DNS](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/dns-aid.md)
- Next: [Answer questions from your own pages](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents/nlweb.md)
- [Ready for AI agents](https://agentwranglers.se/playbook/agents-as-users/ready-for-ai-agents.md)
