<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-morrison-mcp-dns-discovery-01" category="info" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="MCP DNS Discovery">Discovery of Model Context Protocol Servers via DNS TXT Records</title>
    <seriesInfo name="Internet-Draft" value="draft-morrison-mcp-dns-discovery-01"/>
    <author fullname="Blake Morrison">
      <organization>Alter Meridian Pty Ltd</organization>
      <address>
        <postal>
          <city>Cronulla, NSW</city>
          <country>Australia</country>
        </postal>
        <email>blake@truealter.com</email>
      </address>
    </author>
    <date year="2026" month="April"/>
    <abstract>
      <?line 67?>

<t>This document defines a DNS-based mechanism for the discovery of
Model Context Protocol (MCP) servers.  A TXT resource record
published at the underscore-prefixed label <tt>_mcp.&lt;domain&gt;</tt> advertises
the presence, endpoint URL, transport protocol, cryptographic
identity, and capability profile of an MCP server associated with a
domain name.  The mechanism complements existing HTTPS-based discovery
(<tt>.well-known/mcp/server-card.json</tt>) by providing a lightweight,
resolver-cached bootstrap that requires no HTTPS round-trip.  The
design follows the precedent established by DKIM <xref target="RFC6376"/>, SPF
<xref target="RFC7208"/>, DMARC <xref target="RFC7489"/>, and MTA-STS <xref target="RFC8461"/>, all of which use
DNS TXT records at underscore-prefixed labels to advertise
domain-scoped policy and service metadata.</t>
    </abstract>
  </front>
  <middle>
    <?line 82?>

<section anchor="status-of-this-memo">
      <name>Status of This Memo</name>
      <t>This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.</t>
      <t>Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF).  Note that other groups may also distribute
working documents as Internet-Drafts.  The list of current
Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.</t>
      <t>Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time.  It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."</t>
      <t>This Internet-Draft will expire on October 7, 2026.</t>
    </section>
    <section anchor="copyright-notice">
      <name>Copyright Notice</name>
      <t>Copyright (c) 2026 IETF Trust and the persons identified as the
document authors.  All rights reserved.</t>
      <t>This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document.  Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document.</t>
    </section>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Model Context Protocol (MCP) <xref target="MCP"/> is an open protocol for
structured interaction between AI agents and tool-providing servers.
An MCP client that wishes to invoke tools, access resources, or
issue prompts against a server must first discover the server's
endpoint URL, transport, and authentication requirements.  As of
April 2026, MCP clients discover servers through three mechanisms:
manual configuration (the user pastes a URL), registry lookup
(centralized catalogues of known servers), and HTTPS-based endpoint
discovery via <tt>.well-known/mcp/server-card.json</tt> as proposed in
MCP SEP-1649 <xref target="SEP-1649"/> and SEP-1960 <xref target="SEP-1960"/>.</t>
      <t>None of these mechanisms satisfies the emerging requirement that any
domain on the public internet may host an MCP server and that any
MCP client may discover that server without prior knowledge or
manual configuration.  Manual configuration does not scale.  Registry
lookup introduces a centralized intermediary.  HTTPS-based discovery
requires an HTTPS round-trip to every candidate domain before the
client knows whether an MCP server exists there at all.</t>
      <t>DNS provides a natural solution.  The DNS is the internet's
universal, decentralized, cached name-resolution layer.  Every
internet-connected client already has a DNS resolver.  DNS TXT
records at underscore-prefixed labels are the established convention
for advertising domain-scoped service metadata, with successful
precedents spanning two decades:</t>
      <ul spacing="normal">
        <li>
          <t>DKIM <xref target="RFC6376"/> publishes Ed25519/RSA public keys at
<tt>&lt;selector&gt;._domainkey.&lt;domain&gt;</tt> for email authentication.</t>
        </li>
        <li>
          <t>SPF <xref target="RFC7208"/> publishes sender policy at the domain apex.</t>
        </li>
        <li>
          <t>DMARC <xref target="RFC7489"/> publishes alignment and reporting policy at
<tt>_dmarc.&lt;domain&gt;</tt>.</t>
        </li>
        <li>
          <t>MTA-STS <xref target="RFC8461"/> publishes mail transport security policy at
<tt>_mta-sts.&lt;domain&gt;</tt>, with a split design: DNS advertises
presence and a policy identifier; HTTPS carries the full policy.</t>
        </li>
      </ul>
      <t>This document proposes an analogous mechanism for MCP.  A TXT
resource record at <tt>_mcp.&lt;domain&gt;</tt> advertises the minimum
information a client needs to bootstrap an MCP session: the
endpoint URL and protocol version.  Optional fields declare the
transport protocol, a cryptographic public key for endpoint
pinning, an epoch counter for key rotation, capability hints,
attestation scope, and priority for multi-server failover.</t>
      <t>The design deliberately splits responsibility between DNS and HTTPS.
DNS advertises presence, endpoint location, and transport metadata.
HTTPS (via the Server Card defined in SEP-1649 <xref target="SEP-1649"/>) carries
the full capability manifest.  This split mirrors MTA-STS and avoids
both the 255-byte TXT record stuffing anti-pattern and the
performance penalty of an HTTPS round-trip for every discovery
attempt.</t>
      <t>The mechanism is general.  It applies to any MCP server: tool
providers, resource servers, identity endpoints, prompt libraries,
and any future MCP primitive.  It does not prescribe the semantics
of the tools or resources behind the endpoint.  A domain that
publishes <tt>_mcp.&lt;domain&gt;</tt> declares only that an MCP server exists
and where to find it.</t>
      <t>The DNS-based discovery mechanism defined in this document operates
at the transport and endpoint layer of a broader identity
infrastructure.  Recent theoretical work <xref target="MORRISON-IFT"/> establishes
that discrete authentication events -- including DNS-advertised
credential records and endpoint attestations -- are a special case
of a continuous identity field maintained across the social-spatial
manifold: formally, the maximum-entropy field consistent with the
point-in-time observations that checkpoint mechanisms provide.
This framing motivates several design choices in this document.
The <tt>epoch</tt> field encodes temporal position in a continuous field,
not a version counter for a static credential.  The <tt>scope</tt> field
encodes gauge restriction -- the set of identity dimensions exposed
at this endpoint -- whose formal properties are specified by the
consent architecture of the deploying identity infrastructure.
Implementations that treat these fields as optional metadata
underutilise the protocol's expressive capacity.</t>
      <t>The approach is deliberately conservative.  A dedicated DNS resource
record type (e.g., a hypothetical "MCP" RR type) was considered and
rejected.  SPF registered a dedicated RR type (type 99) in 2006;
it was formally deprecated in <xref target="RFC7208"/> because no DNS software
ecosystem adopted it.  Matrix's reliance on SRV records
(<tt>_matrix._tcp.&lt;domain&gt;</tt>) has proven problematic for CDN-fronted
deployments, prompting active proposals to remove SRV entirely.
TXT records at underscore-prefixed labels are the only DNS-based
service advertisement mechanism that is universally supported by
authoritative servers, recursive resolvers, CDN-fronted domains,
and DNS management interfaces as of 2026.</t>
      <t>The HTTPS RR type defined in <xref target="RFC9460"/> is a promising future
direction but does not yet enjoy universal resolver support or
management UI exposure.  This document does not preclude a future
HTTPS RR-based alternative; it establishes the TXT-based mechanism
as the baseline for immediate deployment.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY",
and "OPTIONAL" in this document are to be interpreted as described
in BCP 14 <xref target="RFC8174">RFC2119</xref> when, and only when, they appear in
all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <dl>
        <dt>MCP</dt>
        <dd>
          <t>Model Context Protocol, as specified by the Agentic AI Foundation
<xref target="MCP"/>.</t>
        </dd>
        <dt>Discovery Record</dt>
        <dd>
          <t>A DNS TXT resource record published at the <tt>_mcp</tt> label under a
Policy Domain, conforming to the syntax defined in Section 3.</t>
        </dd>
        <dt>Server Card</dt>
        <dd>
          <t>A JSON metadata document served at
<tt>.well-known/mcp/server-card.json</tt> per MCP SEP-1649 <xref target="SEP-1649"/>,
describing the full capabilities and authentication requirements
of an MCP server.</t>
        </dd>
        <dt>Policy Domain</dt>
        <dd>
          <t>The domain name under which a Discovery Record is published.
For the record <tt>_mcp.example.com</tt>, the Policy Domain is
<tt>example.com</tt>.</t>
        </dd>
        <dt>Origin Domain</dt>
        <dd>
          <t>The domain name extracted from an identifier (email address, URL,
handle, or similar) that triggers the discovery procedure.</t>
        </dd>
        <dt>Epoch</dt>
        <dd>
          <t>A monotonic non-negative integer published in the Discovery Record
that increments on every key rotation event.  Used to bind
signed claims to a specific key generation and to enable
epoch-based revocation.</t>
        </dd>
        <dt>Attestation Scope</dt>
        <dd>
          <t>The set of claim types that an MCP server declares it is
authorized to issue, published via the <tt>attest</tt> field.</t>
        </dd>
      </dl>
    </section>
    <section anchor="record-format">
      <name>Record Format</name>
      <section anchor="dns-location">
        <name>DNS Location</name>
        <t>The Discovery Record is a DNS TXT resource record <xref target="RFC1035"/>
published at the label <tt>_mcp</tt> prepended to the Policy Domain:</t>
        <t><tt>
_mcp.&lt;policy-domain&gt;. IN TXT "&lt;record-value&gt;"
</tt></t>
        <t>The underscore prefix conforms to the conventions established in
<xref target="RFC8552"/> for globally scoped, underscore-prefixed DNS node names.</t>
        <t>Multiple TXT resource records MAY be published at the same DNS
name.  When multiple records exist, each MUST independently conform
to the syntax defined in this section.  Clients MUST evaluate all
returned records and select among them using the <tt>priority</tt> field
as described below.</t>
      </section>
      <section anchor="abnf-grammar">
        <name>ABNF Grammar</name>
        <t>The record value is a semicolon-delimited sequence of key-value
pairs.  The following ABNF [RFC5234] defines the syntax:</t>
        <t>```
mcp-record    = version *( ";" SP field )
version       = "v=mcp1"
field         = url-field / proto-field / pk-field /
                epoch-field / cap-field / attest-field /
                scope-field / priority-field / ttl-field /
                ext-field / unknown-field</t>
        <t>url-field     = "url=" https-uri
proto-field   = "proto=" proto-value
pk-field      = "pk=" algo ":" base64url
epoch-field   = "epoch=" 1<em>DIGIT
cap-field     = "cap=" cap-csv
attest-field  = "attest=" attest-csv
scope-field   = "scope=" scope-csv
priority-field = "priority=" 1</em>DIGIT
ttl-field     = "ttl=" 1*DIGIT
ext-field     = "ext=" https-uri
unknown-field = token "=" *VCHAR</t>
        <t>https-uri     = "https://" <em>VCHAR
algo          = "ed25519"
base64url     = 1</em>( ALPHA / DIGIT / "-" / "<em>" )
proto-value   = "streamable-http" / "sse" / "stdio-url" /
                token
cap-csv       = cap-token *( "," cap-token )
cap-token     = token
attest-csv    = attest-token *( "," attest-token )
attest-token  = token
scope-csv     = scope-token *( "," scope-token )
scope-token   = "tools" / "resources" / "prompts" /
                "sampling" / "identity" / token
token         = 1*( ALPHA / DIGIT / "-" / "</em>" )
```</t>
      </section>
      <section anchor="field-definitions">
        <name>Field Definitions</name>
        <section anchor="v-required">
          <name>v (REQUIRED)</name>
          <t>Protocol version identifier.  MUST be the literal string <tt>mcp1</tt>.
MUST appear as the first field in the record.  Clients MUST reject
any record whose <tt>v</tt> field is absent, is not the first field, or
contains a value other than <tt>mcp1</tt>.</t>
          <t>This version gate enables future incompatible revisions of the
record format.  A future version <tt>mcp2</tt> would indicate breaking
changes to field semantics or discovery flow.</t>
        </section>
        <section anchor="url-required">
          <name>url (REQUIRED)</name>
          <t>The HTTPS URL of the MCP server endpoint.  MUST use the <tt>https</tt>
scheme.  MUST be a syntactically valid URI per RFC 3986.  This is
the entry point for MCP session establishment.</t>
          <t>Clients MUST NOT attempt to connect to URLs using schemes other
than <tt>https</tt>.  Servers MUST present a valid TLS certificate for
the hostname in the URL.</t>
        </section>
        <section anchor="proto-optional">
          <name>proto (OPTIONAL)</name>
          <t>The transport protocol used by the MCP server.  Default value:
<tt>streamable-http</tt>.  Defined values:</t>
          <ul spacing="normal">
            <li>
              <t><tt>streamable-http</tt> -- HTTP-based streaming transport (default).</t>
            </li>
            <li>
              <t><tt>sse</tt> -- Server-Sent Events transport.</t>
            </li>
            <li>
              <t><tt>stdio-url</tt> -- URL pointing to a signed launch descriptor for
a stdio-based server (descriptor format out of scope).</t>
            </li>
          </ul>
          <t>Implementations SHOULD support at least <tt>streamable-http</tt>.
Unknown values MUST cause the client to skip this record and
proceed to the next record by priority, or to HTTPS fallback.</t>
        </section>
        <section anchor="pk-optional">
          <name>pk (OPTIONAL)</name>
          <t>Ed25519 public key for endpoint verification, encoded as
<tt>ed25519:&lt;base64url&gt;</tt> where <tt>&lt;base64url&gt;</tt> is the raw 32-byte
public key encoded per <xref target="RFC4648"/> Section 5, without padding.</t>
          <t>When present, the <tt>pk</tt> field provides a cryptographic binding
between the DNS record and the MCP server.  Clients MUST verify
that the key matches at least one of the following:</t>
          <ol spacing="normal" type="1"><li>
              <t>A key in the server's TLS certificate SubjectPublicKeyInfo.</t>
            </li>
            <li>
              <t>The signing key used in HTTP Message Signatures <xref target="RFC9421"/> on
MCP responses.</t>
            </li>
            <li>
              <t>The key declared in the Server Card <xref target="SEP-1649"/> served by the
endpoint.</t>
            </li>
          </ol>
          <t>If verification fails, the client MUST treat the server as
untrusted and SHOULD NOT proceed with the MCP session.</t>
        </section>
        <section anchor="epoch-optional">
          <name>epoch (OPTIONAL)</name>
          <t>A monotonic non-negative integer that increments on every key
rotation.  Default value: <tt>0</tt>.</t>
          <t>Signed claims or attestations issued by the MCP server carry a key
identifier (kid) of the form <tt>&lt;algo&gt;:&lt;pk&gt;#&lt;epoch&gt;</tt>.  Verifiers
resolve the Discovery Record, extract the current epoch, and apply
the following rules:</t>
          <ul spacing="normal">
            <li>
              <t>Claims with <tt>epoch == current</tt> are valid (subject to temporal
checks).</t>
            </li>
            <li>
              <t>Claims with <tt>epoch &lt; current</tt> are revoked unless the claim's
expiry timestamp predates the rotation event.</t>
            </li>
            <li>
              <t>Claims with <tt>epoch &gt; current</tt> MUST be rejected as either
forgeries or evidence of a stale verifier DNS cache.</t>
            </li>
          </ul>
          <t>The epoch field enables epoch-based revocation without external
Certificate Revocation Lists (CRLs) or Online Certificate Status
Protocol (OCSP) infrastructure.  Incrementing the epoch revokes
all outstanding claims issued under prior epochs, subject to the
grace period defined by each claim's expiry.</t>
        </section>
        <section anchor="cap-optional">
          <name>cap (OPTIONAL)</name>
          <t>Capability tier advertised by the server, expressed as a
comma-separated list of tokens.  This field provides a coarse hint
to clients about the functional scope of the server.</t>
          <t>No normative semantics are defined for specific capability values
in this document.  Protocol extensions MAY define capability tokens
and their semantics.  Clients that do not recognize a capability
token MUST ignore it.</t>
        </section>
        <section anchor="attest-optional">
          <name>attest (OPTIONAL)</name>
          <t>A comma-separated list of attestation types that the MCP server
declares it is authorized to issue.  The value enumerates claim
types that downstream verifiers will accept from this issuer.</t>
          <t>Defined values (extensible):</t>
          <ul spacing="normal">
            <li>
              <t><tt>employ</tt> -- Current employment affiliation.</t>
            </li>
            <li>
              <t><tt>contract</tt> -- Contractual or freelance engagement.</t>
            </li>
            <li>
              <t><tt>alumnus</tt> -- Former affiliation.</t>
            </li>
            <li>
              <t><tt>director</tt> -- Board or directorial role.</t>
            </li>
            <li>
              <t><tt>member</tt> -- Generic membership (professional body, association).</t>
            </li>
            <li>
              <t><tt>contrib</tt> -- Verified contribution without formal affiliation.</t>
            </li>
          </ul>
          <t>Verifiers MUST reject any attestation claim whose type is not
present in the issuer's <tt>attest</tt> field.  This provides a
structural defense against capability creep: the domain's
published attestation scope is the upper bound on what its
claims can assert.</t>
          <t>Forward compatibility: unknown attestation values MUST be ignored,
not rejected.  A verifier encountering <tt>attest=employ,fellow</tt>
where <tt>fellow</tt> is undefined treats the record as
<tt>attest=employ</tt> and proceeds.</t>
        </section>
        <section anchor="scope-optional">
          <name>scope (OPTIONAL)</name>
          <t>Comma-separated list of MCP primitives supported by the server.
Defined values:</t>
          <ul spacing="normal">
            <li>
              <t><tt>tools</tt> -- The server exposes callable tools.</t>
            </li>
            <li>
              <t><tt>resources</tt> -- The server exposes readable resources.</t>
            </li>
            <li>
              <t><tt>prompts</tt> -- The server exposes prompt templates.</t>
            </li>
            <li>
              <t><tt>sampling</tt> -- The server supports LLM sampling requests.</t>
            </li>
            <li>
              <t><tt>identity</tt> -- The server supports identity resolution queries.</t>
            </li>
          </ul>
          <t>Unknown values MUST be ignored.  This field is advisory; the
authoritative capability set is declared during the MCP
<tt>initialize</tt> handshake.</t>
        </section>
        <section anchor="priority-optional">
          <name>priority (OPTIONAL)</name>
          <t>A non-negative integer.  Default value: <tt>10</tt>.  When multiple
Discovery Records exist at the same DNS name, clients MUST sort
records by <tt>priority</tt> in ascending order and attempt connection
to lower-valued records first.</t>
          <t>This field enables multi-server failover without external load
balancing.  If connection to the highest-priority server fails,
the client proceeds to the next record.</t>
        </section>
        <section anchor="ttl-optional">
          <name>ttl (OPTIONAL)</name>
          <t>Advisory TTL in seconds for client-side caching of the parsed
Discovery Record metadata.  Clients MAY use this value to avoid
repeated DNS lookups when the DNS TTL is shorter than desired.
The DNS TTL itself remains authoritative for cache expiry of the
raw DNS response; the <tt>ttl</tt> field applies to post-parse metadata
caching only.</t>
        </section>
        <section anchor="ext-optional">
          <name>ext (OPTIONAL)</name>
          <t>An HTTPS URL pointing to a protocol-extension document.  The
format and semantics of the extension document are defined by
the protocol extension, not by this specification.</t>
          <t>This field enables protocol-specific extensions (identity
protocols, payment protocols, agent-to-agent negotiation) to
attach additional metadata without consuming space in the DNS
TXT record.  The extension document MUST be served over HTTPS.
Clients that do not recognize or support the extension MUST
ignore this field.</t>
        </section>
      </section>
      <section anchor="forward-compatibility">
        <name>Forward Compatibility</name>
        <t>Implementations MUST ignore unknown fields.  A parser encountering
a field name that it does not recognize MUST skip that field and
continue parsing the remaining fields.  This rule ensures that
future extensions to the record format do not break existing
implementations.</t>
        <t>Breaking changes to the semantics of existing fields require a
version bump (e.g., <tt>v=mcp2</tt>).</t>
      </section>
      <section anchor="multi-string-concatenation">
        <name>Multi-String Concatenation</name>
        <t>DNS TXT resource records are limited to 255 bytes per
character-string <xref target="RFC1035"/>.  When a Discovery Record exceeds 255
bytes, the record MUST be split across multiple character-strings
within a single TXT RDATA, which the DNS resolver concatenates
per <xref target="RFC7208"/> Section 3.3.</t>
        <t>Example of a multi-string record:</t>
        <t><tt>
_mcp.example.com. IN TXT (
  "v=mcp1; url=https://mcp.example.com; "
  "pk=ed25519:LongBase64UrlEncodedPublicKeyValueHere; "
  "epoch=3; attest=employ,contract,alumnus; scope=tools,identity"
)
</tt></t>
        <t>Parsers MUST concatenate all character-strings within a single TXT
RDATA before parsing the semicolon-delimited fields.  Parsers
MUST NOT treat each character-string as an independent record.</t>
      </section>
    </section>
    <section anchor="discovery-procedure">
      <name>Discovery Procedure</name>
      <t>This section defines the step-by-step algorithm that an MCP client
follows to discover an MCP server associated with a given domain.</t>
      <section anchor="input">
        <name>Input</name>
        <t>The procedure takes a single input: an Origin Domain.  The Origin
Domain is typically extracted from an identifier encountered during
agent operation -- an email address (<tt>user@example.com</tt> yields
<tt>example.com</tt>), a URL (<tt>https://example.com/path</tt> yields
<tt>example.com</tt>), a handle (<tt>~user@example.com</tt> yields
<tt>example.com</tt>), or a bare domain.</t>
      </section>
      <section anchor="algorithm">
        <name>Algorithm</name>
        <ol spacing="normal" type="1"><li>
            <t><strong>Normalize.</strong>  Convert the Origin Domain to its canonical form:
lowercase per [RFC4343], apply IDNA2008 processing where the
domain contains non-ASCII labels.</t>
          </li>
          <li>
            <t><strong>Construct query name.</strong>  Prepend the label <tt>_mcp.</tt> to the
normalized Origin Domain, yielding <tt>_mcp.&lt;origin&gt;.</tt>.</t>
          </li>
          <li>
            <t><strong>Query DNS.</strong>  Issue a DNS query for <tt>_mcp.&lt;origin&gt;. IN TXT</tt>
via the client's configured recursive resolver.  Clients
SHOULD prefer DNS-over-HTTPS (DoH) or DNS-over-TLS (DoT) to
protect query privacy (see Section 6).</t>
          </li>
          <li>
            <t><strong>Handle DNS response.</strong>  </t>
            <t>
a. If the response is NOERROR with one or more TXT records,
   proceed to step 5.  </t>
            <t>
b. If the response is NXDOMAIN or NOERROR with zero TXT
   records, proceed to step 8 (HTTPS fallback).  </t>
            <t>
c. If the response is SERVFAIL or the query times out, the
   client MAY retry with exponential backoff or proceed to
   step 8.</t>
          </li>
          <li>
            <t><strong>Parse records.</strong>  For each TXT RDATA in the response:  </t>
            <t>
a. Concatenate all character-strings within the RDATA.  </t>
            <t>
b. Split the concatenated string on the <tt>";"</tt> delimiter,
   trimming leading and trailing whitespace from each field.  </t>
            <t>
c. Verify that the first field is <tt>v=mcp1</tt>.  If not, discard
   this record.  </t>
            <t>
d. Extract all recognized fields.  Ignore unknown fields per
   Section 3.7.  </t>
            <t>
e. Verify that the <tt>url</tt> field is present and contains a
   syntactically valid HTTPS URL.  If not, discard this
   record.</t>
          </li>
          <li>
            <t><strong>Sort by priority.</strong>  Collect all valid records.  Sort by
<tt>priority</tt> in ascending order (lowest value first).  Records
with equal priority MAY be tried in any order.</t>
          </li>
          <li>
            <t><strong>Connect.</strong>  For each record in priority order:  </t>
            <t>
a. Establish a TLS connection to the host in the <tt>url</tt> field.  </t>
            <t>
b. If the record contains a <tt>pk</tt> field, verify the key per
   Section 3.3.4.  On failure, skip to the next record.  </t>
            <t>
c. Initiate the MCP session using the transport declared in
   <tt>proto</tt> (defaulting to <tt>streamable-http</tt>).  </t>
            <t>
d. If the MCP <tt>initialize</tt> handshake succeeds, discovery is
   complete.  </t>
            <t>
e. If connection or handshake fails, proceed to the next
   record.  If all records are exhausted, proceed to step 8.</t>
          </li>
          <li>
            <t><strong>HTTPS fallback.</strong>  Attempt HTTPS-based discovery by fetching
<tt>https://&lt;origin&gt;/.well-known/mcp/server-card.json</tt> per
SEP-1649 <xref target="SEP-1649"/>, or <tt>https://&lt;origin&gt;/.well-known/mcp</tt>
per SEP-1960 <xref target="SEP-1960"/>.  If fallback succeeds, proceed with
the MCP session.  If fallback fails, discovery has failed.</t>
          </li>
        </ol>
      </section>
      <section anchor="caching">
        <name>Caching</name>
        <t>Clients SHOULD cache the parsed Discovery Record metadata for the
duration of the DNS TTL.  When the Discovery Record includes a
<tt>ttl</tt> field, clients MAY extend their metadata cache to that
duration, but MUST re-validate the underlying DNS record when the
DNS TTL expires.</t>
        <t>Clients that have previously connected to an MCP server and
verified its <tt>pk</tt> SHOULD cache the verified key binding and
re-validate it on subsequent connections (Trust On First Use, with
periodic re-verification against DNS).</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="dns-response-integrity">
        <name>DNS Response Integrity</name>
        <t>DNS responses are subject to forgery through cache poisoning,
on-path interception, and resolver compromise.  A forged Discovery
Record could redirect clients to a malicious MCP server.</t>
        <t>Operators SHOULD sign their zones with DNSSEC [RFC4033] [RFC4034]
[RFC4035].  Clients SHOULD request DNSSEC validation from their
recursive resolver (the AD flag) and SHOULD treat responses that
fail DNSSEC validation as equivalent to NXDOMAIN.  When the parent
zone is unsigned, DNSSEC provides no protection; clients MUST rely
on the TLS and key-pinning mechanisms described below.</t>
        <t>DNSSEC deployment remains uneven.  This specification does not
require DNSSEC because doing so would exclude a significant fraction
of potential deployers.  Instead, DNSSEC is RECOMMENDED as a
defense-in-depth layer, with TLS as the primary authentication
mechanism.</t>
      </section>
      <section anchor="tls-as-primary-authentication">
        <name>TLS as Primary Authentication</name>
        <t>The <tt>url</tt> field MUST use the <tt>https</tt> scheme.  The MCP server MUST
present a valid TLS certificate for the hostname in the URL,
issued by a certificate authority trusted by the client.</t>
        <t>TLS authenticates the server to the client and provides
confidentiality and integrity for the MCP session.  Even if the
DNS record is forged, an attacker cannot present a valid TLS
certificate for the legitimate server's hostname without
compromising the WebPKI trust chain.</t>
      </section>
      <section anchor="key-pinning-via-the-pk-field">
        <name>Key Pinning via the pk Field</name>
        <t>The optional <tt>pk</tt> field provides an additional layer of
authentication independent of the WebPKI.  When present, the client
verifies that the server's Ed25519 key matches the key declared in
DNS.</t>
        <t>This binding is valuable in two scenarios:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Certificate authority compromise.</strong>  If a CA issues a
fraudulent certificate for the server's hostname, the <tt>pk</tt>
binding detects the discrepancy because the attacker does not
possess the correct Ed25519 private key.</t>
          </li>
          <li>
            <t><strong>Attestation verification.</strong>  Signed artifacts (attestations,
identity claims, x402 payment receipts) issued by the server
can be verified against the <tt>pk</tt> in DNS, providing a
verification path that does not depend on the TLS session.</t>
          </li>
        </ol>
        <t>Key pinning introduces a risk of key loss.  If the operator loses
the private key corresponding to the published <tt>pk</tt>, legitimate
clients will reject the server.  Operators MUST maintain secure
key backups and SHOULD implement the key rotation procedure
described below.</t>
      </section>
      <section anchor="key-rotation">
        <name>Key Rotation</name>
        <t>Key rotation follows the overlapping-key pattern established by
DKIM:</t>
        <ol spacing="normal" type="1"><li>
            <t>Generate a new Ed25519 keypair.</t>
          </li>
          <li>
            <t>Update the MCP server to accept both the old and new keys.</t>
          </li>
          <li>
            <t>Publish a new Discovery Record with the updated <tt>pk</tt> and
incremented <tt>epoch</tt>.</t>
          </li>
          <li>
            <t>Wait for at least 2x the DNS TTL to allow cached records to
expire.</t>
          </li>
          <li>
            <t>Remove the old key from the MCP server.</t>
          </li>
        </ol>
        <t>During the overlap window (steps 2-4), clients with cached old
records and clients with fresh new records both succeed.  The
<tt>epoch</tt> field enables verifiers to detect stale claims: a claim
signed with <tt>epoch=N</tt> is revoked once the Discovery Record shows
<tt>epoch=N+1</tt>, unless the claim's expiry predates the rotation event.</t>
        <t>Operators SHOULD NOT rotate keys more frequently than once per DNS
TTL period.  Frequent rotation increases the risk of verification
failures during the overlap window.</t>
      </section>
      <section anchor="replay-and-freshness">
        <name>Replay and Freshness</name>
        <t>Discovery Records are public and cacheable.  An attacker who
observes a Discovery Record can replay it, but this provides no
advantage: the record contains no secrets, and replaying a
legitimate record simply directs clients to the legitimate server.</t>
        <t>The <tt>epoch</tt> field provides freshness for signed artifacts.  A
verifier that encounters a claim with an epoch lower than the
current Discovery Record epoch knows the signing key has been
rotated and can apply epoch-based revocation.</t>
        <t>MCP servers that issue signed attestations SHOULD include a nonce
and timestamp in each attestation.  Verifiers SHOULD reject
attestations older than a policy-defined maximum age (e.g., 300
seconds for session-bound attestations).</t>
      </section>
      <section anchor="denial-of-service">
        <name>Denial of Service</name>
        <t>An attacker who can inject DNS responses (absent DNSSEC) could
publish a Discovery Record pointing to an attacker-controlled
server, or could inject NXDOMAIN to suppress discovery.  The TLS
requirement mitigates server impersonation (the attacker cannot
obtain a valid certificate), but suppression of discovery cannot
be mitigated at the DNS layer alone.</t>
        <t>Clients SHOULD implement the HTTPS fallback described in Section 4
to reduce the impact of DNS-layer suppression.</t>
      </section>
      <section anchor="zone-control-and-record-authenticity">
        <name>Zone Control and Record Authenticity</name>
        <t>The <tt>_mcp.</tt> label is under the Policy Domain's own DNS zone.
Publication of the Discovery Record is therefore an authenticated
act: only an entity with write access to the zone can create or
modify the record.  This matches the trust model of DKIM, MTA-STS,
and DMARC, where the zone holder's control of the DNS record is
the root of authority.</t>
        <t>Delegated subdomains (e.g., <tt>_mcp.dept.example.com</tt>) inherit the
trust properties of the subdomain's zone.  If <tt>dept.example.com</tt>
is delegated to a separate zone with its own set of nameservers,
the operator of that zone controls its Discovery Record
independently.  Clients MUST NOT assume that a Discovery Record at
a subdomain is authorized by the parent domain's zone operator.</t>
      </section>
      <section anchor="attestation-scope-as-security-boundary">
        <name>Attestation Scope as Security Boundary</name>
        <t>The <tt>attest</tt> field provides a structural defense against capability
creep.  By publishing the set of attestation types it will issue,
a domain establishes an upper bound that verifiers can enforce.
An MCP server that publishes <tt>attest=employ,contract</tt> cannot
legitimately issue a <tt>director</tt> attestation, and verifiers MUST
reject such claims even if the cryptographic signature is valid.</t>
        <t>This mechanism transforms the DNS record into a capability
declaration: the domain operator explicitly consents to a bounded
set of claim types, and verifiers enforce that boundary.  The
operator can expand or contract the <tt>attest</tt> set at any time by
updating the DNS record; the change takes effect at DNS TTL
expiry.</t>
      </section>
      <section anchor="multi-server-key-consistency">
        <name>Multi-Server Key Consistency</name>
        <t>When multiple Discovery Records are published at the same DNS name
(for failover), the records MAY declare different <tt>pk</tt> values (one
per server) or the same <tt>pk</tt> value (shared key).  Operators using
distinct keys per server MUST ensure that all servers share the
same <tt>epoch</tt>.  A split-epoch configuration (where different servers
advertise different epoch values) creates ambiguous revocation
semantics and MUST be avoided.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <section anchor="dns-query-metadata">
        <name>DNS Query Metadata</name>
        <t>DNS queries are visible to the recursive resolver, and potentially
to on-path observers between the client and the resolver.  A client
resolving <tt>_mcp.example.com</tt> reveals to its resolver that it
intends to interact with <tt>example.com</tt> via MCP.</t>
        <t>Clients concerned with query metadata leakage SHOULD use
DNS-over-HTTPS (DoH) [RFC8484] or DNS-over-TLS (DoT) [RFC7858]
and SHOULD prefer resolvers that publish strong privacy policies
(e.g., no query logging, GDPR compliance).</t>
      </section>
      <section anchor="discovery-record-content">
        <name>Discovery Record Content</name>
        <t>The Discovery Record itself is public by design.  It contains no
per-user information.  The fields describe the MCP server's
endpoint, transport, and capabilities -- all of which are
properties of the domain operator, not of any individual user.</t>
        <t>Operators who wish to keep the existence of their MCP server
private SHOULD NOT publish a Discovery Record and SHOULD rely on
out-of-band configuration or authenticated HTTPS-based discovery.</t>
      </section>
      <section anchor="individual-privacy">
        <name>Individual Privacy</name>
        <t>The Discovery Record is a domain-level record.  This specification
does not define per-user DNS records and explicitly discourages
them.  Individual identity resolution, where applicable, occurs
at the MCP application layer behind the server endpoint, subject
to application-level consent and access control mechanisms that
are outside the scope of this document.</t>
        <t>A domain that publishes a Discovery Record does not reveal
anything about the individuals associated with that domain.  The
server behind the endpoint determines what information, if any,
is disclosed about individuals, and under what conditions.</t>
      </section>
      <section anchor="caching-and-linkability">
        <name>Caching and Linkability</name>
        <t>Clients that cache Discovery Record metadata (including <tt>pk</tt>
bindings) should be aware that cached state can be used for
cross-session linkability if the cache is not partitioned by
context.  Implementations SHOULD partition Discovery Record
caches by the requesting context (e.g., per-conversation or
per-user) to prevent cross-context tracking.</t>
      </section>
      <section anchor="identity-assurance-decay">
        <name>Identity Assurance Decay</name>
        <t>Implementations SHOULD NOT assume that a valid Discovery Record at
time t_0 implies identity assurance at time t_1 &gt; t_0.  The
identity field framework of <xref target="MORRISON-IFT"/> formalises this as the
identity light-cone: outside the light-cone boundary, the
infrastructure's model of the attesting entity is based on stale
posterior estimates, and assurance confidence degrades at a rate
determined by the propagation characteristics of the underlying
identity infrastructure.  Concretely: a DNS-advertised identity
record cached for the full TTL without re-attestation approaches
maximum-entropy assurance at the TTL boundary.  Implementations
relying on identity claims for access control decisions SHOULD
treat TTL as an assurance-decay parameter, not merely a caching
directive.</t>
      </section>
      <section anchor="scope-as-privacy-boundary">
        <name>Scope as Privacy Boundary</name>
        <t>The <tt>scope</tt> field is a privacy boundary declaration in the sense
of <xref target="MORRISON-IFT"/>: it restricts the identity dimensions exposed
at the advertised endpoint to those explicitly listed.
Implementations that expand scope beyond the declared value --
inferring capability from context, caching undeclared capability
assertions, or propagating identity information across scope
boundaries -- violate the consent architecture that the deploying
identity infrastructure is designed to preserve.  Such violations
constitute a security failure independent of whether any
cryptographic mechanism is breached.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="underscored-dns-node-name-registration">
        <name>Underscored DNS Node Name Registration</name>
        <t>This document requests IANA to register the following entry in the
"Underscored and Globally Scoped DNS Node Names" registry
established by <xref target="RFC8552"/>:</t>
        <t><tt>
+--------+------------+-----------------------------+
| RR Type| _NODE NAME | Reference                   |
+--------+------------+-----------------------------+
| TXT    | _mcp       | [this document], Section 3  |
+--------+------------+-----------------------------+
</tt></t>
        <t>The <tt>_mcp</tt> label is used to publish Discovery Records for Model
Context Protocol servers as defined in Section 3 of this document.</t>
      </section>
      <section anchor="no-new-rr-type">
        <name>No New RR Type</name>
        <t>This document does not request registration of a new DNS resource
record type.  The Discovery Record uses the existing TXT RR type.
The historical experience of SPF <xref target="RFC7208"/>, which registered a
dedicated RR type 99 that was subsequently deprecated due to lack
of deployment, strongly argues against proposing a new RR type for
MCP discovery.  TXT records are universally supported by DNS
operators, resolvers, management interfaces, and CDN-fronted
services.</t>
      </section>
      <section anchor="version-registry">
        <name>Version Registry</name>
        <t>This document defines the version tag <tt>v=mcp1</tt>.  Future versions
of the Discovery Record format (e.g., <tt>v=mcp2</tt>) SHOULD be
coordinated with the Agentic AI Foundation's MCP specification
process <xref target="MCP"/>.  This document recommends that the Agentic AI
Foundation establish a version registry for the <tt>v=mcpN</tt> tag,
with IETF liaison for cross-registry coordination if an IETF
working group is chartered for MCP discovery.</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>This section provides non-normative examples of Discovery Records
for common deployment scenarios.</t>
      <section anchor="minimal-record">
        <name>Minimal Record</name>
        <t>The simplest valid Discovery Record contains only the version and
endpoint URL:</t>
        <t><tt>
_mcp.example.com. IN TXT "v=mcp1; url=https://mcp.example.com"
</tt></t>
        <t>A client discovering this record connects to
<tt>https://mcp.example.com</tt> using the default <tt>streamable-http</tt>
transport with no authentication requirement and no key pinning.
This is appropriate for public MCP servers offering openly
available tools.</t>
      </section>
      <section anchor="identity-bound-record">
        <name>Identity-Bound Record</name>
        <t>A server that issues signed attestations and participates in
identity resolution publishes a full record with key pinning,
epoch tracking, and attestation scope:</t>
        <t><tt>
_mcp.truealter.com. IN TXT (
  "v=mcp1; url=https://mcp.truealter.com; "
  "proto=streamable-http; "
  "pk=ed25519:dGhpcyBpcyBhIHNhbXBsZSBrZXk; "
  "epoch=3; cap=E4; "
  "attest=employ,contract,alumnus,member; "
  "scope=tools,resources,prompts,identity; "
  "ext=https://truealter.com/.well-known/alter-ext.json"
)
</tt></t>
        <t>Clients connecting to this server:</t>
        <ol spacing="normal" type="1"><li>
            <t>Verify the Ed25519 key against the TLS session or HTTP
Message Signatures.</t>
          </li>
          <li>
            <t>Know that signed claims carry <tt>kid=ed25519:dGhpc...#3</tt> and
can be revoked by incrementing the epoch.</t>
          </li>
          <li>
            <t>Can fetch the extension document for protocol-specific
metadata (e.g., identity resolution, payment addresses).</t>
          </li>
          <li>
            <t>Know the server supports identity resolution
(<tt>scope=...identity</tt>) and that it is authorized to issue
employment, contract, alumnus, and membership attestations.</t>
          </li>
        </ol>
      </section>
      <section anchor="multi-server-failover">
        <name>Multi-Server Failover</name>
        <t>An operator running geographically redundant MCP servers publishes
multiple records with distinct priorities:</t>
        <t><tt>
_mcp.bigcorp.com. IN TXT "v=mcp1; url=https://mcp-us.bigcorp.com; priority=10; pk=ed25519:USKeyHere; epoch=5"
_mcp.bigcorp.com. IN TXT "v=mcp1; url=https://mcp-eu.bigcorp.com; priority=20; pk=ed25519:EUKeyHere; epoch=5"
_mcp.bigcorp.com. IN TXT "v=mcp1; url=https://mcp-ap.bigcorp.com; priority=30; pk=ed25519:APKeyHere; epoch=5"
</tt></t>
        <t>Clients sort by priority and attempt the US endpoint first,
failing over to EU, then AP.  All three servers share the same
epoch, ensuring consistent revocation semantics.  The <tt>pk</tt> values
MAY differ across servers (each server holds its own keypair) or
MAY be identical (shared key, centralized signing).</t>
      </section>
      <section anchor="handle-scoped-record">
        <name>Handle-Scoped Record</name>
        <t>A subdomain-scoped record enables sovereign individuals who
operate their own domain to publish a personal MCP endpoint:</t>
        <t><tt>
_mcp.blake.alter.dev. IN TXT "v=mcp1; url=https://alter.dev/~blake/mcp; scope=identity; pk=ed25519:PersonalKeyHere; epoch=1"
</tt></t>
        <t>This record declares that identity queries for <tt>blake</tt> within the
<tt>alter.dev</tt> domain should be directed to
<tt>https://alter.dev/~blake/mcp</tt>.  Handle-scoped records are
optional and are intended for the specific use case of individuals
who operate their own identity endpoint.  The common case -- where
individuals are resolved through an organizational MCP server --
requires only a single record at the organizational domain.</t>
      </section>
    </section>
    <section anchor="interoperability">
      <name>Interoperability</name>
      <section anchor="relationship-to-https-rr-rfc-9460">
        <name>Relationship to HTTPS RR (RFC 9460)</name>
        <t>The SVCB/HTTPS DNS record type <xref target="RFC9460"/> provides service binding
with extensible key-value parameters, and could in principle carry
MCP discovery metadata.  However, as of 2026, HTTPS RR deployment
is uneven, DNS management interfaces expose it inconsistently, and
no MCP-specific SvcParamKey has been registered.</t>
        <t>This specification uses TXT records for Phase 1 deployment.  A
future revision MAY define an MCP-specific SvcParamKey for
HTTPS RR, enabling operators to publish MCP metadata alongside
HTTPS service parameters.  Such a revision would be appropriate
once HTTPS RR resolver and management tooling reaches the
deployment level currently enjoyed by TXT records.</t>
      </section>
      <section anchor="relationship-to-did-methods">
        <name>Relationship to DID Methods</name>
        <t>The W3C Decentralized Identifier (DID) ecosystem includes methods
that resolve via DNS.  <tt>did:web</tt> resolves to
<tt>https://&lt;domain&gt;/.well-known/did.json</tt>.  <tt>did:dns</tt> is in early
development.</t>
        <t>The Discovery Record is not a DID method and does not produce DID
Documents.  However, the <tt>pk</tt> field in a Discovery Record can
serve as a verification method reference in a DID Document, and a
<tt>did:web</tt> document can reference the MCP endpoint declared in the
Discovery Record.  The two mechanisms are complementary:
DID provides a general-purpose identifier framework; the Discovery
Record provides MCP-specific endpoint discovery.</t>
      </section>
      <section anchor="relationship-to-well-knownmcp">
        <name>Relationship to .well-known/mcp</name>
        <t>The <tt>.well-known/mcp</tt> endpoint proposed in SEP-1960 <xref target="SEP-1960"/>
and the Server Card proposed in SEP-1649 <xref target="SEP-1649"/> are the
HTTPS-based discovery mechanisms for MCP.  This specification
defines the DNS-based discovery layer and explicitly designates
the <tt>.well-known/mcp</tt> endpoint as the fallback when DNS discovery
fails or returns no result.</t>
        <t>The intended deployment is layered: DNS provides the fast,
cacheable bootstrap; the Server Card provides the full metadata.
Operators SHOULD publish both a Discovery Record and a Server
Card.  Clients SHOULD attempt DNS discovery first and fall back
to HTTPS discovery.</t>
      </section>
      <section anchor="relationship-to-agent-identity-and-discovery-aid">
        <name>Relationship to Agent Identity and Discovery (AID)</name>
        <t>The Agent Identity and Discovery protocol <xref target="AID"/> uses
<tt>_agent.&lt;domain&gt;</tt> TXT records with a <tt>v=aid1</tt> version tag to
provide cross-protocol meta-discovery (MCP, A2A, OpenAPI, and
others).  The <tt>_mcp.</tt> record defined in this document is
MCP-specific and provides richer MCP-native fields (epoch, attest,
scope, proto).</t>
        <t>The two mechanisms are complementary.  <tt>_agent.&lt;domain&gt;</tt> is the
cross-protocol meta layer; <tt>_mcp.&lt;domain&gt;</tt> is the MCP-specific
refinement.  A domain MAY publish both records.  A client that
discovers MCP support via <tt>_agent.&lt;domain&gt;</tt> MAY subsequently
query <tt>_mcp.&lt;domain&gt;</tt> for detailed MCP metadata.</t>
      </section>
      <section anchor="relationship-to-google-agent-to-agent-protocol-a2a">
        <name>Relationship to Google Agent-to-Agent Protocol (A2A)</name>
        <t>The Google Agent-to-Agent Protocol (A2A) uses
<tt>/.well-known/agent-card.json</tt> for HTTPS-based agent discovery.
A2A does not currently define a DNS-based discovery mechanism.</t>
        <t>The <tt>_mcp.</tt> Discovery Record is MCP-specific and does not apply
to A2A endpoints.  However, the <tt>_mcp.</tt> pattern is structurally
generalizable: a future <tt>_a2a.&lt;domain&gt;</tt> TXT record could follow
the same conventions (version prefix, URL field, key pinning,
priority) to provide DNS-based discovery for A2A servers.  This
document does not define such a record but notes the pattern's
applicability.</t>
      </section>
      <section anchor="coexistence-with-sep-1959">
        <name>Coexistence with SEP-1959</name>
        <t>MCP SEP-1959 <xref target="SEP-1959"/> proposes DNS-based MCP server identity
verification using a TXT record format with fields including
<tt>auth</tt>, <tt>transport</tt>, and <tt>sec</tt>.  This document defines a
complementary but more general mechanism.  The key differences
are:</t>
        <ul spacing="normal">
          <li>
            <t>This document defines <tt>epoch</tt> for key-lifecycle management,
which SEP-1959 does not address.</t>
          </li>
          <li>
            <t>This document defines <tt>attest</tt> for attestation scope bounding,
which SEP-1959 does not address.</t>
          </li>
          <li>
            <t>This document defines a formal ABNF grammar and explicit
forward-compatibility rules.</t>
          </li>
        </ul>
        <t>The authors intend to coordinate with the SEP-1959 author to
merge or align the two proposals.  Where the field semantics
overlap (version, URL, transport, key), convergence on a single
field vocabulary is desirable.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations at the
time of publication, per [RFC7942].</t>
      <t>ALTER (https://truealter.com) maintains a reference implementation
comprising:</t>
      <ul spacing="normal">
        <li>
          <t>A live Discovery Record at <tt>_mcp.truealter.com</tt> exercising the
full field set including <tt>pk</tt>, <tt>epoch</tt>, <tt>attest</tt>, and <tt>ext</tt>.</t>
        </li>
        <li>
          <t>An MCP server responding to discovery-initiated connections
with tool, resource, and identity-resolution capabilities.</t>
        </li>
        <li>
          <t>A verification CLI (<tt>alter-dns check &lt;domain&gt;</tt>) that resolves
Discovery Records, validates key bindings, and reports endpoint
reachability.</t>
        </li>
      </ul>
      <t>The implementation targets MCP specification version 2025-11 and
uses <tt>streamable-http</tt> as the default transport.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/rfc1035" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1035"/>
          <seriesInfo name="DOI" value="10.17487/RFC1035"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC4648" target="https://www.rfc-editor.org/info/rfc4648" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4648.xml">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC7208" target="https://www.rfc-editor.org/info/rfc7208" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7208.xml">
          <front>
            <title>Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1</title>
            <author fullname="S. Kitterman" initials="S." surname="Kitterman"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>Email on the Internet can be forged in a number of ways. In particular, existing protocols place no restriction on what a sending host can use as the "MAIL FROM" of a message or the domain given on the SMTP HELO/EHLO commands. This document describes version 1 of the Sender Policy Framework (SPF) protocol, whereby ADministrative Management Domains (ADMDs) can explicitly authorize the hosts that are allowed to use their domain names, and a receiving host can check such authorization.</t>
              <t>This document obsoletes RFC 4408.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7208"/>
          <seriesInfo name="DOI" value="10.17487/RFC7208"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8461" target="https://www.rfc-editor.org/info/rfc8461" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8461.xml">
          <front>
            <title>SMTP MTA Strict Transport Security (MTA-STS)</title>
            <author fullname="D. Margolis" initials="D." surname="Margolis"/>
            <author fullname="M. Risher" initials="M." surname="Risher"/>
            <author fullname="B. Ramakrishnan" initials="B." surname="Ramakrishnan"/>
            <author fullname="A. Brotman" initials="A." surname="Brotman"/>
            <author fullname="J. Jones" initials="J." surname="Jones"/>
            <date month="September" year="2018"/>
            <abstract>
              <t>SMTP MTA Strict Transport Security (MTA-STS) is a mechanism enabling mail service providers (SPs) to declare their ability to receive Transport Layer Security (TLS) secure SMTP connections and to specify whether sending SMTP servers should refuse to deliver to MX hosts that do not offer TLS with a trusted server certificate.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8461"/>
          <seriesInfo name="DOI" value="10.17487/RFC8461"/>
        </reference>
        <reference anchor="RFC8552" target="https://www.rfc-editor.org/info/rfc8552" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8552.xml">
          <front>
            <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="222"/>
          <seriesInfo name="RFC" value="8552"/>
          <seriesInfo name="DOI" value="10.17487/RFC8552"/>
        </reference>
        <reference anchor="RFC9421" target="https://www.rfc-editor.org/info/rfc9421" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9421.xml">
          <front>
            <title>HTTP Message Signatures</title>
            <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Sporny" initials="M." surname="Sporny"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9421"/>
          <seriesInfo name="DOI" value="10.17487/RFC9421"/>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io">
          <front>
            <title>Model Context Protocol Specification</title>
            <author>
              <organization>Agentic AI Foundation</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6376" target="https://www.rfc-editor.org/info/rfc6376" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6376.xml">
          <front>
            <title>DomainKeys Identified Mail (DKIM) Signatures</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="T. Hansen" initials="T." role="editor" surname="Hansen"/>
            <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy"/>
            <date month="September" year="2011"/>
            <abstract>
              <t>DomainKeys Identified Mail (DKIM) permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message. This can be an author's organization, an operational relay, or one of their agents. DKIM separates the question of the identity of the Signer of the message from the purported author of the message. Assertion of responsibility is validated through a cryptographic signature and by querying the Signer's domain directly to retrieve the appropriate public key. Message transit from author to recipient is through relays that typically make no substantive change to the message content and thus preserve the DKIM signature.</t>
              <t>This memo obsoletes RFC 4871 and RFC 5672. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="76"/>
          <seriesInfo name="RFC" value="6376"/>
          <seriesInfo name="DOI" value="10.17487/RFC6376"/>
        </reference>
        <reference anchor="RFC7489" target="https://www.rfc-editor.org/info/rfc7489" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7489.xml">
          <front>
            <title>Domain-based Message Authentication, Reporting, and Conformance (DMARC)</title>
            <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy"/>
            <author fullname="E. Zwicky" initials="E." role="editor" surname="Zwicky"/>
            <date month="March" year="2015"/>
            <abstract>
              <t>Domain-based Message Authentication, Reporting, and Conformance (DMARC) is a scalable mechanism by which a mail-originating organization can express domain-level policies and preferences for message validation, disposition, and reporting, that a mail-receiving organization can use to improve mail handling.</t>
              <t>Originators of Internet Mail need to be able to associate reliable and authenticated domain identifiers with messages, communicate policies about messages that use those identifiers, and report about mail using those identifiers. These abilities have several benefits: Receivers can provide feedback to Domain Owners about the use of their domains; this feedback can provide valuable insight about the management of internal operations and the presence of external domain name abuse.</t>
              <t>DMARC does not produce or encourage elevated delivery privilege of authenticated email. DMARC is a mechanism for policy distribution that enables increasingly strict handling of messages that fail authentication checks, ranging from no action, through altered delivery, up to message rejection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7489"/>
          <seriesInfo name="DOI" value="10.17487/RFC7489"/>
        </reference>
        <reference anchor="RFC9460" target="https://www.rfc-editor.org/info/rfc9460" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9460.xml">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="SEP-1649" target="https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1649">
          <front>
            <title>MCP Server Cards</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SEP-1959" target="https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1959">
          <front>
            <title>DNS-Based MCP Server Identity Verification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SEP-1960" target="https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1960">
          <front>
            <title>.well-known/mcp Discovery Endpoint</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SEP-2127" target="https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127">
          <front>
            <title>MCP Server Cards (PR)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="AID" target="https://datatracker.ietf.org/doc/draft-nemethi-aid-agent-identity-discovery/">
          <front>
            <title>Agent Identity &amp; Discovery</title>
            <author surname="Nemethi">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="SERRA" target="https://datatracker.ietf.org/doc/draft-serra-mcp-discovery-uri/02/">
          <front>
            <title>MCP Discovery URI</title>
            <author surname="Serra">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MORRISON-IFT" target="https://doi.org/10.6084/m9.figshare.31951383">
          <front>
            <title>Identity Field Theory: Toward a Physics of Being Known</title>
            <author fullname="Blake Morrison">
              <organization>Alter Meridian Pty Ltd</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1072?>

<section anchor="discovery-pseudocode">
      <name>Discovery Pseudocode</name>
      <t>The following pseudocode illustrates the discovery algorithm
defined in Section 4.  It is non-normative.</t>
      <t>```
function discover_mcp(origin_domain):
    # Step 1: Normalize
    domain = normalize(origin_domain)  # lowercase, IDNA2008</t>
      <artwork><![CDATA[
# Step 2: Construct query name
qname = "_mcp." + domain

# Step 3: Query DNS
response = dns_query(qname, type=TXT, prefer=DoH)

# Step 4: Handle response
if response.status == NXDOMAIN or response.answers == []:
    return https_fallback(domain)

if response.status == SERVFAIL:
    if retry_with_backoff(qname, type=TXT):
        # retry succeeded, proceed
        pass
    else:
        return https_fallback(domain)

# Step 5: Parse records
valid_records = []
for rdata in response.answers:
    text = concatenate_strings(rdata)
    fields = parse_semicolon_fields(text)

    if fields[0] != "v=mcp1":
        continue  # discard non-mcp1 records

    record = extract_fields(fields)

    if not is_valid_https_url(record.url):
        continue  # discard malformed records

    valid_records.append(record)

if valid_records == []:
    return https_fallback(domain)

# Step 6: Sort by priority
valid_records.sort(key=lambda r: r.priority)

# Step 7: Connect
for record in valid_records:
    try:
        session = tls_connect(record.url)

        if record.pk is not None:
            if not verify_key(session, record.pk):
                continue  # key mismatch, try next

        mcp = mcp_initialize(session, record.proto)
        return mcp  # discovery complete

    except ConnectionError:
        continue  # try next record

# Step 8: All records failed
return https_fallback(domain)
]]></artwork>
      <t>function https_fallback(domain):
    # Try .well-known/mcp/server-card.json (SEP-1649)
    card_url = "https://" + domain +
               "/.well-known/mcp/server-card.json"
    card = https_get(card_url)
    if card is not None:
        return mcp_connect_from_card(card)</t>
      <artwork><![CDATA[
# Try .well-known/mcp (SEP-1960)
manifest_url = "https://" + domain + "/.well-known/mcp"
manifest = https_get(manifest_url)
if manifest is not None:
    return mcp_connect_from_manifest(manifest)

return None  # discovery failed ```
]]></artwork>
    </section>
    <section anchor="change-log">
      <name>Change Log</name>
      <t>draft-morrison-mcp-dns-discovery-00 (April 2026):</t>
      <ul spacing="normal">
        <li>
          <t>Initial submission.</t>
        </li>
        <li>
          <t>Defines <tt>_mcp.&lt;domain&gt;</tt> TXT record format with ABNF grammar.</t>
        </li>
        <li>
          <t>Defines discovery procedure with HTTPS fallback.</t>
        </li>
        <li>
          <t>Defines <tt>pk</tt>, <tt>epoch</tt>, <tt>attest</tt>, <tt>scope</tt>, <tt>cap</tt>, <tt>priority</tt>,
<tt>ttl</tt>, and <tt>ext</tt> fields.</t>
        </li>
        <li>
          <t>Registers <tt>_mcp</tt> in the underscored DNS node name registry.</t>
        </li>
      </ul>
      <?line 1169?>

</section>
    <section anchor="normative-references">
      <name>Normative References</name>
      <ul spacing="normal">
        <li>
          <t><xref target="RFC1035"/> Mockapetris, P., "Domain Names - Implementation and
Specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,
November 1987.</t>
        </li>
        <li>
          <t><xref target="RFC2119"/> Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119,
March 1997.</t>
        </li>
        <li>
          <t><xref target="RFC4648"/> Josefsson, S., "The Base16, Base32, and Base64 Data
Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006.</t>
        </li>
        <li>
          <t>[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for
Syntax Specifications: ABNF", STD 68, RFC 5234,
DOI 10.17487/RFC5234, January 2008.</t>
        </li>
        <li>
          <t><xref target="RFC7208"/> Kitterman, S., "Sender Policy Framework (SPF) for
Authorizing Use of Domains in Email, Version 1", RFC 7208,
DOI 10.17487/RFC7208, April 2014.</t>
        </li>
        <li>
          <t><xref target="RFC8174"/> Leiba, B., "Ambiguity of Uppercase vs Lowercase in
RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017.</t>
        </li>
        <li>
          <t><xref target="RFC8461"/> Margolis, D., Risher, M., Ramakrishnan, B.,
Brotman, A., and J. Jones, "SMTP MTA Strict Transport
Security (MTA-STS)", RFC 8461, DOI 10.17487/RFC8461,
September 2018.</t>
        </li>
        <li>
          <t><xref target="RFC8552"/> Crocker, D., "Scoped Interpretation of DNS Resource
Records through 'Underscored' Naming of Attribute Leaves",
BCP 222, RFC 8552, DOI 10.17487/RFC8552, March 2019.</t>
        </li>
        <li>
          <t><xref target="RFC9421"/> Backman, A., Richer, J., and M. Sporny, "HTTP
Message Signatures", RFC 9421, DOI 10.17487/RFC9421,
February 2024.</t>
        </li>
        <li>
          <t><xref target="MCP"/> Agentic AI Foundation, "Model Context Protocol
Specification", https://modelcontextprotocol.io, 2026.</t>
        </li>
      </ul>
    </section>
    <section anchor="informative-references">
      <name>Informative References</name>
      <ul spacing="normal">
        <li>
          <t>[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D.,
and S. Rose, "DNS Security Introduction and Requirements",
RFC 4033, DOI 10.17487/RFC4033, March 2005.</t>
        </li>
        <li>
          <t>[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D.,
and S. Rose, "Resource Records for the DNS Security
Extensions", RFC 4034, DOI 10.17487/RFC4034, March 2005.</t>
        </li>
        <li>
          <t>[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D.,
and S. Rose, "Protocol Modifications for the DNS Security
Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005.</t>
        </li>
        <li>
          <t>[RFC4343] Eastlake 3rd, D., "Domain Name System (DNS) Case
Insensitivity Clarification", RFC 4343,
DOI 10.17487/RFC4343, January 2006.</t>
        </li>
        <li>
          <t><xref target="RFC6376"/> Crocker, D., Ed., Hansen, T., Ed., and M.
Kucherawy, Ed., "DomainKeys Identified Mail (DKIM)
Signatures", STD 76, RFC 6376, DOI 10.17487/RFC6376,
September 2011.</t>
        </li>
        <li>
          <t><xref target="RFC7489"/> Kucherawy, M., Ed. and E. Zwicky, Ed., "Domain-
based Message Authentication, Reporting, and Conformance
(DMARC)", RFC 7489, DOI 10.17487/RFC7489, March 2015.</t>
        </li>
        <li>
          <t>[RFC7858] Hu, Z., Zhu, L., Heidemann, J., Mankin, A.,
Wessels, D., and P. Hoffman, "Specification for DNS over
Transport Layer Security (TLS)", RFC 7858,
DOI 10.17487/RFC7858, May 2016.</t>
        </li>
        <li>
          <t>[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness
of Running Code: The Implementation Status Section",
BCP 205, RFC 7942, DOI 10.17487/RFC7942, July 2016.</t>
        </li>
        <li>
          <t>[RFC8484] Hoffman, P. and P. McManus, "DNS Queries over
HTTPS (DoH)", RFC 8484, DOI 10.17487/RFC8484,
October 2018.</t>
        </li>
        <li>
          <t><xref target="RFC9460"/> Schwartz, B., Bishop, M., and E. Nygren, "Service
Binding and Parameter Specification via the DNS (SVCB and
HTTPS Resource Records)", RFC 9460, DOI 10.17487/RFC9460,
November 2023.</t>
        </li>
        <li>
          <t><xref target="SEP-1649"/> "MCP Server Cards", Agentic AI Foundation,
https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1649</t>
        </li>
        <li>
          <t><xref target="SEP-1959"/> "DNS-Based MCP Server Identity Verification",
Agentic AI Foundation,
https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1959</t>
        </li>
        <li>
          <t><xref target="SEP-1960"/> ".well-known/mcp Discovery Endpoint", Agentic AI
Foundation,
https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1960</t>
        </li>
        <li>
          <t><xref target="SEP-2127"/> "MCP Server Cards (PR)", Agentic AI Foundation,
https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127</t>
        </li>
        <li>
          <t><xref target="AID"/> Nemethi, et al., "Agent Identity and Discovery",
Internet-Draft draft-nemethi-aid-agent-identity-discovery,
https://datatracker.ietf.org/doc/draft-nemethi-aid-agent-identity-discovery/</t>
        </li>
        <li>
          <t><xref target="SERRA"/> Serra, et al., "MCP Discovery URI", Internet-Draft
draft-serra-mcp-discovery-uri,
https://datatracker.ietf.org/doc/draft-serra-mcp-discovery-uri/</t>
        </li>
      </ul>
    </section>
    <section anchor="authors-addresses">
      <name>Authors' Addresses</name>
      <t>Blake Morrison
Alter Meridian Pty Ltd
Cronulla, NSW 2230
Australia</t>
      <t>Email: blake@truealter.com
URI: https://truealter.com</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7V9eXPb2LHv/+dTnKepeiMlJK3NmxxPXVqyZ5SxZF1JnuRm
ymWCJEQhAgEGACVz6tb97K9/3X0WkJDHyctNVRIZBM7Sp/ft9Pt902RNnh7Z
rZOsnpT3abWy5Y09K6dpbo/Lokm/NPaiKptyUub2Kq3ojdreZ4k9Ob+y13+9
tpfppKym9ZZJxuMqvaeRzo4v+Fc/4paZlpMimdM00yq5afrzsqqyuiz688mi
Py3q/tS92t/dM9OkoTf3d/ef9XcPzYT+NSur1ZHNipvSZIvqyDbVsm72d3df
7u4bkyyb27I6Mtb26b/W3izzXCZ7kyd3Ke1FJuMfy2qWFNlvSZOVxZEd5k1a
2bO0yqZZUtiLZmXfN1N+cZI1NOVxVRY0XNKz51d/keflsmiwmiEtoUryLOHH
6TzJ8iM7xoz/QctLEww9mJRzY4qymtOE9ynWePnueG/34Kn+ub+391L/PHx2
+EL/fL6/6/58sff80P15+GzP/fn06b7++fJwn58S0I94Je48HzvCRTrJbrIJ
Q2CLvwgAVAjR5mZp0WQTOzy172jDU35bhk+qWdoc2dumWdRHT57MMc1EZlno
JIOs5HfDQRqDw2uD4dnB82duw4cvXvr9PNvFn1dvL/p7zw5frm2KUEuQ0B4n
jHVda5plze1yDOB3Lq/7YVbXy7R+gjnd9C+frk1PWN1/k9Tp1EYLOZ0CVoQ6
vxAetSH7b10YrcYvTGAUFjZ4SPO8f1eUD8UToqlAevZtMV2UWdH8byzo2a4u
aH9v//nXD8puX1zu/BvXsCCqfIJpacjh6Ul7csbecC7/N+ZEmwhfLythF+fp
PG1us85FEionRO6TOyLqLG1uBkQmT4irPRGGVsin/SSb9hPM3s909sDanjCw
Li+Hm5AKx/Xx8vSraySYVsm/ssIaHwq/9bx2WWVPdvexrrMPl5enVx/O+6fv
rtvL81B8l6X51F7fpsyLr8sHOlab2IvbVZ1NagiNN2lWzOzPQMKuPXyVL/8T
nDniKp1wKDPe+t7u4Nnui8Mn85eDm2xW3yZVOjggIto7eHFgTL/ft8kYHHzS
GHN9m9WWYLWcA3Gm6U1WpLVlGdcfM73P08ktLa+eW2JjtrlN7TSSl+YRZrtN
h7tja5GaA8JUlphVWpfLapLSHxCdZrEc51l9S7MkDQ9NDJfep9/S/qKixXyh
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
67iH7WdtfbvNX+/4N1WHeS1dET/7Luuf5YdtjKTLVXjKD7/ufrL/J1w13967
vxSBtugauYKw8KrfZXTczNxfuwbkbmr5v/bk0BWy+rNAR2C7rPJtrTOhP3d+
fyVEgNAlQpghzNCC+gCXTRdTHTwg3trR/NO4q8f+7Miu97DdPPkB4nzbxLdf
58l8PCURemSrgVfIWwM+Z/4AQRRQxbeXbY0aIQqcbDHAXLz/tW3y+rMKthi+
pvU60xf/trhzTs1zZNRvXD6uh8fSbfWZdrStU/XCCDubn60fIvfsIk0YNfPQ
oFbSc7X1HfIyX+N/P4cmsJuzsb3fRbKc1vld3EFB+8KGWXD9xKJx4KZh31ZV
WT2Oem6dOnnr2F4ccejVhxPYzjbfgEteLHW/4CTSNc39e61f7bZzMwpE8AMI
CxLF6XVBqNg/rh/T1u82l93y49KYsmDSIbbdRDuOuPiNTkQKp+PQ8jMSyz/j
Cx7HU0PHjnWDLxERYxQhc+qGNL+vbXJzV1utb1sbiQf0m/Fv/lMbcl/5MXVj
+j4GaeOnogzHdMk2lirs9+XMmGmV3DR9siUr5CKC/0KLDA65/u6u3R4SO8k5
8iZXMUrb5hyuIaI06dLR1+vF6w3v0CO2cWymxZ9PYxekXmDBH6zfkR3N+JjO
rvUV9Adp0fg/39Ybpia3340Ue9fznEa+1Bhf7TKrtfJiuZZCX0ClZM3K5W6u
aafnPrnS55rXAKG/wsaelZO7ZEH6REYa98WgZ7f0ygjOjLf9dctN0qGuYq16
q2evrk/s3kHPIqyLcXv25MMp/TXYe3744vkTnQ27PifgIi/I7r18gY7tspb9
vb2Xn+ybKpkWcDldYR2IND74CCZC57QqepfDi6iqhOpg0Pc8pC++R2SrpgW9
IdV/71AWhME3F8RP6fMzlFzQal6G1cjN4n8u6/SmrsGSeT3Q6XFfzd6zHv//
wb4cntxhY09QPW4tX2QDRWZLJsdYm5PL0w+TpgQoSJN+5id/un9w+MkeE/Ld
ARQnNPXb6YBnuhjYD8j3yMly2xouZ9rgDZgst9RfoXn9l/bp1EeM63pIz17I
sjALdr++MH5u/5wUS5jxUPH9wuT2oJ8zuL2I8hUqVykXR2pzm3e+3G376uLd
ji5rqDlksIU+SvbDiTZxoSN9iwtZej7Be08Bh+m6VsjPreMJe4d+fS/olU+E
Adk4oQPC2obcMIB71t/Yj+j9wTkT9zUxH3frCXdzd1jCnR7+ApxbQyGMvXmK
/JRRCKDaCwj04vDZ3idg1ozAUsshXiI9jQ70DH+TpXlHFHdbAI60VhrkDcl7
ButwIHj15wGhYIHM+K2rM1zdfj20V1xcRQJEjVFjQxOWbW3Ds6MAxCI61oyn
/NmiEUKklYdD5mKXNvZtaVYSZ3iQrdX4ogltVy3lEv4CAp9x8n1UhfM9+Ile
KThs5P5YkgFpcp8SrLF9gvb+/r4unVbRsXR+KvRKi37pFy23178hnucBeMnR
FcJkBeYZrs4oq2JF+9E80c00UQUchtucnZ/SZ+/ScaXEsa/IhzT+7vR/mo2r
XOx6lUsHD/VpePhAq9FclGaQlT2WgJprc/MVvi79s4cVKghoQwSAIVoG47Yc
/ON9UjFPAx6eoZptxcdMC+IC/YG9LGHhb+FwPW6dai9RJwJipivnx7yOZu7g
dfzUHdvu00G00MN/w0IdBrZqi1z7F7cDcGZ/h51jzbsHHUQtT7uX+/TfsFwf
PjpDvy3HpP+ZRXdIV3natWhc5mTfJnWDZDZ7UE2VqCMpT2KDk1K20aPeHifs
JzlFPWKNq3u5V32eVDGu8kpo6C4Gzc9jERJk27OD5882ZVsPbpoaiVPX7oGQ
LA3+8xJ0nDys9Add98/oV+Pza+hdtGjfRjcy6LYtiobUe/5Mloz5N4HHT9dZ
4l6Qe4cvSDeJFnIWieS3A/u3h2xyt7a+Pg2nMRzlMu1G4z20yST+7asNiD8w
TRfMSbe5iZpj5FjA5qrlqeeG4ci5s4r9admzf6MF/e2W/ngPGKfZFA7/Qpji
WVLcZcIsacK/II08V0mlqsZP5c0N89OtFqdiTAWWcsa2DbKIKACZGUEeXb/3
sghr6hTmeO7kZ8AT9tzbq1v0aCI8+S+B9XBg3yUVqT+0pNM5x/lIoAzRF4Gb
jFoIl0vNGj8mLnrEwajO0IPzrAbZs/tUl0pzd0Cbn/55ma+tVNrceFBdeEXt
bEIQRir8lmsyxD1aBGZRsxwvrF90KRh4Su8HRTES1ZIUeTW5JQA0v4nK84Z0
inIhKKroeb6aVSmfojaqpP2Guy/shUu9a8sj3ywdq99GeqZq/ppzt8Zzd7zo
fLbbJTrpaaz7kyQ7kH2E7KEtDoyGTBjQbrdMpZGcrJyRZbYcc+VJl9jsfiil
RU8wbVgDx2BxVv03Pvaqq/EpKr+kMROEYvu/uj4OF/ejrCy7te41CNGHtxog
aUEN6sr/wrqe7fp17e/tP+84O7t9cbnzv3aAi2WeP8HMvAxOEDpPkS6Y9Sxa
wuWs/H8lvYgPj/XZIm36J3BCWHFFFDJOP8mmcndx3wfFvGcgXj+c1Vw3llaD
LG1uBmU1ezItJ0++fbgnCszLyyEuZ62qJNoFABsO+ePlKQG1vXBajMxV41Nx
oXj3CXHif2K1j4zwBDqn2HD193boio6MecM6xZl6b8wQUUASeFU2zZLCXhDU
3zdTQ+K+oAOjXZ1f/YV0/INdM+QYWJ4lxrD1d2Q51/4/WmFTQ7s9sp1RW/P/
AKzBn015wQAA

-->

</rfc>
