feat: add ClientRequestContext type alias for client-side handlers#1989
Merged
feat: add ClientRequestContext type alias for client-side handlers#1989
ClientRequestContext type alias for client-side handlers#1989Conversation
Code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. |
e5b3317 to
96149ca
Compare
Introduce a dedicated `ClientRequestContext` type alias in `mcp.client.context` to provide a cleaner API for client-side callback handlers (sampling, elicitation, list_roots). This improves the developer experience by: - Providing a concrete type instead of requiring `RequestContext[ClientSession]` - Making the internal `RequestContext` private by moving it to `_context.py` - Exporting `ClientRequestContext` from `mcp.client` for easy access All examples and conformance tests have been updated to use `ClientRequestContext` instead of the internal `RequestContext` type. The migration guide has been updated to reflect these changes.
96149ca to
609585a
Compare
maxisbey
approved these changes
Feb 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Following the refactoring in #1987 that split
RequestContextbetween server and client, this PR introduces a dedicatedClientRequestContexttype alias to improve the developer experience for client-side callback handlers.Key changes:
ClientRequestContexttype alias inmcp.client.contextfor cleaner client-side handler signaturesRequestContextprivate by moving it tomcp.shared._contextClientRequestContextfrommcp.clientfor convenient accessBefore:
After:
Test plan