Skip to content

SEP-2322: Multi Round-Trip Requests - #2322

Merged
CaitieM20 merged 112 commits into
modelcontextprotocol:mainfrom
CaitieM20:merge
May 6, 2026
Merged

SEP-2322: Multi Round-Trip Requests #2322
CaitieM20 merged 112 commits into
modelcontextprotocol:mainfrom
CaitieM20:merge

Conversation

@CaitieM20

@CaitieM20 CaitieM20 commented Feb 28, 2026

Copy link
Copy Markdown
Contributor

This is a draft SEP for Multi Round-Trip Requests (MRTR) from the Transports Working Group. It is one of the changes discussed and planned at the December 2025 Core Maintainer Meetup. Exploring the Future of MCP Transports Blog

This SEP Is still in draft, Schema changes are proposed but not locked, documentation updates, conformance tests and additional work still to come, but its ready to move out of Transports Working Group and open up to broader feedback.

Authors: Mark D. Roth (@markdroth), Caitie McCaffrey (@CaitieM20), Gabriel Zimmerman (@gjz22)

Motivation and Context

See SEP for details.

How Has This Been Tested?

Conformance Tests: modelcontextprotocol/conformance#188

Breaking Changes

Yes, see SEP for details

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

Additional context

CaitieM20 and others added 30 commits February 20, 2026 10:36
…uestParams — now available on any

  client-initiated request, not just tool calls
   2. Added typed InputResponse = ElicitResult | CreateMessageResult — InputResponses values are now properly typed
  instead of { result: { [key: string]: unknown } }
   3. Updated examples — removed the extra result wrapper from TaskInputResponseRequest and
  TaskInputResponseRequestParams examples to match the new typed schema

  All checks pass: ✅ TypeScript compiles, ✅ JSON schema up to date, ✅ 140/140 examples valid.

Caitie Note: Need to take a look at task-input-response-params.json looks wrong on cursory inspection.
…itRequets these should only be sent as part of IncompleteResponse Objects now
…a JSONRPCIncompleteResultResponse and add examples
…pper in the SEP because InputRequests maps keys directly to the requests so the InputResponses now follows that pattern and there is no benefit to the added wrapper. The only argument for the wrapper would be if we wanted to carry error's alongside results but we do not in these cases. If there is an error the client would retry until the necessary information was retrieved and then send back to the server.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

final SEP finalized. roadmap/transport Roadmap: Transport Evolution & Scalability (incl. Server Cards) SEP transport Related to MCP transports