scanned May 25, 2026

AgentRoot

agentroot.io

AgentRoot is a platform that enables the discovery and installation of agent capabilities via DNS.

98/100

Tier 5 · Agent-Native

Content answers97/100
Protocol plumbing100/10016 of 16 checks pass

Scored by asking 15 questions a buyer of a ai-ml product asks, then grading this site’s own pages: answered, hedged (partial or vague), or silent (no page answers it). How scoring works

This report is public. Own agentroot.io? Claiming is free: crawl every page, re-audit as you fix, and track your score over time.

Sign in to claim

The fix queue

Nothing dead-ends. agentroot.io can back an answer to all 15 buyer questions we asked. This is the bar.

What the pages already answer cleanly

15 of 15. Answered with enough specificity for a buyer to act on. This is the bar the queue above is chasing.

limitsAnswered

We're planning to query the discovery API from our orchestration layer. What are the actual rate limits per tier—specifically, how many requests per minute for free vs. paid plans, and is there a burst allowance?

What the pages say

AgentRoot does not have free or paid API tiers today. All read endpoints, including the legacy `/api/discover` discovery endpoint, share a single IP-based throttle of **1000 req/min per IP** unauthenticated, with a **burst allowance of 100 requests in 10 seconds**. Higher tiers via API keys are planned for v3.1. Write endpoints (`POST /api/submit`) are limited to 60 req/hour per IP regardless of authentication state.

Source: /docs/limits

confidence high · grounding synthesized · weight 0.95 · Answered

securityAnswered

If I rotate my agent's signing key, how long does the old key remain valid for verification purposes? I need to coordinate this with our CI/CD pipeline and can't find the grace period documented anywhere.

What the pages say

AgentRoot does not use signing keys for records itself—DNS is the root of trust. However, if you publish signed payloads (e.g., signed JSON Web Keys at your A2A endpoint), AgentRoot recommends keeping the old key valid for **7 days** after rotating to the new key, so in-flight consumers can complete operations. The documentation notes you can adjust this based on your threat model (e.g., 24 hours for finance/PII flows, 30 days for low-stakes content APIs).

Source: /docs/security

confidence high · grounding stated · weight 1.00 · Answered

technicalAnswered

I'm setting up my first agent and need to know the exact TXT record format for the _agentroot subdomain. Does it require a specific version prefix or can I just paste the JSON capability manifest directly?

What the pages say

The `_agentroot` TXT record must start with the version prefix `v=ar1` (protocol version 1). You cannot paste the JSON capability manifest directly into the TXT record. There are two valid modes: (1) Manifest mode — the TXT record contains `v=ar1 manifest=https://<domain>/.well-known/agentroot.json` and the JSON manifest is hosted at that URL. (2) Inline mode — for a single record, the TXT record contains the fields directly as key=value pairs (e.g., `v=ar1 type=agent name=MyBot endpoint=https://example.com/api`) with no separate JSON manifest file.

Source: /docs/protocol/dns, /docs/protocol/dns, /docs/protocol/dns

confidence high · grounding synthesized · weight 0.95 · Answered

operationsAnswered

Our security team wants to know: how many independent resolver nodes need to confirm a DNS record before an agent shows as 'verified' in your registry? Is it a simple majority or a fixed quorum number?

What the pages say

AgentRoot queries a single recursive resolver in the indexing region (currently `sin1` / `iad1` Vercel functions, falling back to system DNS). It does not perform multi-resolver consensus — if your authoritative DNS returns a valid `_agentroot` TXT record, the record is considered verified. Therefore, it is neither a simple majority nor a fixed quorum; verification relies on one resolver node.

Source: /docs/security

confidence high · grounding stated · weight 1.00 · Answered

technicalAnswered

The /registry API endpoint supports pagination but doesn't document the default page size or maximum allowed limit. I'm building a sync job and need to know if I should expect 20, 100, or 1000 results per request by default.

What the pages say

The registry API endpoints default to 20 items per page and enforce a maximum limit of 100 items per request.

Source: /docs/api, /openapi.yaml

confidence high · grounding stated · weight 1.00 · Answered

integrationAnswered

The docs mention 'reasonable TTL values' but what's the actual recommended TTL for agent capability records? We're balancing update frequency against resolver cache performance and need a concrete number.

What the pages say

The recommended default TTL for stable production is 3600 seconds (1 hour). If you are actively iterating on records, use 300 seconds (5 min); for long-term stable records that rarely change, use 86400 seconds (24 hours). AgentRoot's resolver re-queries DNS on every search request, so a low TTL costs you nothing in performance on AgentRoot's side — it only means downstream caches (other AI agents, DNS resolvers) will see your changes faster.

Source: /docs/protocol/dns, /docs/protocol/dns

confidence high · grounding synthesized · weight 0.95 · Answered

securityAnswered

To prove domain ownership for agent registration, do you require a specific DNS challenge record or is uploading a file to .well-known sufficient? The docs mention both methods but don't clarify which takes precedence or if both are required.

What the pages say

A DNS TXT record at `_agentroot.<domain>` is always required to prove domain ownership; uploading a file to `.well-known` is never sufficient by itself. The `.well-known/agentroot.json` file is only required when using manifest mode, where the DNS record points to it via `manifest=<url>`. In inline mode, the TXT record contains all fields directly and no `.well-known` file is needed. The DNS record takes precedence as the root of trust — the manifest is trusted only because the DNS record points to it — and domain ownership is provable only via DNS with no email or file-upload alternative.

Source: /docs/protocol/dns, /docs/protocol/dns, /docs/protocol/dns, /docs/security

confidence high · grounding synthesized · weight 0.95 · Answered

technicalAnswered

I see references to both v1 and v2 capability schemas in the protocol docs. Is v2 fully backward compatible, and what's the deprecation timeline for v1? We have agents deployed that I don't want to break.

What the pages say

AgentRoot's protocol docs state that v2 (`ar2`) does not currently exist or is in active development. When v2 is introduced, the resolver will accept both v1 (`ar1`) and v2 records concurrently for at least 12 months from the v2 launch date. During the overlap, mixed deployments are supported, and `ar1` records published today will continue to be valid until that 12-month overlap ends. The docs explicitly state: 'We do not break `ar1` before then.'

Source: /docs/protocol/versions

confidence high · grounding stated · weight 1.00 · Answered

operationsAnswered

After hitting 'Publish your zone', what's the typical propagation time before my agent appears in the global registry? The UI shows a spinner but doesn't give me an ETA or timeout threshold.

What the pages say

Most agents appear in the global registry within 2–3 minutes of submission, assuming the `_agentroot` DNS TXT record is already propagated. The breakdown is: DNS verification within ~30 seconds, manifest fetch 1–2 minutes, and search indexing 1–2 minutes. If you just added the TXT record, DNS propagation itself can take anywhere from 15 seconds to 24 hours depending on your provider’s TTL (the DNS docs note 1–5 minutes is typical, but it can take up to 48 hours). The site also gives a practical timeout threshold: if your domain isn’t appearing after 5 minutes, verify the DNS record with `dig`, check the manifest URL returns valid JSON, and re-submit via `POST /api/submit` to trigger immediate re-verification.

Source: /publish, /publish, /docs/protocol/dns

confidence high · grounding synthesized · weight 0.95 · Answered

technicalAnswered

When I install a skill using 'npx agent-root install-skill', does it register globally for my entire domain or just for the specific agent subdomain I'm running it from? The behavior seems inconsistent across our environments.

What the pages say

Installing a skill installs it to your local environment and applies across all AI tools on that machine—it is neither registered globally for your entire domain nor scoped to a specific agent. The install-skill page states it installs skills ‘to your local environment for use with Claude Code, Codex CLI, Gemini CLI, Cursor, or any agent platform’ (chunk [2]), and the manifest describes list-installed as listing ‘all AgentRoot records installed on this machine across all AI tools’ (chunk [6]), indicating the scope is per-machine and spans all agents.

Source: /skills/agentroot.io/install-skill, /manifest/agentroot.io

confidence medium · grounding synthesized · weight 0.90 · Answered

integrationAnswered

For the registry webhook notifications, what's the retry policy if my endpoint is down? Is it at-least-once delivery with exponential backoff, and what's the maximum retry window before you give up?

What the pages say

AgentRoot does not currently emit outbound webhooks; the registry is read-only and consumers must poll `/api/discover` or use MCP tools. Webhook delivery is planned for v3.1. When it ships, the contract will be: at-least-once delivery (consumers must handle duplicates via the `event_id` header); exponential backoff retries at 1 minute, 5 minutes, 25 minutes, 2 hours, 8 hours, and 24 hours; delivery is marked failed after 6 retries and logged to the `webhook_delivery_log` table, with the next event resuming delivery attempts.

Source: /docs/limits

confidence high · grounding stated · weight 1.00 · Answered

securityAnswered

When two agents discover each other through your platform, is mutual TLS automatically enforced or do I need to implement my own authentication layer? The protocol mentions 'verified identities' but not the transport security model.

What the pages say

AgentRoot does NOT enforce mutual TLS for A2A endpoints. The platform treats A2A endpoints as opaque URLs published by the domain owner, and the protocol used at that endpoint—including auth, mTLS, signed requests, or JWT—is the responsibility of the endpoint operator. If your use case requires mTLS, you must configure your own endpoint to require client certs and document the auth requirement in your manifest's `auth` field.

Source: /docs/security

confidence high · grounding stated · weight 1.00 · Answered

operationsAnswered

If my agent's DNS record stays unchanged for 90 days, will it be automatically delisted from the registry? I need to know the inactivity threshold so I can set up health check pings if necessary.

What the pages say

No. The 90-day threshold applies only to records that have **failed DNS verification** for 90 consecutive days. After 90 days of consecutive failed verification, a record is treated as abandoned—it remains in the database with `status: 'failed'` but is excluded from default search results. If your DNS record is valid and simply stays unchanged, AgentRoot automatically re-verifies it every ~6 hours, so it stays active and you do not need to set up health check pings.

Source: /docs/registry/lifecycle, /docs/registry/lifecycle

confidence high · grounding synthesized · weight 0.95 · Answered

technicalAnswered

If two installed skills declare conflicting dependencies on different versions of the same underlying capability, how does the resolver handle it? Is there a semver precedence rule or does it fail fast with an error?

What the pages say

AgentRoot does not resolve such conflicts. The docs state that "AgentRoot is a registry, not a dependency resolver." When two installed skills declare different requirements on the same underlying capability, "the host runtime — Claude Code, Cursor, your own agent — is responsible for resolving that, not AgentRoot." There is no semver precedence rule at the protocol level, and there is no fail-fast error from the registry when two records overlap.

Source: /docs/limits

confidence high · grounding stated · weight 1.00 · Answered

technicalAnswered

The discover-skills command accepts a --filter flag, but what's the actual query syntax? Can I filter by capability type, author domain, or semantic tags? The help text just says 'filter expression' without examples.

What the pages say

There is no standalone `discover-skills` CLI binary, and no `--filter` flag is documented. Discovery is done via `agent-root search` and `agent-root resolve`. The CLI only supports `--type` for filtering by record type (`agent`, `mcp`, `skill`, `a2a`, `payment`), accepting a single value per call. Filtering by capability substring, author domain, or semantic tags is not available as a CLI flag today. To filter by those dimensions, use the REST endpoint `GET /api/records?q=&type=&capability=&domain=` directly, or pipe `--json` output through `jq`. The REST API parameters include `capability` (substring match on record capabilities) and `domain` (substring filter on manifest domain).

Source: /docs/tools, /docs/api

confidence high · grounding synthesized · weight 0.95 · Answered

Protocol plumbing · 100/10016 of 16 checks pass

The other half of the score: 16 checks for the files and headers agents look for. All installed. None of them changes what your pages say.

Already passing 16 of 16: robots.txt, sitemap.xml, llms.txt, AI crawler access, Content signal, Clean crawl, Markdown negotiation, Server-rendered content, MCP card, OpenAPI spec, WebMCP widget, Canonical URLs, Meta descriptions, HTML lang attribute, Organization schema, Sitemap lastmod.

Ask this site’s index

Sitedex already serves agentroot.io as an MCP endpoint. Ask agentroot.io anything an AI agent might ask, and see what its index returns. (To score your own site, use the form below.)

Snippets & configs

For developers and the engineer-on-call: copy these into your tools or your site.

Files from this audit

Built from this crawl. Download or copy each, then install it at the path noted.

llms.txt

Built from this crawl. Install at /llms.txt so agents start here.

organization.json

Organization JSON-LD, pre-filled from this crawl. Wrap in a ld+json script.

server-card.json

MCP server card built from this crawl. Host at /.well-known/mcp/server-card.json.

webmcp.json

WebMCP discovery manifest built from this crawl. Host at /.well-known/webmcp.json.

MCP endpoint

https://mcp.sitedex.dev/s/agentroot-io/mcp

The URL anyone's agent points at. Read-only; safe to share.

Claude Code

claude mcp add agentroot --transport http https://mcp.sitedex.dev/s/agentroot-io/mcp

One command, then the agent has it.

Cursor / Continue

{
  "mcpServers": {
    "agentroot": {
      "url": "https://mcp.sitedex.dev/s/agentroot-io/mcp"
    }
  }
}

Drop into mcp.json.

WebMCP: two parts

WebMCP-capable browsers run the widget at runtime. Crawlers without JS rendering need the discovery manifest to find your tool surface. Install both.

1 · Widget script

<script async src="https://sitedex.dev/widget.js"></script>

Drop in <head>. WebMCP-capable browsers (Chrome 146+ Origin Trial) call navigator.modelContext.provideContext() via this script.

2 · Discovery manifest

{
  "$schema": "https://wellknownmcp.org/schemas/webmcp.json",
  "name": "agentroot.io",
  "tools": [
    { "name": "search", "description": "Search agentroot.io's indexed content." },
    { "name": "get_page", "description": "Fetch a page from agentroot.io as markdown." }
  ]
}

Host alongside the script at /.well-known/webmcp.json. Crawlers that don't render JS rely on this.

Your turn

See which of these questions your site goes silent on.

Free, about 5 minutes. We crawl your site, test it against the buyer questions your category asks, and name what’s vague, contradictory, or missing, plus the files AI agents look for.

ComingEmbeddable grade badgeScore history and deltasOpt-in public board