<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 4.0.1) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-jennings-ai-mcp-over-moq-00" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="MCP over MOQT">Model Context Protocol and Agent Skills over Media over QUIC Transport</title>

    <author initials="C." surname="Jennings" fullname="Cullen Jennings">
      <organization>Cisco Systems</organization>
      <address>
        <email>fluffy@cisco.com</email>
      </address>
    </author>
    <author initials="I." surname="Swett" fullname="Ian Swett">
      <organization>Google</organization>
      <address>
        <email>ianswett@google.com</email>
      </address>
    </author>
    <author initials="J." surname="Rosenberg" fullname="Jonathan Rosenberg">
      <organization>Five9</organization>
      <address>
        <email>jdrosen@jdrosen.net</email>
      </address>
    </author>
    <author initials="S." surname="Nandakumar" fullname="Suhas Nandakumar">
      <organization>Cisco Systems</organization>
      <address>
        <email>snandaku@cisco.com</email>
      </address>
    </author>

    <date year="2026" month="March" day="02"/>

    <area>Applications</area>
    <workgroup>Model Context Protocol</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 83?>

<t>This document defines how to use Media over QUIC Transport (MOQT) as the
underlying transport protocol for the Model Context Protocol (MCP). MCP is a
protocol that enables seamless integration between language model applications
and external data sources and tools. MOQT provides efficient, low-latency,
publish-subscribe media delivery over QUIC and WebTransport.</t>

<t>This specification describes the mapping of MCP messages onto MOQT objects and
defines the procedures for establishing and maintaining MCP sessions over MOQT.
It covers transport of MCP's core primitives including resources, tools, prompts,
and notifications through dedicated MOQT tracks with appropriate priority
management and delivery guarantees.</t>

<t>A key focus of this document is the delivery and execution of Agent Skills -
composed instructions that extend AI capabilities beyond atomic tool operations.
Skills use progressive loading (metadata, instructions, resources) that aligns
naturally with MOQT's object-based delivery, enabling efficient bandwidth
utilization and aggressive caching strategies.</t>

<t>The specification also describes relay support for scalable MCP deployments,
including subscription aggregation, content caching, and multi-hop architectures
that enable global distribution of MCP services with optimized performance.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://example.org/mcp-moqt/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-jennings-ai-mcp-over-moq-00/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Model Context Protocol Working Group mailing list (<eref target="mailto:mcp@example.org"/>),
        which is archived at <eref target="https://example.org/mcp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/example/mcp-moqt"/>.</t>
    </note>


  </front>

  <middle>


<?line 107?>

<section anchor="introduction"><name>Introduction</name>

<t>The Model Context Protocol (MCP) <xref target="MCP"/> enables integration between LLM
applications and external data sources using JSON-RPC 2.0. Media over QUIC
Transport (MOQT) <xref target="MOQT"/> provides efficient publish-subscribe delivery over
QUIC <xref target="QUIC"/> with CDN support.</t>

<t>This document specifies MCP transport over MOQT, addressing limitations of
existing transports:</t>

<t><list style="symbols">
  <t><strong>WebSocket</strong>: No prioritization, head-of-line blocking, no caching/relay</t>
  <t><strong>HTTP</strong>: Request-response model conflicts with event-driven architecture,
SSE has limited bidirectional support</t>
</list></t>

<t>MOQT provides:</t>

<t><list style="symbols">
  <t><strong>Native publish-subscribe</strong>: MCP resources, tools, and capabilities map to
tracks with independent lifecycle and versioning</t>
  <t><strong>Priority-aware delivery</strong>: Critical operations receive appropriate bandwidth</t>
  <t><strong>Multiplexing</strong>: QUIC prevents head-of-line blocking between operations</t>
  <t><strong>Relay infrastructure</strong>: Caching and subscription aggregation at edge</t>
  <t><strong>Network resilience</strong>: QUIC connection migration for mobile applications</t>
</list></t>

<section anchor="terminology"><name>Terminology</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>This document uses terminology from <xref target="MCP"/> and <xref target="MOQT"/>.</t>

</section>
<section anchor="protocol-overview"><name>Protocol Overview</name>

<t>MCP messages (JSON-RPC 2.0) are embedded in MOQT payloads. Each MCP primitive
maps to dedicated tracks: resources, tools, prompts, notifications, and skills.
Sessions begin with capability negotiation, then clients subscribe to relevant
tracks for ongoing communication.</t>

<section anchor="mcp-lifecycle-state-chart"><name>MCP Lifecycle State Chart</name>

<figure><sourcecode type="ascii"><![CDATA[
                    ┌─────────────┐
                    │ DISCONNECTED│
                    └──────┬──────┘
                           │ QUIC Connect
                           ▼
                    ┌─────────────┐
                    │ TRANSPORT   │
                    │ CONNECTED   │
                    └──────┬──────┘
                           │ MOQT Setup
                           ▼
                    ┌─────────────┐
                    │ MOQT        │
                    │ ESTABLISHED │
                    └──────┬──────┘
                           │ Track Subscribe
                           ▼
                    ┌─────────────┐
                    │ TRACKS      │
                    │ SUBSCRIBED  │
                    └──────┬──────┘
                           │ MCP Initialize
                           ▼
                    ┌─────────────┐
                    │ MCP         │
                    │ INITIALIZING│
                    └──────┬──────┘
                           │ Capabilities Exchange
                           ▼
                    ┌─────────────┐
                    │ CAPABILITIES│
                    │ NEGOTIATED  │
                    └──────┬──────┘
                           │ Discovery Complete
                           ▼
                    ┌─────────────┐
        ┌──────────▶│ MCP ACTIVE  │◀──────────┬──────────┐
        │           │             │           │          │
        │           └──┬───┬───┬──┘           │          │
        │              │   │   │              │          │
        │ Tool Result  │   │   │ Notification │          │ Resource
        │              │   │   │              │          │ Update
        ▼              │   │   ▼              │          │
 ┌─────────────┐       │   │ ┌─────────────┐  │   ┌──────┴──────┐
 │ TOOL        │       │   │ │ ELICITATION │  │   │ SKILL       │
 │ EXECUTING   │───────┘   │ │ PENDING     │  │   │ EXECUTING   │
 └─────────────┘           │ └─────────────┘  │   └─────────────┘
        │                  │       │          │          │
        │                  │       │          │          │ Skill
        │                  │       │          │          │ Complete
        └──────────────────┼───────┴──────────┴──────────┘
                           │
                           ▼
                    ┌─────────────┐
                    │ SESSION     │
                    │ TERMINATING │
                    └──────┬──────┘
                           │ Cleanup
                           ▼
                    ┌─────────────┐
                    │ DISCONNECTED│
                    └─────────────┘
]]></sourcecode></figure>

</section>
<section anchor="system-components"><name>System Components</name>

<t>Below figure shows system components proposed in this specification.</t>

<figure><sourcecode type="ascii"><![CDATA[
┌─────────────────┐    MOQT Session    ┌─────────────────┐
│   MCP Client    │<==================>│   MCP Server    │
│                 │                    │                 │
│ ┌─────────────┐ │                    │ ┌─────────────┐ │
│ │MCP Transport│ │                    │ │MCP Transport│ │
│ │   Adapter   │ │                    │ │   Adapter   │ │
│ └─────────────┘ │                    │ └─────────────┘ │
│ ┌─────────────┐ │                    │ ┌─────────────┐ │
│ │    MOQT     │ │                    │ │    MOQT     │ │
│ │  Endpoint   │ │                    │ │  Endpoint   │ │
│ └─────────────┘ │                    │ └─────────────┘ │
└─────────────────┘                    └─────────────────┘
]]></sourcecode></figure>

<t>The MCP client-host-server architecture maps to MOQT as follows:</t>

<t><list style="symbols">
  <t><strong>MCP Host</strong>: Acts as MOQT client, managing multiple server connections</t>
  <t><strong>MCP Client</strong>: Implemented as MCP transport adapter within the host</t>
  <t><strong>MCP Server</strong>: Acts as MOQT publisher, exposing resources, tools, and
prompts</t>
</list></t>

</section>
</section>
</section>
<section anchor="moqt-tracks-for-mcp"><name>MOQT Tracks for MCP</name>

<section anchor="track-types"><name>Track Types</name>

<t>This section defines the track naming conventions and mappings for MCP operations.</t>

<section anchor="control-tracks"><name>Control Tracks</name>

<t>Control tracks handle MCP session management using two unidirectional tracks
for bidirectional communication. The client-to-server track carries initialize
requests, ping messages, capability negotiations, session teardown, and tool
cancellations. The server-to-client track carries responses, pong messages,
status updates, and teardown confirmations.</t>

<t>Track namespace:</t>

<figure><artwork><![CDATA[
(mcp, <session-id>, control)
]]></artwork></figure>

<t>Track name (Client-to-Server):</t>

<figure><artwork><![CDATA[
(client-to-server)
]]></artwork></figure>

<t>Track name (Server-to-Client):</t>

<figure><artwork><![CDATA[
(server-to-client)
]]></artwork></figure>

<t>Groups and objects are mapped as follows:</t>

<t>Each MCP control message is encoded as a single MOQT object within a group. 
Group IDs are assigned sequentially starting from 0, incrementing for each 
new control message. Object IDs within each group are always 0 since 
each control message maps to exactly one object. Objects contain 
JSON-encoded MCP control messages as defined in the MCP specification.</t>

</section>
<section anchor="resource-tracks"><name>Resource Tracks</name>

<t>Resource tracks map MCP resources, delivering server-published content 
and metadata that serve as the main data sources exposed by MCP servers 
to clients.</t>

<t>Track namespace:</t>

<figure><artwork><![CDATA[
(mcp, <session-id>, resources)
]]></artwork></figure>

<t>Track name:</t>

<figure><artwork><![CDATA[
(<resource-uri>)
]]></artwork></figure>

<t>Groups and objects are mapped as follows:</t>

<t>Each resource version is assigned a unique group ID, starting from 0 and 
incrementing with each resource update. Within each group, objects represent 
chunks or segments of the resource content. Object IDs start at 0 and 
increment sequentially for each chunk. Objects contain the actual resource 
data encoded according to the resource's declared content type 
(binary data, JSON, text, etc.).</t>

</section>
<section anchor="tool-tracks"><name>Tool Tracks</name>

<t>Tool tracks map MCP tool execution, facilitating tool invocation requests, 
responses, and progress updates using MOQT's FETCH operations.</t>

<t>Track namespace:</t>

<figure><artwork><![CDATA[
(mcp, <session-id>, tools)
]]></artwork></figure>

<t>Track name:</t>

<figure><artwork><![CDATA[
(<tool-name>)
]]></artwork></figure>

<t>Groups and objects are mapped as follows:</t>

<t>Each tool invocation creates a new group with a unique group ID assigned by 
the requesting client. Within each group, object ID 0 contains the tool 
request (JSON-encoded MCP tool call), subsequent object IDs contain tool 
responses and progress updates. Objects are JSON-encoded according to the 
MCP tool execution protocol.</t>

</section>
<section anchor="prompt-tracks"><name>Prompt Tracks</name>

<t>Prompt tracks map MCP prompts, distributing pre-defined templates and 
instructions that standardize common operations across the MCP ecosystem.</t>

<t>Track namespace:</t>

<figure><artwork><![CDATA[
(mcp, <session-id>, prompts)
]]></artwork></figure>

<t>Track name:</t>

<figure><artwork><![CDATA[
(<prompt-name>)
]]></artwork></figure>

<t>Groups and objects are mapped as follows:</t>

<t>Each prompt version is assigned a unique group ID starting from 0, 
incrementing with each prompt update. Within each group, object ID 0 
contains the prompt template and metadata. Objects contain JSON-encoded 
prompt definitions including template text, parameter schemas, and 
versioning information.</t>

</section>
<section anchor="notification-tracks"><name>Notification Tracks</name>

<t>Notification tracks map MCP notifications, providing asynchronous event 
delivery for server-sent notifications, progress updates, and system events.</t>

<t>Track namespace:</t>

<figure><artwork><![CDATA[
(mcp, <session-id>, notifications)
]]></artwork></figure>

<t>Track name:</t>

<figure><artwork><![CDATA[
(<category>)
]]></artwork></figure>

<t>The category parameter classifies notification types to enable efficient 
subscription management and routing. Common category values include:</t>

<t><list style="symbols">
  <t><spanx style="verb">progress</spanx> - Tool execution progress updates and status reports</t>
  <t><spanx style="verb">resources</spanx> - Resource change notifications (listChanged, updated)</t>
  <t><spanx style="verb">prompts</spanx> - Prompt template updates and availability changes</t>
  <t><spanx style="verb">system</spanx> - Server status updates, connection events, error conditions</t>
  <t><spanx style="verb">elicitation</spanx> - User input request notifications and responses</t>
  <t><spanx style="verb">tools</spanx> - Tool availability changes and capability updates</t>
</list></t>

<t>Custom categories may be defined for application-specific notification types 
following the pattern <spanx style="verb">&lt;domain&gt;/&lt;type&gt;</spanx> (e.g., <spanx style="verb">ai/model_updated</spanx>, 
<spanx style="verb">workspace/file_changed</spanx>).</t>

<t>Groups and objects are mapped as follows:</t>

<t>Each notification event creates  a new group with group IDs assigned 
sequentially starting from 0. Within each group, object ID 0 contains the 
notification payload. Objects contain JSON-encoded notification messages as 
defined in the MCP specification, including event type, timestamp, and 
payload data.</t>

</section>
<section anchor="elicitation-tracks"><name>Elicitation Tracks</name>

<t>Elicitation tracks map MCP user input collection, handling interactive flows 
for gathering user consent and data through pairs of unidirectional tracks.
The elicitation flow uses a unidirectional track pair to collect 
user input efficiently while preserving privacy. Each request creates 
isolated track pairs, allowing concurrent operations. Servers request user 
consent and input, while clients retain control to reject or modify requests.</t>

<t>Track namespace:</t>

<figure><artwork><![CDATA[
(mcp, <session-id>, elicitation, <request-id>)
]]></artwork></figure>

<t>Track name (Server-to-Client):</t>

<figure><artwork><![CDATA[
(<server-to-client>)
]]></artwork></figure>

<t>Track name (Client-to-Server):</t>

<figure><artwork><![CDATA[
(<client-to-server>)
]]></artwork></figure>

<t>The Server-to-Client elicitation track is published by the MCP Server 
and subscribed to by the MCP Client, carrying:</t>

<t><list style="symbols">
  <t>Elicitation request initiation</t>
  <t>Input schema definitions</t>
  <t>Validation error messages</t>
  <t>Request timeout notifications</t>
  <t>Request cancellation notices</t>
</list></t>

<t>The Client-to-Server elicitation track is published by the MCP Client 
and subscribed to by the MCP Server, carrying:</t>

<t><list style="symbols">
  <t>User consent responses</t>
  <t>Input data submissions</t>
  <t>Request rejection notifications</t>
  <t>Request cancellation confirmations</t>
</list></t>

<t>Groups and objects are mapped as follows:</t>

<t>Each elicitation exchange creates new groups with group IDs starting 
from 0 and incrementing for each message in the exchange. Within each group, 
object ID 0 contains the elicitation message 
(request, response, or status update). Objects contain JSON-encoded 
elicitation messages including input schemas, validation requirements, 
and user responses.</t>

</section>
<section anchor="log-tracks"><name>Log Tracks</name>

<t>Log tracks map MCP logging information, providing debugging and monitoring 
capabilities by carrying diagnostic information for system troubleshooting 
and performance optimization.</t>

<t>Track namespace:</t>

<figure><artwork><![CDATA[
(mcp, <session-id>, logs)
]]></artwork></figure>

<t>Track name:</t>

<figure><artwork><![CDATA[
(<category>)
]]></artwork></figure>

<t>The category parameter organizes log entries by severity level and source 
component to enable selective monitoring and efficient log processing. 
Standard category values include:</t>

<t><list style="symbols">
  <t><spanx style="verb">error</spanx> - Error conditions, exceptions, and critical failures</t>
  <t><spanx style="verb">warn</spanx> - Warning messages and non-critical issues requiring attention</t>
  <t><spanx style="verb">info</spanx> - General informational messages about system operations</t>
  <t><spanx style="verb">debug</spanx> - Detailed debugging information for troubleshooting</t>
  <t><spanx style="verb">trace</spanx> - Fine-grained execution tracing for performance analysis</t>
  <t><spanx style="verb">audit</spanx> - Security and compliance audit trails</t>
  <t><spanx style="verb">metrics</spanx> - Performance metrics and system statistics</t>
</list></t>

<t>Component-specific categories may be defined using the pattern 
<spanx style="verb">&lt;level&gt;/&lt;component&gt;</spanx> (e.g., <spanx style="verb">error/transport</spanx>, <spanx style="verb">debug/tools</spanx>, 
<spanx style="verb">info/resources</spanx>) to provide granular filtering capabilities.</t>

<t>Groups and objects are mapped as follows:</t>

<t>Each log entry creates a 
new group with group IDs assigned sequentially starting from 0, ordered by 
log timestamp. Within each group, object ID 0 contains the log entry. 
Objects contain JSON-encoded log messages including severity level, 
timestamp, source component, and message content.</t>

</section>
</section>
</section>
<section anchor="protocol-operation"><name>Protocol Operation</name>

<section anchor="moqt-session-establishment"><name>MOQT Session Establishment</name>

<t>The session establishment process begins with establishing the
underlying MOQT session, which can be either a direct
QUIC connection or a WebTransport <xref target="WebTransport"/> session depending on the deployment
environment. QUIC connections provide optimal performance for server-to-
server communication, while WebTransport enables browser-based clients to
participate in MCP sessions.</t>

<t>The MOQT handshake phase involves the exchange of CLIENT_SETUP (0x20) and
SERVER_SETUP (0x21) messages that negotiate protocol versions, supported 
features, and operational parameters.</t>

</section>
<section anchor="proposed-session-id-discovery"><name>Proposed Session ID Discovery</name>

<t>MCP sessions require unique identifiers to organize track namespaces and 
enable proper message routing. This section defines a well-known track 
approach for session discovery that allows clients to dynamically discover 
available MCP services and obtain session identifiers through standardized 
FETCH operations.</t>

<section anchor="well-known-discovery-track"><name>Well-Known Discovery Track</name>

<t>The discovery mechanism uses a well-known track namespace and name that all 
MCP servers must support. This track serves as the entry point for clients 
to discover available MCP sessions and obtain the necessary session 
identifiers for subsequent operations.</t>

<t>Track Namespace: <spanx style="verb">mcp/discovery</spanx><br />
Track Name: <spanx style="verb">sessions</spanx></t>

<t>Clients initiate discovery by sending a FETCH request to this well-known 
track, providing a client-side nonce or identifier as a parameter. The 
server responds with a JSON-encoded MOQT object containing server details, 
a newly minted session identifier, and information about available tracks 
on that server.</t>

</section>
<section anchor="discovery-flow"><name>Discovery Flow</name>

<t>The session discovery process follows this sequence:</t>

<section anchor="standard-discovery-flow"><name>Standard Discovery Flow</name>

<figure><sourcecode type="ascii"><![CDATA[
    Client                         Server
       │                             │
       │ FETCH mcp/discovery/sessions│
       │ (with client nonce)         │
       │────────────────────────────▶│
       │                             │
       │                             │ Generate session ID
       │                             │ Prepare track catalog
       │                             │
       │     FETCH_OK                │
       │◀────────────────────────────│
       │                             │
       │ Data stream: FETCH_HEADER   │
       │ + Object with session       │
       │ details                     │
       │◀────────────────────────────│
       │                             │
       │ Subscribe to control tracks │
       │────────────────────────────▶│
       │                             │
       │ MCP Initialize              │
       │────────────────────────────▶│
       │                             │
       │ Initialize Response         │
       │◀────────────────────────────│
       │                             │
       │ Begin MCP operations        │
       │────────────────────────────▶│
]]></sourcecode></figure>

</section>
<section anchor="optimized-discovery-flow-rtt-reduction"><name>Optimized Discovery Flow (RTT Reduction)</name>

<figure><sourcecode type="ascii"><![CDATA[
    Client                         Server
       │                             │
       │ FETCH mcp/discovery/sessions│
       │ (with nonce + MCP init)     │
       │────────────────────────────▶│
       │                             │
       │                             │ Generate session ID
       │                             │ Process MCP initialize
       │                             │ Prepare track catalog
       │                             │
       │     FETCH_OK                │
       │◀────────────────────────────│
       │                             │
       │ Data stream: FETCH_HEADER   │
       │ + Object with session       │
       │ details + MCP init response │
       │◀────────────────────────────│
       │                             │
       │ Subscribe to control tracks │
       │────────────────────────────▶│
       │                             │
       │ Begin MCP operations        │
       │ (initialization complete)   │
       │────────────────────────────▶│
]]></sourcecode></figure>

<t>The optimized flow reduces session establishment from 4 round-trips to 2
by combining discovery and MCP initialization into a single exchange.</t>

</section>
</section>
<section anchor="discovery-request-format"><name>Discovery Request Format</name>

<t>Clients send FETCH requests to the well-known discovery track with a 
client-generated nonce or identifier in the payload:</t>

<figure><artwork><![CDATA[
FETCH {
  Type (i) = 0x16,
  Length (16),
  Request ID (i) = 1,
  Subscriber Priority (8) = 30,
  Group Order (8) = 0,
  Fetch Type (i) = 0x1,  // Standalone
  Track Namespace (tuple) = (... "mcp", "discovery"),
  Track Name Length (i) = 8,
  Track Name = "sessions",
  Start Location = {Group: 0, Object: 0},
  End Location = {Group: 0, Object: 1},
  Number of Parameters (i) = 1,
  Parameters = {
    "mcp_payload": {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "discovery/request_session",
      "params": {
        "client_nonce": "client-nonce-abc123",
        "client_info": {
          "name": "ExampleClient",
          "version": "1.0.0"
        },
        "requested_capabilities": ["resources", "tools", "prompts", "skills"]
      }
    }
  }
}
]]></artwork></figure>

<section anchor="rtt-optimization-with-combined-initialize"><name>RTT Optimization with Combined Initialize</name>

<t>To reduce round-trip time, clients <bcp14>MAY</bcp14> include their MCP initialize request 
within the discovery FETCH payload. This allows the server to perform both 
session discovery and MCP initialization in a single exchange:</t>

<figure><artwork><![CDATA[
FETCH {
  Type (i) = 0x16,
  Length (16),
  Request ID (i) = 1,
  Subscriber Priority (8) = 30,
  Group Order (8) = 0,
  Fetch Type (i) = 0x1,  // Standalone
  Track Namespace (tuple) = ("mcp", "discovery"),
  Track Name Length (i) = 8,
  Track Name = "sessions",
  Start Location = {Group: 0, Object: 0},
  End Location = {Group: 0, Object: 1},
  Number of Parameters (i) = 1,
  Parameters = {
    "mcp_payload": {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "discovery/request_session_with_init",
      "params": {
        "client_nonce": "client-nonce-abc123",
        "client_info": {
          "name": "ExampleClient",
          "version": "1.0.0"
        },
        "requested_capabilities": ["resources", "tools", "prompts", "skills"],
        "mcp_initialize": {
          "protocolVersion": "2025-06-18",
          "capabilities": {
            "resources": { "subscribe": true },
            "tools": { "progress": true },
            "prompts": {},
            "elicitation": {},
            "skills": { "progressive_loading": true, "streaming": true }
          },
          "clientInfo": {
            "name": "ExampleClient",
            "version": "1.0.0"
          }
        }
      }
    }
  }
}
]]></artwork></figure>

</section>
</section>
<section anchor="discovery-response-format"><name>Discovery Response Format</name>

<t>The server responds with a JSON-encoded MOQT object containing the newly
minted session ID and control track information:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "session_id": "session-uuid-456",
    "server_info": {
      "name": "ExampleServer",
      "version": "2.0.0",
      "protocol_version": "2025-06-18"
    },
    "control_tracks": {
      "client_to_server":
         "mcp/session-uuid-456/control/client-to-server",
      "server_to_client":
         "mcp/session-uuid-456/control/server-to-client"
    },
    "session_namespace": "mcp/session-uuid-456",
    "session_expires": "2025-06-18T12:00:00Z"
  }
}
]]></sourcecode></figure>

<section anchor="combined-discovery-and-initialize-response"><name>Combined Discovery and Initialize Response</name>

<t>When the client uses the RTT optimization by including MCP initialize in the
discovery request, the server responds with both session discovery and MCP
initialization results:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "session_id": "session-uuid-456",
    "server_info": {
      "name": "ExampleServer",
      "version": "2.0.0",
      "protocol_version": "2025-06-18"
    },
    "control_tracks": {
      "client_to_server":
         "mcp/session-uuid-456/control/client-to-server",
      "server_to_client":
         "mcp/session-uuid-456/control/server-to-client"
    },
    "session_namespace": "mcp/session-uuid-456",
    "session_expires": "2025-06-18T12:00:00Z",
    "mcp_initialize_response": {
      "protocolVersion": "2025-06-18",
      "capabilities": {
        "resources": { "subscribe": true, "listChanged": true },
        "tools": { "progress": true },
        "prompts": { "listChanged": true },
        "elicitation": {},
        "skills": { "progressive_loading": true, "streaming": true }
      },
      "serverInfo": {
        "name": "ExampleServer",
        "version": "2.0.0"
      }
    }
  }
}
]]></sourcecode></figure>

<t>After establishing a session, clients discover available capabilities
(resources, tools, prompts, and skills) using the mechanisms described in
<xref target="capability-discovery"/>.</t>

<t>After receiving the discovery response, clients subscribe to control tracks
and proceed with capability discovery (see <xref target="capability-discovery"/>).</t>

</section>
</section>
</section>
<section anchor="priority-management"><name>Priority Management</name>

<t>MOQT's object priorities optimize MCP message delivery by considering the
importance of different track types specified.</t>

<t>The following priority assignments are <bcp14>RECOMMENDED</bcp14>, but applications <bcp14>MAY</bcp14>
adjust them as needed:</t>

<texttable>
      <ttcol align='left'>Priority</ttcol>
      <ttcol align='left'>Range</ttcol>
      <ttcol align='left'>Track Type</ttcol>
      <ttcol align='left'>Example</ttcol>
      <c>CRITICAL</c>
      <c>1-5</c>
      <c>Session Control</c>
      <c>initialize, terminate</c>
      <c>HIGHEST</c>
      <c>6-15</c>
      <c>User Elicitation</c>
      <c>permission prompts</c>
      <c>HIGH</c>
      <c>16-30</c>
      <c>Skills/Tool Execution</c>
      <c>/commit, git operations</c>
      <c>MEDIUM-HI</c>
      <c>31-45</c>
      <c>Notifications</c>
      <c>resource changes</c>
      <c>MEDIUM</c>
      <c>46-60</c>
      <c>Skill Instructions</c>
      <c>prompt loading</c>
      <c>MEDIUM-LO</c>
      <c>61-75</c>
      <c>Resources</c>
      <c>documentation</c>
      <c>LOW</c>
      <c>76-90</c>
      <c>Tool Schemas</c>
      <c>capability metadata</c>
      <c>LOWEST</c>
      <c>91-127</c>
      <c>Logs</c>
      <c>debug, trace</c>
</texttable>

<t>Priorities can also be dynamically adjusted based on:</t>

<t><list style="symbols">
  <t>User interaction urgency (elicitation requests get higher priority)</t>
  <t>Skill/tool execution criticality (error handling gets priority boost)</t>
  <t>Resource size and frequency (large resources get lower priority)</t>
  <t>Server load conditions (adaptive priority scaling)</t>
  <t>Active user engagement (boost skill loading when user is waiting)</t>
</list></t>

</section>
<section anchor="error-handling"><name>Error Handling</name>

<t>Error handling in MCP over MOQT leverages both MOQT's native error mechanisms
and MCP's JSON-RPC error responses.</t>

<section anchor="transport-level-errors"><name>Transport-Level Errors</name>

<t>MOQT provides several error handling mechanisms that apply to MCP operations:</t>

<t><list style="symbols">
  <t><strong>SUBSCRIBE_ERROR</strong>: Returned when a client cannot subscribe to an MCP track.
Common causes include invalid session IDs, unauthorized access, or
non-existent resources.</t>
  <t><strong>FETCH_ERROR</strong>: Returned when a FETCH operation fails. For tool execution,
this indicates the tool request could not be processed at the transport level.</t>
  <t><strong>GOAWAY</strong>: Indicates the server is terminating the session. Clients <bcp14>SHOULD</bcp14>
attempt to reconnect and re-establish the MCP session.</t>
</list></t>

</section>
<section anchor="mcp-level-errors"><name>MCP-Level Errors</name>

<t>MCP errors are returned as JSON-RPC error responses within MOQT objects:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32600,
    "message": "Invalid Request",
    "data": {
      "details": "Tool 'unknown_tool' not found"
    }
  }
}
]]></sourcecode></figure>

<t>Standard MCP error codes apply:
- <spanx style="verb">-32700</spanx>: Parse error
- <spanx style="verb">-32600</spanx>: Invalid request
- <spanx style="verb">-32601</spanx>: Method not found
- <spanx style="verb">-32602</spanx>: Invalid params
- <spanx style="verb">-32603</spanx>: Internal error</t>

</section>
<section anchor="skills-specific-errors"><name>Skills-Specific Errors</name>

<t>Skills execution may encounter additional error conditions:</t>

<texttable>
      <ttcol align='left'>Error Code</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Recovery Action</ttcol>
      <c><spanx style="verb">-33001</spanx></c>
      <c>Skill not found</c>
      <c>Check registry, refresh cache</c>
      <c><spanx style="verb">-33002</spanx></c>
      <c>Required tool unavailable</c>
      <c>Verify tool server connectivity</c>
      <c><spanx style="verb">-33003</spanx></c>
      <c>Dependency resolution failed</c>
      <c>Check skill dependencies</c>
      <c><spanx style="verb">-33004</spanx></c>
      <c>Instruction load timeout</c>
      <c>Retry with higher priority</c>
      <c><spanx style="verb">-33005</spanx></c>
      <c>Context sharing conflict</c>
      <c>Resolve context state</c>
</texttable>

</section>
<section anchor="error-recovery"><name>Error Recovery</name>

<t>Clients <bcp14>SHOULD</bcp14> implement the following recovery strategies:</t>

<t><list style="numbers" type="1">
  <t><strong>Transient errors</strong>: Retry with exponential backoff</t>
  <t><strong>Session errors</strong>: Re-establish MCP session via discovery</t>
  <t><strong>Resource errors</strong>: Invalidate cache and re-fetch</t>
  <t><strong>Skill errors</strong>: Fall back to individual tool operations if possible</t>
</list></t>

</section>
</section>
</section>
<section anchor="relay-support"><name>Relay Support</name>

<t>MOQT relays enable scalable MCP deployments by providing intelligent 
aggregation, caching, and distribution capabilities that optimize 
performance for AI workflows and reduce server load across multiple clients.</t>

<section anchor="subscription-aggregation-and-caching"><name>Subscription Aggregation and Caching</name>

<t>MOQT relays aggregate multiple client subscriptions to the same content into
single upstream requests, reducing server load and bandwidth. When clients
subscribe to identical resources, tool metadata, or notification streams, the
relay maintains one upstream subscription and fans out content to all clients.</t>

<t>Relays also cache content aggressively:</t>

<t><list style="symbols">
  <t><strong>Static resources</strong> (documentation, API references): Cached with long TTLs
since they change infrequently but are accessed frequently</t>
  <t><strong>Tool schemas</strong>: Cached until explicitly invalidated, as they define stable
interface contracts</t>
  <t><strong>Capability metadata</strong>: Cached as one-time objects after session initialization</t>
  <t><strong>Skills registry and instructions</strong>: Cached by version with push-based invalidation</t>
</list></t>

</section>
<section anchor="capability-discovery"><name>Capability Discovery</name>

<t>After establishing a session (<xref target="proposed-session-id-discovery"/>), clients
discover available capabilities (resources, tools, prompts, and skills)
using two complementary mechanisms:</t>

<t><list style="numbers" type="1">
  <t><strong>Capability Catalog</strong>: Application-level catalog with rich metadata</t>
  <t><strong>Namespace-Based Discovery</strong>: Protocol-level discovery using native MOQT messages</t>
</list></t>

<t>Implementations <bcp14>MAY</bcp14> support either or both mechanisms depending on their needs.</t>

<section anchor="capability-catalog"><name>Capability Catalog</name>

<t>Servers implement capability catalog tracks that enumerate available MCP
capabilities and their associated track patterns within a specific session:</t>

<t>Track namespace: <spanx style="verb">mcp/&lt;session-id&gt;/discovery</spanx>
Track name: <spanx style="verb">catalog</spanx></t>

<figure><sourcecode type="json"><![CDATA[
{
  "server_catalog": {
    "mcp/{session-id}/resources": {
      "available_tracks": [
        "documentation", "api_schemas", "examples", "templates"
      ],
      "content_types": ["text/markdown",
             "application/json", "text/plain"],
      "update_frequency": "daily",
      "cache_recommended": true
    },
    "mcp/{session-id}/tools/": {
      "available_tracks": [
        "file_operations", "database_query", "code_analysis"
      ],
      "execution_types": ["synchronous", "asynchronous"],
      "progress_tracking": true,
      "cache_recommended": false
    },
    "mcp/{session-id}/prompts/": {
      "available_tracks": [
        "code_review", "data_analysis", "content_generation"
      ],
      "template_versions": ["1.0", "1.1", "2.0"],
      "cache_recommended": true
    }
  },
  "discovery_timestamp": "2025-06-18T10:30:00Z"
}
]]></sourcecode></figure>

<t>Clients discover available capabilities by issuing FETCH requests to the
catalog track for initial discovery, or SUBSCRIBE for real-time updates when
capabilities change.</t>

</section>
<section anchor="namespace-based-discovery"><name>Namespace-Based Discovery</name>

<t>MOQT draft-16 introduces SUBSCRIBE_NAMESPACE and PUBLISH_NAMESPACE messages
that enable protocol-level discovery of available tracks under specific
namespace prefixes.</t>

<section anchor="subscribenamespace-for-track-discovery"><name>SUBSCRIBE_NAMESPACE for Track Discovery</name>

<t>Clients use SUBSCRIBE_NAMESPACE to discover all available tracks under
an MCP namespace prefix without prior knowledge of specific track names:</t>

<figure><artwork><![CDATA[
SUBSCRIBE_NAMESPACE {
  Request ID (i) = 1,
  Track Namespace = ("mcp", "<session-id>", "resources")
}
]]></artwork></figure>

<t>The server responds with NAMESPACE messages for each available track:</t>

<figure><artwork><![CDATA[
NAMESPACE {
  Request ID (i) = 1,
  Track Namespace = ("mcp", "<session-id>", "resources", "documentation")
}

NAMESPACE {
  Request ID (i) = 1,
  Track Namespace = ("mcp", "<session-id>", "resources", "api-schemas")
}

NAMESPACE_DONE {
  Request ID (i) = 1,
  Status Code (i) = 0,
  Reason Phrase = ""
}
]]></artwork></figure>

</section>
<section anchor="publishnamespace-for-server-announcements"><name>PUBLISH_NAMESPACE for Server Announcements</name>

<t>MCP servers use PUBLISH_NAMESPACE to proactively announce track namespace
availability to connected clients and relays:</t>

<figure><artwork><![CDATA[
PUBLISH_NAMESPACE {
  Request ID (i) = 1,
  Track Namespace = ("mcp", "<session-id>", "tools")
}
]]></artwork></figure>

<t>Relays receiving PUBLISH_NAMESPACE forward these announcements to
interested subscribers, enabling efficient fan-out of capability updates.</t>

</section>
</section>
<section anchor="dynamic-capability-updates"><name>Dynamic Capability Updates</name>

<t>Both discovery mechanisms support real-time updates when capabilities change
during a session.</t>

<t><strong>Capability Catalog Updates</strong>: Clients subscribed to the capability catalog
track receive new catalog objects when capabilities are added, removed, or
modified.</t>

<t><strong>Namespace Updates</strong>: Servers publish PUBLISH_NAMESPACE announcements that
relays forward to clients with active namespace subscriptions:</t>

<figure><sourcecode type="ascii"><![CDATA[
    Client                    Relay                     Server
       │                        │                         │
       │ (Existing subscription │                         │
       │  to namespace)         │                         │
       │                        │                         │
       │                        │                         │ New tool added
       │                        │                         │
       │                        │   PUBLISH_NAMESPACE     │
       │                        │ ("mcp", "sess-123",     │
       │                        │  "tools", "new-tool")   │
       │                        │◀───────────────────────│
       │                        │                         │
       │         NAMESPACE      │                         │
       │ ("mcp", "sess-123",    │                         │
       │  "tools", "new-tool")  │                         │
       │◀───────────────────────│                         │
       │                        │                         │
       │ (Client discovers new  │                         │
       │  tool availability)    │                         │
]]></sourcecode></figure>

</section>
<section anchor="choosing-a-discovery-mechanism"><name>Choosing a Discovery Mechanism</name>

<texttable>
      <ttcol align='left'>Use Case</ttcol>
      <ttcol align='left'>Recommended Approach</ttcol>
      <c>Rich metadata needed (content types, caching hints)</c>
      <c>Capability Catalog</c>
      <c>Simple track enumeration</c>
      <c>Namespace-Based</c>
      <c>Relay aggregation scenarios</c>
      <c>Namespace-Based</c>
      <c>Legacy MOQT implementations (pre-draft-16)</c>
      <c>Capability Catalog</c>
      <c>Minimal protocol overhead</c>
      <c>Namespace-Based</c>
</texttable>

</section>
<section anchor="relay-namespace-aggregation"><name>Relay Namespace Aggregation</name>

<t>Relays can aggregate namespace information from multiple upstream servers
and present a unified namespace view to downstream clients:</t>

<figure><sourcecode type="ascii"><![CDATA[
    Client                    Relay               Server A         Server B
       │                        │                     │                │
       │ SUBSCRIBE_NAMESPACE    │                     │                │
       │ ("mcp", "unified",     │                     │                │
       │  "tools")              │                     │                │
       │───────────────────────▶│                     │                │
       │                        │                     │                │
       │                        │ SUBSCRIBE_NAMESPACE │                │
       │                        │ ("mcp", "sess-a",   │                │
       │                        │  "tools")           │                │
       │                        │────────────────────▶│                │
       │                        │                     │                │
       │                        │ SUBSCRIBE_NAMESPACE │                │
       │                        │ ("mcp", "sess-b",   │                │
       │                        │  "tools")           │                │
       │                        │───────────────────────────────────▶│
       │                        │                     │                │
       │                        │ NAMESPACE responses │                │
       │                        │ from both servers   │                │
       │                        │◀────────────────────│                │
       │                        │◀───────────────────────────────────│
       │                        │                     │                │
       │                        │ (Relay aggregates   │                │
       │                        │  and deduplicates)  │                │
       │                        │                     │                │
       │ NAMESPACE              │                     │                │
       │ (aggregated responses) │                     │                │
       │◀───────────────────────│                     │                │
       │                        │                     │                │
       │ NAMESPACE_DONE         │                     │                │
       │◀───────────────────────│                     │                │
]]></sourcecode></figure>

</section>
</section>
</section>
<section anchor="agent-skills-and-mcp-integration"><name>Agent Skills and MCP Integration</name>

<t>Agent Skills represent a paradigm shift in how AI capabilities are extended
and distributed. Unlike atomic tools that perform single operations, Skills
provide composed instructions for complex tasks that may orchestrate multiple
tools. This section describes the comprehensive architecture for Skills
delivery and execution over MOQT.</t>

<section anchor="skills-overview"><name>Skills Overview</name>

<t>Skills and Tools serve complementary roles in MCP. Tools provide atomic capabilities invoked via direct RPC calls, while Skills provide composed instructions for complex tasks through prompt expansion and orchestration. Tools are stateless with schemas always available; Skills are context-aware with progressive loading (metadata, then instructions, then resources).</t>

<t>Support for Skills is <bcp14>OPTIONAL</bcp14>. Servers advertising the <spanx style="verb">skills</spanx> capability <bcp14>MUST</bcp14> implement the skills registry track and support FETCH operations for skill metadata and instructions. Clients <bcp14>SHOULD</bcp14> cache skill content by version. When Skills are not supported, clients fall back to direct tool operations.</t>

<t>Skills use three progressive loading levels optimized for MOQT delivery:</t>

<t><list style="symbols">
  <t><strong>Metadata</strong> (~100 tokens): Skill identification, triggers, dependencies</t>
  <t><strong>Instructions</strong> (&lt;5k tokens): Full prompt text and execution logic</t>
  <t><strong>Resources</strong>: Templates, schemas, and examples loaded during execution</t>
</list></t>

</section>
<section anchor="skills-track-structure-and-data-formats"><name>Skills Track Structure and Data Formats</name>

<t>Skills use a hierarchical track namespace under <spanx style="verb">mcp/&lt;session-id&gt;/skills/</spanx>:</t>

<texttable>
      <ttcol align='left'>Track</ttcol>
      <ttcol align='left'>Namespace</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Purpose</ttcol>
      <c>Registry</c>
      <c><spanx style="verb">(mcp, &lt;session-id&gt;, skills)</spanx></c>
      <c><spanx style="verb">registry</spanx></c>
      <c>Complete skill catalog for trigger matching</c>
      <c>Metadata</c>
      <c><spanx style="verb">(mcp, &lt;session-id&gt;, skills, &lt;skill-id&gt;)</spanx></c>
      <c><spanx style="verb">metadata</spanx></c>
      <c>Skill identification, triggers, dependencies</c>
      <c>Instructions</c>
      <c><spanx style="verb">(mcp, &lt;session-id&gt;, skills, &lt;skill-id&gt;)</spanx></c>
      <c><spanx style="verb">instructions</spanx></c>
      <c>Full prompt text and execution logic</c>
      <c>Execution</c>
      <c><spanx style="verb">(mcp, &lt;session-id&gt;, skills, &lt;skill-id&gt;, execution)</spanx></c>
      <c><spanx style="verb">&lt;invocation-id&gt;</spanx></c>
      <c>Bidirectional streaming for active invocations</c>
</texttable>

<t>The registry track contains an array of skill entries, each specifying: id, name, version, description, triggers (commands and patterns), loading hints (token sizes, preload preferences), required/optional tools and permissions, and composition relationships (which skills can invoke each other).</t>

<t>Individual metadata objects provide detailed capability information including content hashes for integrity verification, activation context requirements, tool and resource dependencies, permission requirements, and execution characteristics (streaming support, cancellation, timeouts).</t>

<t>Instructions objects contain the complete prompt text with step-by-step execution logic, parameter schemas with types and defaults, and output format specifications for success and error cases.</t>

</section>
<section anchor="skills-invocation-protocol"><name>Skills Invocation Protocol</name>

<section anchor="invocation-flow"><name>Invocation Flow</name>

<figure><sourcecode type="ascii"><![CDATA[
    Client                    Relay                     Origin
       │                        │                         │
       │  User types: "/commit" │                         │
       │                        │                         │
       │  (Match against        │                         │
       │   cached registry)     │                         │
       │                        │                         │
       ├────────────────────────┼─────────────────────────┤
       │     PHASE 1: LOAD SKILL METADATA                 │
       ├────────────────────────┼─────────────────────────┤
       │                        │                         │
       │ FETCH                  │                         │
       │ mcp/sess/skills/       │                         │
       │   commit/metadata      │                         │
       │───────────────────────▶│                         │
       │                        │                         │
       │                        │ [CACHE HIT]             │
       │                        │                         │
       │ FETCH_OK + OBJECT      │                         │
       │ {                      │                         │
       │   skill_id: "commit",  │                         │
       │   version: "2.1.0",    │                         │
       │   requires: [          │                         │
       │     "tools/git/*"      │                         │
       │   ]                    │                         │
       │ }                      │                         │
       │◀───────────────────────│                         │
       │                        │                         │
       ├────────────────────────┼─────────────────────────┤
       │     PHASE 2: LOAD SKILL INSTRUCTIONS             │
       ├────────────────────────┼─────────────────────────┤
       │                        │                         │
       │ FETCH                  │                         │
       │ mcp/sess/skills/       │                         │
       │   commit/instructions  │                         │
       │───────────────────────▶│                         │
       │                        │                         │
       │                        │ [CACHE HIT - v2.1.0]    │
       │                        │                         │
       │ FETCH_OK + OBJECT      │                         │
       │ {                      │                         │
       │   instructions: "..."  │                         │
       │ }                      │                         │
       │◀───────────────────────│                         │
       │                        │                         │
       ├────────────────────────┼─────────────────────────┤
       │     PHASE 3: EXECUTE SKILL (TOOL CALLS)          │
       ├────────────────────────┼─────────────────────────┤
       │                        │                         │
       │  (AI processes         │                         │
       │   instructions)        │                         │
       │                        │                         │
       │ FETCH tools/git/status │                         │
       │───────────────────────▶│───────────────────────▶│
       │                        │                         │
       │ FETCH_OK + OBJECT      │                         │
       │◀───────────────────────│◀───────────────────────│
       │                        │                         │
       │ FETCH tools/git/diff   │                         │
       │───────────────────────▶│───────────────────────▶│
       │                        │                         │
       │ FETCH_OK + OBJECT      │                         │
       │◀───────────────────────│◀───────────────────────│
       │                        │                         │
       │ FETCH tools/git/commit │                         │
       │───────────────────────▶│───────────────────────▶│
       │                        │                         │
       │ FETCH_OK + OBJECT      │                         │
       │ {commit_sha: "abc123"} │                         │
       │◀───────────────────────│◀───────────────────────│
       │                        │                         │
]]></sourcecode></figure>

</section>
<section anchor="streaming-skill-execution-with-progress"><name>Streaming Skill Execution with Progress</name>

<figure><sourcecode type="ascii"><![CDATA[
    Client                    Relay                     Origin
       │                        │                         │
       │ SUBSCRIBE              │                         │
       │ skills/deploy/         │                         │
       │   execution/inv-xyz    │                         │
       │───────────────────────▶│ SUBSCRIBE               │
       │                        │───────────────────────▶│
       │                        │                         │
       │ SUBSCRIBE_OK           │ SUBSCRIBE_OK            │
       │◀───────────────────────│◀───────────────────────│
       │                        │                         │
       │ Publish request        │                         │
       │ {action: "invoke",     │                         │
       │  params: {env: "prod"}}│                         │
       │───────────────────────▶│───────────────────────▶│
       │                        │                         │
       │                        │ Object (progress)       │
       │                        │ {status: "started"}     │
       │                        │◀───────────────────────│
       │ Object                 │                         │
       │◀───────────────────────│                         │
       │                        │                         │
       │                        │ Object (progress)       │
       │                        │ {step: "building",      │
       │                        │  progress: 25}          │
       │                        │◀───────────────────────│
       │ Object                 │                         │
       │◀───────────────────────│                         │
       │                        │                         │
       │                        │ Object (progress)       │
       │                        │ {step: "deploying",     │
       │                        │  progress: 75}          │
       │                        │◀───────────────────────│
       │ Object                 │                         │
       │◀───────────────────────│                         │
       │                        │                         │
       │                        │ Object (complete)       │
       │                        │ {status: "completed",   │
       │                        │  result: {url: "..."}}  │
       │                        │◀───────────────────────│
       │ Object                 │                         │
       │◀───────────────────────│                         │
       │                        │                         │
]]></sourcecode></figure>

</section>
<section anchor="skills-execution-request-format"><name>Skills Execution Request Format</name>

<figure><sourcecode type="json"><![CDATA[
{
  "jsonrpc": "2.0",
  "id": "exec-001",
  "method": "skills/invoke",
  "params": {
    "skill_id": "commit",
    "invocation_id": "inv-xyz789",
    "parameters": {
      "push": false
    },
    "context": {
      "working_directory": "/home/user/project",
      "git_state": {
        "branch": "feature/new-feature",
        "has_staged": true
      }
    },
    "options": {
      "stream_progress": true,
      "timeout_ms": 60000
    }
  }
}
]]></sourcecode></figure>

</section>
<section anchor="skills-execution-response-stream"><name>Skills Execution Response Stream</name>

<figure><sourcecode type="json"><![CDATA[
// Object 0: Acknowledgment
{
  "jsonrpc": "2.0",
  "id": "exec-001",
  "result": {
    "status": "accepted",
    "invocation_id": "inv-xyz789"
  }
}

// Object 1: Progress
{
  "jsonrpc": "2.0",
  "method": "skills/progress",
  "params": {
    "invocation_id": "inv-xyz789",
    "step": 1,
    "total_steps": 4,
    "message": "Checking repository status...",
    "tool_call": {"tool": "git/status", "status": "in_progress"}
  }
}

// Object 2: Progress
{
  "jsonrpc": "2.0",
  "method": "skills/progress",
  "params": {
    "invocation_id": "inv-xyz789",
    "step": 2,
    "message": "Analyzing changes...",
    "tool_call": {"tool": "git/diff", "status": "completed"}
  }
}

// Object 3: Completion
{
  "jsonrpc": "2.0",
  "id": "exec-001",
  "result": {
    "status": "completed",
    "output": {
      "commit_sha": "abc123def456",
      "message": "Add user authentication flow",
      "files_committed": ["src/auth.ts", "src/middleware/jwt.ts"]
    }
  }
}
]]></sourcecode></figure>

</section>
</section>
</section>
<section anchor="multi-server-context-sharing"><name>Multi-Server Context Sharing</name>

<t>When an MCP client connects to multiple servers simultaneously, each connection
maintains its own session ID and track namespace for isolation:</t>

<figure><artwork><![CDATA[
Server A: mcp/session-a-uuid/resources/documentation
Server B: mcp/session-b-uuid/tools/code_analysis
Server C: mcp/session-c-uuid/prompts/review_templates
]]></artwork></figure>

<t>The client coordinates these sessions while presenting a unified capability view.
Key considerations include:</t>

<t><list style="symbols">
  <t><strong>Resource synchronization</strong>: Subscribe to related tracks across servers,
selecting sources based on performance, recency, or availability</t>
  <t><strong>Tool execution context</strong>: Track execution state across servers for proper
workflow sequencing; pass results between servers as needed</t>
  <t><strong>Cache coordination</strong>: Reuse cached context across servers where appropriate,
tracking versions for consistency</t>
</list></t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>TODO</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>TODO</t>

</section>
<section anchor="examples"><name>Examples</name>

<section anchor="basic-session-establishment"><name>Basic Session Establishment</name>

<t>This example shows a minimal MCP session establishment over MOQT:</t>

<figure><artwork><![CDATA[
1. Client establishes QUIC connection to server
2. Client sends CLIENT_SETUP, server responds with SERVER_SETUP
3. Client sends FETCH to mcp/discovery/sessions with client info
4. Server responds with session_id and available tracks
5. Client subscribes to control tracks
6. Client sends MCP initialize on client-to-server control track
7. Server responds with capabilities on server-to-client control track
8. Session is now active
]]></artwork></figure>

</section>
<section anchor="tool-execution-example"><name>Tool Execution Example</name>

<t>Executing a file read tool:</t>

<figure><artwork><![CDATA[
Client → Server:
FETCH mcp/{session-id}/tools/filesystem
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "read_file",
    "arguments": {"path": "/project/README.md"}
  }
}

Server → Client:
FETCH_OK + OBJECT
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {"type": "text", "text": "# Project README\n..."}
    ]
  }
}
]]></artwork></figure>

</section>
<section anchor="skill-invocation-example"><name>Skill Invocation Example</name>

<t>Invoking the /commit skill with progressive loading:</t>

<figure><artwork><![CDATA[
1. User types: "/commit"

2. Client checks cached registry, finds "commit" skill

3. Client FETCHes skill metadata (if not cached):
   FETCH mcp/{session-id}/skills/commit/metadata
   → Returns: version, dependencies, required tools

4. Client FETCHes skill instructions:
   FETCH mcp/{session-id}/skills/commit/instructions
   → Returns: full prompt with execution steps

5. AI processes instructions, calls required tools:
   FETCH mcp/{session-id}/tools/git {method: "status"}
   FETCH mcp/{session-id}/tools/git {method: "diff"}
   FETCH mcp/{session-id}/tools/git {method: "commit", args: {...}}

6. Skill completes, returns result to user
]]></artwork></figure>

</section>
<section anchor="multi-server-skill-workflow"><name>Multi-Server Skill Workflow</name>

<t>A deployment workflow using skills from multiple servers:</t>

<figure><artwork><![CDATA[
User: "/deploy to production"

1. Load /deploy skill from Enterprise Server B
2. /deploy instructions: "First ensure changes committed"
3. Invoke /commit skill from Anthropic Server A
4. /commit executes using GitHub Tools Server
5. Return to /deploy, execute deployment tools
6. Stream progress updates to client
7. Return deployment result with URL
]]></artwork></figure>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

<reference anchor="MOQT" target="https://www.ietf.org/archive/id/draft-ietf-moq-transport-16">
  <front>
    <title>Media over QUIC Transport</title>
    <author initials="S." surname="Nandakumar" fullname="S. Nandakumar">
      <organization>Cisco</organization>
    </author>
    <author initials="V." surname="Vasiliev" fullname="V. Vasiliev">
      <organization>Google</organization>
    </author>
    <author initials="I." surname="Swett" fullname="I. Swett">
      <organization>Google</organization>
    </author>
    <author initials="A." surname="Frindell" fullname="A. Frindell">
      <organization>Meta</organization>
    </author>
    <date year="2025" month="December" day="16"/>
  </front>
</reference>
<reference anchor="MCP" target="https://modelcontextprotocol.io/specification/2025-06-18">
  <front>
    <title>Model Context Protocol Specification</title>
    <author initials="" surname="Anthropic" fullname="Anthropic">
      <organization>Anthropic PBC</organization>
    </author>
    <date year="2025" month="June" day="18"/>
  </front>
</reference>
<reference anchor="QUIC" target="https://www.rfc-editor.org/rfc/rfc9000.html">
  <front>
    <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
    <author initials="J." surname="Iyengar" fullname="J. Iyengar">
      <organization>Fastly</organization>
    </author>
    <author initials="M." surname="Thomson" fullname="M. Thomson">
      <organization>Mozilla</organization>
    </author>
    <date year="2021" month="May"/>
  </front>
</reference>


<reference anchor="RFC2119">
  <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="RFC8174">
  <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>



    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="WebTransport" target="https://www.rfc-editor.org/rfc/rfc9297.html">
  <front>
    <title>The WebTransport Protocol Framework</title>
    <author initials="V." surname="Vasiliev" fullname="V. Vasiliev">
      <organization>Google</organization>
    </author>
    <date year="2023" month="June"/>
  </front>
</reference>


    </references>

</references>


<?line 1458?>

<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>TODO</t>

</section>


  </back>

<!-- ##markdown-source:
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
eshT2Gw2KXedqlmUtvraYvn/48MKws3gAAA=

-->

</rfc>

