Skip to content

Support Progress Flow for McpServer #300

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 14 commits into
base: main
Choose a base branch
from

Conversation

134130
Copy link

@134130 134130 commented Jun 8, 2025

Motivation and Context

How Has This Been Tested?

  • I've tested with 283f8f5, but restored, to separate PR for server and client.

Breaking Changes

  • No

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

@brant-hwang
Copy link

This is really awesome pr! I really hope this one merged as soon as possible!

@134130
Copy link
Author

134130 commented Jun 16, 2025

Force-pushed with resolving conflict.

@134130
Copy link
Author

134130 commented Jun 25, 2025

Force-pushed with resolving conflict, again.

@tzolov
Copy link
Contributor

tzolov commented Jun 29, 2025

@134130 thank you for trying to fill this missing capabilities.

But because the progress tracking introduces a breaking changes to the existing API and goes beyond the tool calling, or server side only, I've updated the #298 issue, listing the required task to implement this capability.
I submitted #351 and #352 to address the pre-requisite tasks. Once those are merged, if you are still interested you can re-work your PR on to of them.

@@ -139,6 +139,16 @@ public Mono<McpSchema.ListRootsResult> listRoots(String cursor) {
LIST_ROOTS_RESULT_TYPE_REF);
}

public Mono<Void> notification(String method, Object params) {
Copy link
Contributor

Choose a reason for hiding this comment

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

This is too generic. We would need something like progress(ProgressNotificaiton pn) instead.

Copy link
Author

Choose a reason for hiding this comment

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

I thought restricting the method to only “progress” would block users until the SDK releases a new protocol adaptation, and it did in some cases: loggingNotification(LoggingMessageNotification loggingMessageNotification).

I agree there is also progress(ProgressNotification pn) should be exists.

Also, there might have users that who want to send custom notifications to.

Copy link
Author

Choose a reason for hiding this comment

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

fixed with a specific method, but please consider keeping the general one too.

@tzolov
Copy link
Contributor

tzolov commented Jun 29, 2025

@134130 feel free to review #351 and #352.
I've tried to keep backward compatibility as much as possible.

@134130
Copy link
Author

134130 commented Jun 30, 2025

Thanks! I'll follow up after those PRs are merged.

@134130 134130 changed the title Support Progress Flow Support Progress Flow for McpServer Jul 12, 2025
@134130 134130 mentioned this pull request Jul 12, 2025
9 tasks
@134130
Copy link
Author

134130 commented Jul 12, 2025

Updated the Code and PR Description and separated Client implementation PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants