Declare your domain's agent capabilities in DNS. One TXT record. One JSON file. That's it.
The AgentRoot protocol has three layers. DNS proves ownership. The zone file declares capabilities. The registry indexes everything for search and discovery.
Step 1: Add a TXT record at _agentroot.<your-domain>. It points to a JSON file.
Step 2: The JSON file lists your agent capabilities — agents, MCP servers, skills, A2A endpoints.
Step 3: AgentRoot verifies the DNS record and indexes your zone.
Add a TXT record at _agentroot.<your-domain>:
Two fields. v=ar1 is the protocol version. zone=<url> points to your zone file. For single-record setups, you can skip the zone file entirely with inline mode.
Host a JSON file at https://<domain>/.well-known/agentroot.json. It declares everything your domain offers.
Four built-in types, plus any custom type you want.
| Type | What It Is | Key Fields |
|---|---|---|
| agent | An AI agent that accepts tasks and returns results | endpoint, protocol, capabilities |
| mcp | A Model Context Protocol server exposing tools | endpoint, transport, tools |
| skill | A collection of SKILL.md instruction files | index or skill_md |
| a2a | An Agent-to-Agent protocol endpoint | endpoint, capabilities |
Custom types (e.g., workflow, dataset) use the same base fields. Registries index them; they just won't have type-specific UI.
Trust is built on DNS ownership. Only domain admins can set TXT records, so a valid DNS record proves the domain owner authorized the zone file.
| State | Meaning |
|---|---|
| verified | DNS record found, zone file valid, domain field matches |
| pending | Submitted but not yet checked |
| failed | DNS record missing or zone file invalid |
The registry re-verifies periodically. If DNS goes away, the records go away. URL-submitted records (no DNS) are marked as unverified and cannot override DNS-verified records.
Any tool can discover capabilities directly, no registry needed:
_agentroot.example.com TXT record via DNSA registry like AgentRoot adds search, indexing, CLI install, and an MCP server for AI-native access. But the protocol works without it.