-
Notifications
You must be signed in to change notification settings - Fork 101
Revision 2025-03-26 (without streamable http) #84
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
Revision 2025-03-26 (without streamable http) #84
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces support for the 2025-03-26 revision by updating message types, API signatures, and protocol version handling while removing the legacy Message type in favor of JsonRpcMessage. Key changes include:
- Changing pagination parameters to be optional (Option) across various endpoints.
- Adding support for meta fields, progress tokens, and extensions in request/notification structures.
- Updating protocol version constants and ordering, adding new types (e.g. RawAudioContent) and tool annotations.
Reviewed Changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
examples/servers/src/common/counter.rs | Updated pagination parameter type for resource lists. |
crates/rmcp/src/transport/sse_server.rs | Changed client message handling to use serde_json::Value with error handling. |
crates/rmcp/src/service/server.rs | Revised initialization logic with protocol version negotiation and message type updates. |
crates/rmcp/src/service/client.rs | Modified API calls to support optional pagination parameters and added default extensions. |
crates/rmcp/src/service.rs | Introduced a progress token provider and updated peer request handling. |
crates/rmcp/src/model/tool.rs | Added an optional annotations field to the Tool structure. |
crates/rmcp/src/model/serde_impl.rs | Updated serialization/deserialization to integrate meta and extension support. |
crates/rmcp/src/model/meta.rs & extension.rs | New modules for meta information and protocol extensions support. |
crates/rmcp/src/model/content.rs | Added RawAudioContent for new audio support. |
crates/rmcp/src/model/capabilities.rs | Extended ServerCapabilities to include completions and updated builder types. |
crates/rmcp/src/model.rs | Updated protocol version constants, revised pagination types, and replaced Message with JsonRpcMessage. |
crates/rmcp/src/handler/server/tool.rs & server.rs | Adjusted pagination parameter types in server handler functions. |
crates/rmcp-macros/src/tool.rs | Made minor improvements to variable naming in tool macro code. |
I would like to fix the ci lint message when merge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The amount of modification is quite large. Please give me more time to take a look
In China we are going to take a vacation for Qingming Festival these days, so the reply may not be so timely. |
1. Suppot revision 2025-03-26 data types 2. Support meta, progress tokne, and extensions in request/notification, 3. Remove `Message`, use `JsonRpcMessage` directly
0950ba1
to
fb60fc4
Compare
@jokemanfire @kalvinnchau I think this pr is ready for merge, could you please review this again? |
Message
, useJsonRpcMessage
directlyMotivation and Context
Support revision 2025-03-26
How Has This Been Tested?
Breaking Changes
PaginationParam
is the previousPaginationParamInner
Types of changes
Checklist
Additional context