ensure only available server capabilities are fetched #3357
+53
−9
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.
Context
Currently the possible tools, resources and resources templates are fetched in the
McpHub.connectToServermethod.Based on the spec, during
Initializationphase, the capabilities of both client and server must be negotiated.So it would make sense to ensure that e.g. resources are not fetched (or give an error while trying to fetch them) if the server already defined it doesn't support them.
If Pr addresses this
(see also #3350)
Implementation
McpHub:fetchAvailableServerCapabilitiesthat checks the server capabilities before fetching hemfetch...Listmethods to verify if the server capability is supported.Depending on the approach, the check could also only live in the
fetch...Listmethods, andMcpHub:fetchAvailableServerCapabilitiesonly be used as an easy helper method to fetch all capabilities, as there are others too.Screenshots
How to Test
Get in Touch
Discord handle: mollux
GitLab profile: https://gitlab.com/mmichaux-ext