Skip to content

SEP-2260 Require Server requests to be associated with a Client request.#2260

Merged
evalstate merged 25 commits intomodelcontextprotocol:mainfrom
evalstate:sep/unsolicitited-req
Mar 10, 2026
Merged

SEP-2260 Require Server requests to be associated with a Client request.#2260
evalstate merged 25 commits intomodelcontextprotocol:mainfrom
evalstate:sep/unsolicitited-req

Conversation

@evalstate
Copy link
Copy Markdown
Member

Motivation and Context

This PR tightens the scoping of Server to Client requests and to server as notice of upcoming changes where this pattern may not be supported by the underlying transport layer.

How Has This Been Tested?

This PR has been supported by research by @pja-ant on current (public) usage of this pattern.

Breaking Changes

Whilst a specification only change, this stops future use of "unsolicited" server-to-client requests in anticipation of future "stateless" transports.

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

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

This PR has previously been reviewed by the Transports Working Group here: modelcontextprotocol/transports-wg#8

@evalstate evalstate changed the title SEP-xxxx Require Server requests to be associated with a Client request. SEP-2260 Require Server requests to be associated with a Client request. Feb 16, 2026
@PederHP
Copy link
Copy Markdown
Member

PederHP commented Feb 16, 2026

Maybe explicitly exclude or include pings as valid requests to associate with? They have a request id, but I suppose they're not that useful for stateless transports. It would also be a kind of workaround to not having unsolicited server-initiated requests.

Comment thread seps/0000-Require-Server-requests-to-be-associated-with-Client-requests Outdated
Comment thread seps/0000-Require-Server-requests-to-be-associated-with-Client-requests Outdated
Comment thread seps/0000-Require-Server-requests-to-be-associated-with-Client-requests Outdated
@evalstate evalstate requested a review from a team as a code owner February 17, 2026 23:59
evalstate and others added 9 commits February 18, 2026 00:18
…-requests

Co-authored-by: Caitie McCaffrey <caitiem20@github.com>
…-requests

Co-authored-by: Caitie McCaffrey <caitiem20@github.com>
- Fixed missing closing backtick in Abstract (sampling/createMessage, elicitation/create)
- Fixed typo: 'Reqeusts' -> 'Requests' in Design Intent section
- Fixed Prettier formatting in SEP-2260 markdown file
- Generated SEP documentation and updated docs index
- Fixed missing closing backtick and typo in Abstract and Design Intent sections
- Remove trailing slash from ping#implementation-considerations link
- Fix anchor reference for getting-logs-from-claude-desktop section
@evalstate evalstate force-pushed the sep/unsolicitited-req branch from db2a164 to a226dc4 Compare February 18, 2026 00:19
Comment thread seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.md Outdated
Comment thread seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.md Outdated
@evalstate
Copy link
Copy Markdown
Member Author

I've made the wording consistent, and excluded Ping from the requirement.

Copy link
Copy Markdown
Member

@dsp-ant dsp-ant left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together. This looks very reasonable and a good clarification with little impact. I particularly appreciate the diligence in scanning existing servers.

Comment thread seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.md Outdated
Comment thread seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.md Outdated
Comment thread seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.md Outdated
@localden localden added SEP draft SEP proposal with a sponsor. labels Feb 21, 2026
@localden localden added the transport Related to MCP transports label Feb 21, 2026
@CaitieM20 CaitieM20 added accepted SEP accepted by core maintainers, but still requires final wording and reference implementation. and removed draft SEP proposal with a sponsor. labels Feb 25, 2026
Copy link
Copy Markdown
Member Author

@evalstate evalstate left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would clients need to ensure the invariant holds true that requests cannot be? What is the recommended error handling here?

Error handling guidance added

@evalstate evalstate enabled auto-merge February 27, 2026 18:48
Comment thread docs/seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.mdx Outdated
Comment thread docs/docs.json Outdated
Comment thread docs/community/seps/index.mdx Outdated
Comment thread docs/community/seps/index.mdx Outdated
@evalstate evalstate requested a review from a team as a code owner March 10, 2026 21:02
Copy link
Copy Markdown
Contributor

@CaitieM20 CaitieM20 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@evalstate evalstate merged commit e148315 into modelcontextprotocol:main Mar 10, 2026
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

accepted SEP accepted by core maintainers, but still requires final wording and reference implementation. SEP transport Related to MCP transports

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

7 participants