---
title: "Multi Round-Trip Request"
description: "A Multi Round-Trip Request (MRTR) is the Model Context Protocol (MCP) pattern for obtaining additional input during a client-initiated operation without keeping a bidirectional protocol session open. It was introduced with the 2026-07-28 MCP Stateless Protocol revision."
canonical_url: "https://promptmetheus.com/resources/llm-knowledge-base/multi-round-trip-request"
---

> Index of every page on this site: [llms.txt](https://promptmetheus.com/llms.txt)

A Multi Round-Trip Request (MRTR) is the [Model Context Protocol (MCP)](https://promptmetheus.com/resources/llm-knowledge-base/model-context-protocol-mcp) pattern for obtaining additional input during a client-initiated operation without keeping a bidirectional protocol session open. It was introduced with the 2026-07-28 [MCP Stateless Protocol](https://promptmetheus.com/resources/llm-knowledge-base/mcp-stateless-protocol) revision.

For example, a tool asked to change a record may discover that a required field is missing. Instead of completing the change or failing immediately, the server returns `resultType: "input_required"` with keyed `inputRequests`. The client obtains the requested answer, then retries the original operation with `inputResponses`. If the server needs to carry information between rounds, it includes an opaque `requestState` that the client echoes on the retry. More than one round can occur before the server returns `resultType: "complete"`.

The embedded request may represent [MCP Elicitation](https://promptmetheus.com/resources/llm-knowledge-base/mcp-elicitation) of a user, model sampling, or another supported input type. The client remains responsible for presenting a user request honestly and respecting a decline or cancellation. The server must treat returned answers and echoed `requestState` as untrusted input. State carried through the client should be integrity-protected, bound to the original operation and caller, and given an expiry so it cannot be altered or replayed for a different action.

MRTR is an interaction pattern, not a background job. An [MCP task](https://promptmetheus.com/resources/llm-knowledge-base/mcp-task) represents asynchronous server-side work that a client can poll later. An MRTR instead pauses one logical request until a missing input is supplied; a task may itself require input, but the two mechanisms solve different lifecycle problems.

The protocol's [SEP-2322](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/seps/2322-MRTR.md) specifies the request and retry flow, including `inputRequests`, `inputResponses`, and `requestState`.

## Sitemap

See the full [sitemap](https://promptmetheus.com/sitemap.md) for all pages.
