Skip to content

chore(deps): Bump mcp-java-sdk-version from 1.1.3 to 2.0.0#23980

Open
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/maven/mcp-java-sdk-version-2.0.0
Open

chore(deps): Bump mcp-java-sdk-version from 1.1.3 to 2.0.0#23980
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/maven/mcp-java-sdk-version-2.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 12, 2026

Copy link
Copy Markdown
Contributor

Bumps mcp-java-sdk-version from 1.1.3 to 2.0.0.
Updates io.modelcontextprotocol.sdk:mcp-core from 1.1.3 to 2.0.0

Release notes

Sourced from io.modelcontextprotocol.sdk:mcp-core's releases.

v2.0.0

MCP Java SDK 2.0.0 🎉

We're thrilled to announce the General Availability of the MCP Java SDK 2.0.0 — the first major release since 1.x and the culmination of three milestones (M1, M2, M3) and a release candidate (RC1). It tracks the latest 2025-11-25 MCP specification and lays the groundwork for everything that comes next. Huge thanks to everyone who contributed, tested the milestones, and filed feedback along the way! ❤️

Upgrading from 1.x? See the v2 migration guide and the updated documentation (#1024) for a step-by-step walkthrough of the breaking changes below.

Highlights

  • A new JSON compatibility foundation for consistent forward/backward wire compatibility as the protocol evolves.
  • Spec-accurate schema with enforced required fields and lenient wire deserialization.
  • End-to-end validation of tool inputs and embedded JSON Schema documents (2020-12).
  • Richer elicitation: client-side schema defaults, URL elicitation, and form-based elicitation schemas.
  • Icons & metadata support (SEP-973) across the API.
  • Streamable HTTP first: SSE transports are now deprecated in favor of Streamable HTTP.
  • Cleaner, quieter logging with unified configuration and saner default levels.

⚠️ Breaking Changes

✨ New Features

🔌 Transports & Networking

🪵 Logging

... (truncated)

Commits
  • f56d038 Release version 2.0.0
  • d20af91 Add 2025-11-25 spec version to all transports (#1025)
  • c42d313 Return void from McpStatelessSyncServer#closeGracefully instead of Mono (#1019)
  • 2756337 Update documentation and migration notes for v2 (#1024)
  • fe82ad5 Add schemas for form-based elicitation (#1020)
  • 99faac6 Clarify tool validation error messages (#1023)
  • df75857 fix: avoid dropped errors when transport is closed or uninitialized (#995)
  • dbb9bda Add URL elicitation support (SEP-1036) (#993)
  • c49a994 Add missing Export-Package to mcp-json-jackson2 and mcp-json-jackson3
  • c8ab341 feat: Refine logging levels (#985)
  • Additional commits viewable in compare view

Updates io.modelcontextprotocol.sdk:mcp-json-jackson2 from 1.1.3 to 2.0.0

Release notes

Sourced from io.modelcontextprotocol.sdk:mcp-json-jackson2's releases.

v2.0.0

MCP Java SDK 2.0.0 🎉

We're thrilled to announce the General Availability of the MCP Java SDK 2.0.0 — the first major release since 1.x and the culmination of three milestones (M1, M2, M3) and a release candidate (RC1). It tracks the latest 2025-11-25 MCP specification and lays the groundwork for everything that comes next. Huge thanks to everyone who contributed, tested the milestones, and filed feedback along the way! ❤️

Upgrading from 1.x? See the v2 migration guide and the updated documentation (#1024) for a step-by-step walkthrough of the breaking changes below.

Highlights

  • A new JSON compatibility foundation for consistent forward/backward wire compatibility as the protocol evolves.
  • Spec-accurate schema with enforced required fields and lenient wire deserialization.
  • End-to-end validation of tool inputs and embedded JSON Schema documents (2020-12).
  • Richer elicitation: client-side schema defaults, URL elicitation, and form-based elicitation schemas.
  • Icons & metadata support (SEP-973) across the API.
  • Streamable HTTP first: SSE transports are now deprecated in favor of Streamable HTTP.
  • Cleaner, quieter logging with unified configuration and saner default levels.

⚠️ Breaking Changes

✨ New Features

🔌 Transports & Networking

🪵 Logging

... (truncated)

Commits
  • f56d038 Release version 2.0.0
  • d20af91 Add 2025-11-25 spec version to all transports (#1025)
  • c42d313 Return void from McpStatelessSyncServer#closeGracefully instead of Mono (#1019)
  • 2756337 Update documentation and migration notes for v2 (#1024)
  • fe82ad5 Add schemas for form-based elicitation (#1020)
  • 99faac6 Clarify tool validation error messages (#1023)
  • df75857 fix: avoid dropped errors when transport is closed or uninitialized (#995)
  • dbb9bda Add URL elicitation support (SEP-1036) (#993)
  • c49a994 Add missing Export-Package to mcp-json-jackson2 and mcp-json-jackson3
  • c8ab341 feat: Refine logging levels (#985)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update Java code labels Jun 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@apupier apupier left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

requires manual changes:

[4](https://github.com/apache/camel/actions/runs/27401936643/job/80981809012?pr=23980#step:6:35)
Error:  Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.15.0:compile (default-compile) on project camel-openai: Compilation failure: Compilation failure: 
Error:  /home/runner/work/camel/camel/components/camel-ai/camel-openai/src/main/java/org/apache/camel/component/openai/McpToolConverter.java:[52,54] cannot find symbol
Error:    symbol:   method type()
Error:    location: interface java.util.Map<java.lang.String,java.lang.Object>
Error:  /home/runner/work/camel/camel/components/camel-ai/camel-openai/src/main/java/org/apache/camel/component/openai/McpToolConverter.java:[52,90] cannot find symbol
Error:    symbol:   method type()
Error:    location: interface java.util.Map<java.lang.String,java.lang.Object>
Error:  /home/runner/work/camel/camel/components/camel-ai/camel-openai/src/main/java/org/apache/camel/component/openai/McpToolConverter.java:[54,35] cannot find symbol
Error:    symbol:   method properties()
Error:    location: interface java.util.Map<java.lang.String,java.lang.Object>
Error:  /home/runner/work/camel/camel/components/camel-ai/camel-openai/src/main/java/org/apache/camel/component/openai/McpToolConverter.java:[55,100] cannot find symbol
Error:    symbol:   method properties()
Error:    location: interface java.util.Map<java.lang.String,java.lang.Object>
Error:  /home/runner/work/camel/camel/components/camel-ai/camel-openai/src/main/java/org/apache/camel/component/openai/McpToolConverter.java:[58,35] cannot find symbol
Error:    symbol:   method required()
Error:    location: interface java.util.Map<java.lang.String,java.lang.Object>
Error:  /home/runner/work/camel/camel/components/camel-ai/camel-openai/src/main/java/org/apache/camel/component/openai/McpToolConverter.java:[59,98] cannot find symbol
Error:    symbol:   method required()
Error:    location: interface java.util.Map<java.lang.String,java.lang.Object>
Error:  -> [Help 1]

EDIT: the impacting change is https://github.com/modelcontextprotocol/java-sdk/blob/v2.0.0/MIGRATION-2.0.md#toolinputschema-is-mapstring-object-not-jsonschema

The Tool record now models inputSchema (and outputSchema) as arbitrary JSON Schema objects of type Map<String, Object>, so dialect-specific keywords ($ref, unevaluatedProperties, vendor extensions, and so on) round-trip without being trimmed by a narrow JsonSchema record.

Action:

    Java code that used Tool.inputSchema() as a JsonSchema must switch to Map<String, Object> (or copy into your own schema wrapper).
    Tool.Builder.inputSchema(JsonSchema) remains as a deprecated helper that maps the old record into a map; prefer inputSchema(Map) or inputSchema(McpJsonMapper, String).

@apupier apupier self-assigned this Jun 12, 2026
@davsclaus

Copy link
Copy Markdown
Contributor

that is a big jump - and i guess requires code changes.

dependabot Bot and others added 2 commits June 12, 2026 14:42
Bumps `mcp-java-sdk-version` from 1.1.3 to 2.0.0.

Updates `io.modelcontextprotocol.sdk:mcp-core` from 1.1.3 to 2.0.0
- [Release notes](https://github.com/modelcontextprotocol/java-sdk/releases)
- [Commits](modelcontextprotocol/java-sdk@v1.1.3...v2.0.0)

Updates `io.modelcontextprotocol.sdk:mcp-json-jackson2` from 1.1.3 to 2.0.0
- [Release notes](https://github.com/modelcontextprotocol/java-sdk/releases)
- [Commits](modelcontextprotocol/java-sdk@v1.1.3...v2.0.0)

---
updated-dependencies:
- dependency-name: io.modelcontextprotocol.sdk:mcp-core
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: io.modelcontextprotocol.sdk:mcp-json-jackson2
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2 points to improve in another iteration:
* several methods are now deprecated
* would be worthy to add assertions in test for the `required`
parameter. Currently, the code is executed by the test but there is no
specific assertion for it.

Signed-off-by: Aurélien Pupier <apupier@ibm.com>
@apupier apupier force-pushed the dependabot/maven/mcp-java-sdk-version-2.0.0 branch from 0066c4f to 56c5e23 Compare June 12, 2026 12:59
@apupier

apupier commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

note that I successfully launched the Integration tests locally with mvn verify -Dollama.endpoint=http://localhost:11434/ -Dollama.model=granite4:3b -Dollama.embedding.model=granite-embedding:30m -Dollama.instance.type=remote

@apupier apupier requested review from apupier and davsclaus June 12, 2026 13:06
@apupier apupier dismissed their stale review June 12, 2026 13:10

compilation error adressed

@apupier apupier removed their request for review June 12, 2026 13:10
@github-actions

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • components/camel-ai/camel-openai
  • parent

POM dependency changes: targeted tests included

Changed properties: mcp-java-sdk-version

Modules affected by dependency changes (1)
  • :camel-openai

⚠️ Some tests are disabled on GitHub Actions (@DisabledIfSystemProperty(named = "ci.env.name")) and require manual verification:

  • components/camel-ai/camel-openai: 6 test(s) disabled on GitHub Actions
All tested modules (8 modules)
  • Camel :: AI :: OpenAI
  • Camel :: JBang :: MCP
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: TUI
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: Launcher :: Container
  • Camel :: YAML DSL :: Validator
  • Camel :: YAML DSL :: Validator Maven Plugin

⚙️ View full build and test results

@davsclaus davsclaus left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for the version bump and the compilation fix, @apupier — nice catch on the inputSchema migration.

A few observations from a project-rules perspective:

Confirmed Issues

1. Tests still use deprecated McpSchema.JsonSchema API (Medium)

McpToolConverterTest.java (lines 37, 72, 91) and OpenAIProducerMcpMockTest.java (line 130) still construct McpSchema.JsonSchema objects via the deprecated Tool.builder().inputSchema(JsonSchema) shim. The production code was correctly updated to use Map<String, Object>, but the tests lag behind. Per the project's quality expectations ("Avoid usage of deprecated code"), these should be updated — acknowledged by @apupier in the commit message as a follow-up item.

2. Missing test assertion for required field (Low)

The convertFullSchema() test exercises the required parameter code path but only asserts parameters().isPresent() — it doesn't verify the required array appears in the converted output. Also noted by @apupier in the commit message.

3. HttpClientSseClientTransport deprecated upstream (Informational)

MCP SDK 2.0.0 deprecates SSE transports in favor of Streamable HTTP. The sse transport type path in OpenAIEndpoint.createMcpTransport() uses the deprecated class. The code already supports streamableHttp, so this is not blocking — just a note for a future cleanup pass.

Questions

4. Broader behavioral changes in MCP SDK 2.0.0

Beyond the JsonSchema removal, MCP SDK 2.0.0 introduces null-enforcement on CallToolRequest construction and other behavioral changes (migration guide). Current test coverage exercises the happy path — has the team evaluated edge-case behavioral changes?

This review checks project rules and conventions only. It does not replace specialized review tools (CodeRabbit, Sourcery) or static analysis (SonarCloud).

This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.

@@ -49,14 +49,16 @@ private static ChatCompletionFunctionTool convertTool(McpSchema.Tool tool) {
if (tool.inputSchema() != null) {
FunctionParameters.Builder paramsBuilder = FunctionParameters.builder();
paramsBuilder.putAdditionalProperty("type",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The production code correctly migrated to Map<String, Object> API here. However, the corresponding tests (McpToolConverterTest and OpenAIProducerMcpMockTest) still construct McpSchema.JsonSchema objects and pass them through the deprecated inputSchema(JsonSchema) builder method. Consider updating the tests to use Map<String, Object> directly to match this production pattern and avoid reliance on deprecated APIs.

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

Labels

components components-ai core-build-and-dependencies dependencies Pull requests that update a dependency file java Pull requests that update Java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants