Reframe to argue against sessions as a concept rather than against a
hypothetical opt-in alternative. Add citations for real-world client
session behavior, an ecosystem impact survey, concrete server examples
(Linear/Notion/GitHub/Stripe), and references to SEP-2322 and SEP-2549.
Clarify that explicit handles are a design pattern with no protocol
surface, address request-ID and pagination-cursor re-scoping, and tighten
tone throughout. Remove open questions, follow-on sections, and the
comparison table.
Add draft proposal to remove the protocol-level session concept from MCP
entirely, replacing implicit session-scoped state with explicit,
server-minted state handles that the model threads through subsequent
calls.
Key arguments:
- Session lifetime is undefined and server authors cannot design around it
- List endpoints cannot be cached across sessions, forcing O(subagents ×
servers) re-fetches even when tool sets never change
- Session cardinality is fixed at exactly one, preventing mixed
shared/isolated state in subagent fan-out patterns
- Explicit handles are strictly more expressive: anything expressible
with a session is expressible with a single ID created up front
Builds on SEP-1442 (stateless-by-default) but goes further by asking
whether the opt-in stateful path needs to exist at all.
This is a write up of a design discussion on SEP 2322-MRTR and design decision
Should requests for more information (i.e. the IncompleteResult
response) be supported as a response type on to all ClientRequests, or
should it be limited to a subset of Client Requests?
This is a draft SEP for Multi Round-Trip Requests (MRTR).
## Motivation and Context
See SEP for details.
## How Has This Been Tested?
Not tested yet, that will happen when we implement.
## Breaking Changes
See SEP for details.
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update
## Checklist
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [x] I have added or updated documentation as needed
## Additional context
N/A
---------
Co-authored-by: Caitie McCaffrey <caitiem20@github.com>