Website Spec
← Agent Readiness
Optional

DNS for AI Discovery (DNS-AID)

Publish SVCB/HTTPS records under _agents.example.com so agents can discover your services from DNS, before any HTTP round-trip. Pair with DNSSEC so the answer is authenticated.

What it is

DNS for AI Discovery (DNS-AID) is a draft IETF proposal that uses the existing SVCB and HTTPS resource records (RFC 9460) under a reserved _agents label to advertise where agents can reach your services. Instead of crawling a homepage to find a Link header or a .well-known/ document, a client makes a single DNS query and gets a typed answer.

The well-known names follow the _<service>._agents.<domain> pattern. Two that the current draft and tooling check for:

| Name | Purpose |

|---|---|

| _index._agents.example.com | General entry point. Points at the canonical site. |

| _mcp._agents.example.com | An MCP server. |

| _a2a._agents.example.com | An A2A (agent-to-agent) endpoint. |

Each record is in ServiceMode (priority ≥ 1), carrying alpn and port parameters at minimum:

_index._agents.example.com.  3600 IN HTTPS 1 example.com.            alpn="h3,h2" port=443
_mcp._agents.example.com.    3600 IN HTTPS 1 mcp.example.com.        alpn="h3,h2" port=443 mandatory="alpn,port"

Why it matters

How to implement

Pick the services to advertise. At minimum: _index._agents. If you run a public MCP server, also _mcp._agents. Add _a2a._agents when you support agent-to-agent endpoints. Don't advertise endpoints you don't actually offer.

Use HTTPS records for HTTPS-based services and SVCB for everything else. Both serialise the same way; HTTPS is the convenience alias for the common case.

Required parameters: alpn (the protocol the client will speak — typically h3,h2 for browser-style HTTPS) and port (almost always 443). The draft recommends including mandatory="alpn,port" on at least one record to signal to clients that those parameters must be understood.

Sign the zone. Without DNSSEC, the discovery answer is unauthenticated and validators will downgrade or fail. Enable DNSSEC at your authoritative DNS, then ensure your registrar publishes the corresponding DS record.

Advertise on the canonical domain, not the platform's vendor subdomain. Records on your-site.netlify.app or your-project.pages.dev don't help agents that already know your real domain.

Implementation, on Cloudflare specifically: create the records as HTTPS type with name _index._agents (Cloudflare auto-appends the zone), priority 1, target the canonical hostname, parameters as above. Enable DNSSEC under DNS settings. See scripts/publish-dns-aid.sh in this repo for the API call.

Common mistakes

Verification

Sources