refactor: replace Handler objects with on_* constructor kwargs #1985
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.
Replaces the
RequestHandler/NotificationHandlerwrapper classes with directon_*keyword arguments on the lowlevelServerconstructor.Changes
handler.py—Handler,RequestHandler,NotificationHandlerclasses removed entirelyon_list_tools,on_call_tool, etc. instead ofhandlers: Sequence[Handler]. Handlers are raw callables with(ctx, params) -> resultsignature_add_request_handler/_add_notification_handlerfor post-construction registration (used by ExperimentalHandlers and MCPServer completion decorator)RequestTgeneric fromServer— the request context type is transport-specific and not known at construction time, so it was never properly bound as a genericServerMessageMetadata.request_contextasAny— transport-agnosticExperimentalHandlersto useRequestContext[ServerSession, Any, Any]and the new callback-based registrationMCPServerto passon_*kwargs via_create_handler_kwargs()func_inspection.py— no longer imported after decorator removalNot included
Tests, examples, and README updates — these were already broken on the base branch before these changes.