GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Return a handler from `find` in modern server repositories by chemicL · Pull Request #1282 · modelcontextprotocol/java-sdk

Conversation

@chemicL

@chemicL chemicL commented Oct 26, 2026

Copy link
Copy Markdown
Member

Closes #1268

Tool and prompt repositories had separate find and call/get methods, so every call looked the
primitive up twice. That's two round trips for repositories backed by a database or other external storage.

find now returns the definition together with its handler:

  • McpAsync/SyncToolRepository.find → McpAsync/SyncTool; call is removed
  • McpAsync/SyncPromptRepository.find → McpAsync/SyncPrompt; get is removed
  • McpAsync/SyncResourceRepository.find(uri) → McpAsync/SyncResource, replacing read

The features validate against the definition they found, then call its handler. ResourcesFeature
now answers an unknown URI itself (-32602 with {"uri": ...}).

Breaking: this changes the modern server's repository SPI, which shipped in 2.2.0-M1.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
chemicL added 2 commits October 26, 2026 17:11
@chemicL
Return a handler from find in modern tool and prompt repositories
75b5306
The tool and prompt repositories had separate find and call/get methods,
so every tools/call and prompts/get looked the primitive up twice. That
means two round trips for repositories backed by a database or remote
definitions.

find now returns McpAsyncTool/McpSyncTool or McpAsyncPrompt/McpSyncPrompt,
which carry the definition and its handler. The call/get methods are
removed from the repositories. ToolsFeature and PromptsFeature validate
against the definition and invoke the handler they found.

Closes #1268

Signed-off-by: Dariusz Jędrzejczyk <[email protected]>
@chemicL
Return a handler from find in modern resource repositories
e9f252d
Align the resource repositories with the tool and prompt ones: find(ctx,
uri) returns McpAsyncResource/McpSyncResource, carrying the read handler,
in place of read(ctx, request). ResourcesFeature now answers an unknown
URI with the -32602 error carrying {"uri": ...} itself, so repositories
no longer build it.

See #1268

Signed-off-by: Dariusz Jędrzejczyk <[email protected]>
@chemicL chemicL added this to the 2.2.0-M2 milestone Oct 26, 2026
@chemicL chemicL added enhancement New feature or request area/server breaking-change labels Oct 26, 2026
@chemicL
chemicL added this pull request to stack #1284 October 26, 2026 17:03
Kehrlann
Kehrlann approved these changes Oct 26, 2026
View reviewed changes
@chemicL
chemicL merged commit 5133786 into main Oct 27, 2026
25 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@chemicL
chemicL deleted the modern-collapse-find-call branch October 27, 2026 11:18
prathamgoyal787 added a commit to prathamgoyal787/java-sdk that referenced this pull request Oct 27, 2026
@prathamgoyal787
Merge branch 'main' into feat/sep-2243-mcp-param-validation
ed2e558
Adapt to find returning the tool with its handler (modelcontextprotocol#1282): validate the
Mcp-Param headers against the found tool's definition, after the
required-capabilities check and before inputSchema validation, and port
the tests to McpAsyncTool.
@tzolov tzolov mentioned this pull request Oct 30, 2026
Add server support for the MCP 2026-07-28 ("modern") protocol revision spring-projects/spring-ai#7284
Merged
@prathamgoyal787 prathamgoyal787 mentioned this pull request Oct 31, 2026
feat: validate SEP-2243 Mcp-Param headers in modern server #1202
Closed
6 of 9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@Kehrlann Kehrlann Kehrlann approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

area/server breaking-change enhancement New feature or request

Projects

None yet

Milestone

2.2.0-M2

Development

Successfully merging this pull request may close these issues.

Combine find and call/get methods in modern server repositories

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@chemicL @Kehrlann
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.