Add transport-level cancellation support and proper cancellation token propagation (client->server)#1377
Draft
mitchcapper wants to merge 1 commit intomodelcontextprotocol:mainfrom
Draft
Conversation
…n propagation (client->server) Propagate HTTP request cancellation tokens to tool executions via JsonRpcMessageContext having the server able to handle the cancel notification directly or the server to detect the broken request
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.
Closes #1365
Propagate HTTP request cancellation tokens to tool executions via JsonRpcMessageContext having the server able to handle the cancel notification directly or the server to detect the broken request.
The server should properly trigger the cancel token for any tools taking it if either of the above two happen allowing for the server to properly kill any long running tasks.
Motivation and Context
Right now it looks like cancelling works but it does nothing from a server perspective.
How Has This Been Tested?
Breaking Changes
Shouldn't, technically its a behavior change but I would assume most implementations that take the token would not have a reason for it to not cancel when the client request aborts.
Types of changes
Checklist
Additional context
Unable to figure out how to do a proper socket closure in a test case that would be helpful for the 3rd situation.