From 47da1ad16f43d7975e1718a3479f69e03560a4c7 Mon Sep 17 00:00:00 2001 From: Daniel Garnier-Moiroux Date: Thu, 15 Oct 2026 18:27:24 +0200 Subject: [PATCH 1/4] Release version 2.1.0 Signed-off-by: Daniel Garnier-Moiroux --- conformance-tests/client-jdk-http-client/pom.xml | 4 ++-- conformance-tests/client-spring-http-client/pom.xml | 2 +- conformance-tests/pom.xml | 2 +- conformance-tests/server-servlet/pom.xml | 4 ++-- docs/quickstart.md | 4 ++-- mcp-bom/pom.xml | 2 +- mcp-core/pom.xml | 2 +- mcp-json-jackson2/pom.xml | 4 ++-- mcp-json-jackson3/pom.xml | 4 ++-- mcp-test/pom.xml | 8 ++++---- mcp/pom.xml | 6 +++--- mkdocs.yml | 2 +- pom.xml | 2 +- 13 files changed, 23 insertions(+), 23 deletions(-) diff --git a/conformance-tests/client-jdk-http-client/pom.xml b/conformance-tests/client-jdk-http-client/pom.xml index 1d111dde2..b1af17985 100644 --- a/conformance-tests/client-jdk-http-client/pom.xml +++ b/conformance-tests/client-jdk-http-client/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk conformance-tests - 2.1.0-SNAPSHOT + 2.1.0 client-jdk-http-client jar @@ -29,7 +29,7 @@ io.modelcontextprotocol.sdk mcp - 2.1.0-SNAPSHOT + 2.1.0 diff --git a/conformance-tests/client-spring-http-client/pom.xml b/conformance-tests/client-spring-http-client/pom.xml index ccc721c1f..48fd0e2c3 100644 --- a/conformance-tests/client-spring-http-client/pom.xml +++ b/conformance-tests/client-spring-http-client/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk conformance-tests - 2.1.0-SNAPSHOT + 2.1.0 client-spring-http-client jar diff --git a/conformance-tests/pom.xml b/conformance-tests/pom.xml index 7e411a21f..b79eb0f94 100644 --- a/conformance-tests/pom.xml +++ b/conformance-tests/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0-SNAPSHOT + 2.1.0 conformance-tests pom diff --git a/conformance-tests/server-servlet/pom.xml b/conformance-tests/server-servlet/pom.xml index ce8f558e6..a071b67bf 100644 --- a/conformance-tests/server-servlet/pom.xml +++ b/conformance-tests/server-servlet/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk conformance-tests - 2.1.0-SNAPSHOT + 2.1.0 server-servlet jar @@ -29,7 +29,7 @@ io.modelcontextprotocol.sdk mcp - 2.1.0-SNAPSHOT + 2.1.0 diff --git a/docs/quickstart.md b/docs/quickstart.md index 02165029e..050563507 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -123,7 +123,7 @@ Add the BOM to your project: io.modelcontextprotocol.sdk mcp-bom - 2.0.0 + 2.1.0 pom import @@ -135,7 +135,7 @@ Add the BOM to your project: ```groovy dependencies { - implementation platform("io.modelcontextprotocol.sdk:mcp-bom:2.0.0") + implementation platform("io.modelcontextprotocol.sdk:mcp-bom:2.1.0") //... } ``` diff --git a/mcp-bom/pom.xml b/mcp-bom/pom.xml index 4ee9f55c9..18a364d21 100644 --- a/mcp-bom/pom.xml +++ b/mcp-bom/pom.xml @@ -7,7 +7,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0-SNAPSHOT + 2.1.0 mcp-bom diff --git a/mcp-core/pom.xml b/mcp-core/pom.xml index 79a417b69..5400fbd04 100644 --- a/mcp-core/pom.xml +++ b/mcp-core/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0-SNAPSHOT + 2.1.0 mcp-core jar diff --git a/mcp-json-jackson2/pom.xml b/mcp-json-jackson2/pom.xml index 5ccb32e9d..3374d5893 100644 --- a/mcp-json-jackson2/pom.xml +++ b/mcp-json-jackson2/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0-SNAPSHOT + 2.1.0 mcp-json-jackson2 jar @@ -78,7 +78,7 @@ io.modelcontextprotocol.sdk mcp-core - 2.1.0-SNAPSHOT + 2.1.0 com.networknt diff --git a/mcp-json-jackson3/pom.xml b/mcp-json-jackson3/pom.xml index 98ba82bab..cacf041de 100644 --- a/mcp-json-jackson3/pom.xml +++ b/mcp-json-jackson3/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0-SNAPSHOT + 2.1.0 mcp-json-jackson3 jar @@ -72,7 +72,7 @@ io.modelcontextprotocol.sdk mcp-core - 2.1.0-SNAPSHOT + 2.1.0 tools.jackson.core diff --git a/mcp-test/pom.xml b/mcp-test/pom.xml index 6002b84ae..db9680e35 100644 --- a/mcp-test/pom.xml +++ b/mcp-test/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0-SNAPSHOT + 2.1.0 mcp-test jar @@ -28,7 +28,7 @@ io.modelcontextprotocol.sdk mcp-core - 2.1.0-SNAPSHOT + 2.1.0 @@ -163,7 +163,7 @@ io.modelcontextprotocol.sdk mcp-json-jackson3 - 2.1.0-SNAPSHOT + 2.1.0 test @@ -174,7 +174,7 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 2.1.0-SNAPSHOT + 2.1.0 test diff --git a/mcp/pom.xml b/mcp/pom.xml index 5ae1301ae..cfeb136a3 100644 --- a/mcp/pom.xml +++ b/mcp/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0-SNAPSHOT + 2.1.0 mcp jar @@ -49,13 +49,13 @@ io.modelcontextprotocol.sdk mcp-json-jackson3 - 2.1.0-SNAPSHOT + 2.1.0 io.modelcontextprotocol.sdk mcp-core - 2.1.0-SNAPSHOT + 2.1.0 diff --git a/mkdocs.yml b/mkdocs.yml index de3487e14..d2e57340a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -48,7 +48,7 @@ nav: - Contributing: - Contributing Guide: contribute.md - Documentation: development.md - - API Reference: https://javadoc.io/doc/io.modelcontextprotocol.sdk/mcp-core/2.0.1 + - API Reference: https://javadoc.io/doc/io.modelcontextprotocol.sdk/mcp-core/2.1.0 markdown_extensions: - admonition diff --git a/pom.xml b/pom.xml index bdf0db889..276ebe351 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0-SNAPSHOT + 2.1.0 pom https://github.com/modelcontextprotocol/java-sdk From 1078d360275e5cd49a11eb245149ba9e1c93f99f Mon Sep 17 00:00:00 2001 From: Daniel Garnier-Moiroux Date: Thu, 15 Oct 2026 18:46:01 +0200 Subject: [PATCH 2/4] Exclude conformance tests from the Maven Central release build mcp's module-info refers to sibling modules by their JPMS names, which only exist once those modules are packaged as jars. Before the package phase, the reactor passes bare target/classes directories, which can't be automatic modules. So mcp is compiled at prepare-package. javadoc:aggregate forks a compile-phase build of the whole reactor, so the fork never produces mcp classes. Modules that depend on mcp at compile scope (the conformance tests) then fall back to Maven Central, where the release version doesn't exist yet. The conformance tests are not deployed, so leave them out of the release build. Signed-off-by: Daniel Garnier-Moiroux --- .github/workflows/maven-central-release.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/maven-central-release.yml b/.github/workflows/maven-central-release.yml index 9bee5b0d2..fa4fc8274 100644 --- a/.github/workflows/maven-central-release.yml +++ b/.github/workflows/maven-central-release.yml @@ -32,11 +32,15 @@ jobs: run: mvn -pl mcp-test -am -Pjackson2 test # Deploy runs all previous maven goals, including test and verify + # Conformance tests are not published, and they break javadoc:aggregate: its forked + # compile lifecycle never produces mcp classes (compiled at prepare-package), so their + # dependency on mcp falls back to Maven Central, where the release does not exist yet. - name: Publish to Maven Central run: | mvn --batch-mode \ -Prelease \ -Pjavadoc \ + -pl '!conformance-tests,!conformance-tests/client-jdk-http-client,!conformance-tests/client-spring-http-client,!conformance-tests/server-servlet' \ clean deploy env: MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} From 53574e23178cbec257bdae3a4f92a2d312c033bf Mon Sep 17 00:00:00 2001 From: Daniel Garnier-Moiroux Date: Thu, 15 Oct 2026 19:05:25 +0200 Subject: [PATCH 3/4] Use the Maven wrapper in all GitHub workflows The ubuntu-24.04 runner image now ships Maven 3.10, where the staging metadata is written as maven-metadata-local.xml. central-publishing 0.7.0 only removes maven-metadata-central-staging.xml before bundling, so the leftover files end up in the bundle and Central rejects it ("Bundle has content that does NOT have a .pom file"). Use ./mvnw everywhere, so CI runs the Maven version pinned in maven-wrapper.properties instead of whatever the runner image ships. Signed-off-by: Daniel Garnier-Moiroux --- .github/workflows/ci.yml | 4 ++-- .github/workflows/conformance.yml | 8 ++++---- .github/workflows/docs.yml | 2 +- .github/workflows/maven-central-release.yml | 6 ++++-- .github/workflows/publish-snapshot.yml | 8 ++++---- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f055b61a3..b808f7bd8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: cache: 'maven' - name: Build - run: mvn verify + run: ./mvnw verify jackson2-tests: name: Jackson 2 Integration Tests @@ -37,4 +37,4 @@ jobs: cache: 'maven' - name: Jackson 2 Integration Tests - run: mvn -pl mcp-test -am -Pjackson2 test + run: ./mvnw -pl mcp-test -am -Pjackson2 test diff --git a/.github/workflows/conformance.yml b/.github/workflows/conformance.yml index b7c7fae0d..9bffacdbb 100644 --- a/.github/workflows/conformance.yml +++ b/.github/workflows/conformance.yml @@ -22,8 +22,8 @@ jobs: - name: Build and start server run: | - mvn clean install -DskipTests - mvn exec:java -pl conformance-tests/server-servlet -Dexec.mainClass="io.modelcontextprotocol.conformance.server.ConformanceServlet" & + ./mvnw clean install -DskipTests + ./mvnw exec:java -pl conformance-tests/server-servlet -Dexec.mainClass="io.modelcontextprotocol.conformance.server.ConformanceServlet" & timeout 30 bash -c 'until curl -s http://localhost:8080/mcp > /dev/null 2>&1; do sleep 0.5; done' - name: Run conformance tests @@ -51,7 +51,7 @@ jobs: cache: 'maven' - name: Build client - run: mvn clean install -DskipTests + run: ./mvnw clean install -DskipTests - name: Run conformance test uses: modelcontextprotocol/conformance@v0.1.16 @@ -92,7 +92,7 @@ jobs: cache: 'maven' - name: Build client - run: mvn clean install -DskipTests + run: ./mvnw clean install -DskipTests - name: Run conformance test uses: modelcontextprotocol/conformance@v0.1.16 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 56b5a1207..710bc2668 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -37,7 +37,7 @@ jobs: - name: Deploy docs (push to main) if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' run: | - PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version --quiet -DforceStdout) + PROJECT_VERSION=$(./mvnw help:evaluate -Dexpression=project.version --quiet -DforceStdout) if [[ "${PROJECT_VERSION}" == *-SNAPSHOT ]]; then ALIAS="latest-snapshot" else diff --git a/.github/workflows/maven-central-release.yml b/.github/workflows/maven-central-release.yml index fa4fc8274..a0a8e59c7 100644 --- a/.github/workflows/maven-central-release.yml +++ b/.github/workflows/maven-central-release.yml @@ -29,15 +29,17 @@ jobs: # Deploy runs the integration tests, but only with Jackson 3 # We run Jackson 2 IT manually - name: Jackson 2 Integration Tests - run: mvn -pl mcp-test -am -Pjackson2 test + run: ./mvnw -pl mcp-test -am -Pjackson2 test # Deploy runs all previous maven goals, including test and verify # Conformance tests are not published, and they break javadoc:aggregate: its forked # compile lifecycle never produces mcp classes (compiled at prepare-package), so their # dependency on mcp falls back to Maven Central, where the release does not exist yet. + # Use the wrapper (Maven 3.9.x): with Maven 3.10, central-publishing 0.7.0 leaves + # maven-metadata-local.xml files in the bundle, and Central rejects it. - name: Publish to Maven Central run: | - mvn --batch-mode \ + ./mvnw --batch-mode \ -Prelease \ -Pjavadoc \ -pl '!conformance-tests,!conformance-tests/client-jdk-http-client,!conformance-tests/client-spring-http-client,!conformance-tests/server-servlet' \ diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index 9e7cca60a..03dd0af0f 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -30,10 +30,10 @@ jobs: node-version: '20' - name: Generate Java docs - run: mvn -Pjavadoc -B javadoc:aggregate + run: ./mvnw -Pjavadoc -B javadoc:aggregate - name: Jackson 2 Integration Tests - run: mvn -pl mcp-test -am -Pjackson2 test + run: ./mvnw -pl mcp-test -am -Pjackson2 test - name: Build with Maven and deploy to Sonatype snapshot repository env: @@ -41,7 +41,7 @@ jobs: MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} MAVEN_GPG_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }} run: | - mvn \ + ./mvnw \ -Pjavadoc \ -Prelease \ --batch-mode \ @@ -49,4 +49,4 @@ jobs: -Dmaven.repository.credentialScope=id - name: Capture project version - run: echo PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version --quiet -DforceStdout) >> $GITHUB_ENV + run: echo PROJECT_VERSION=$(./mvnw help:evaluate -Dexpression=project.version --quiet -DforceStdout) >> $GITHUB_ENV From 05d6ebfbaa642c152bd50f12f5a59f043ce04129 Mon Sep 17 00:00:00 2001 From: Daniel Garnier-Moiroux Date: Thu, 15 Oct 2026 18:29:22 +0200 Subject: [PATCH 4/4] Next development version Signed-off-by: Daniel Garnier-Moiroux --- conformance-tests/client-jdk-http-client/pom.xml | 4 ++-- conformance-tests/client-spring-http-client/pom.xml | 2 +- conformance-tests/pom.xml | 2 +- conformance-tests/server-servlet/pom.xml | 4 ++-- mcp-bom/pom.xml | 2 +- mcp-core/pom.xml | 2 +- mcp-json-jackson2/pom.xml | 4 ++-- mcp-json-jackson3/pom.xml | 4 ++-- mcp-test/pom.xml | 8 ++++---- mcp/pom.xml | 6 +++--- pom.xml | 2 +- 11 files changed, 20 insertions(+), 20 deletions(-) diff --git a/conformance-tests/client-jdk-http-client/pom.xml b/conformance-tests/client-jdk-http-client/pom.xml index b1af17985..8ff7788e4 100644 --- a/conformance-tests/client-jdk-http-client/pom.xml +++ b/conformance-tests/client-jdk-http-client/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk conformance-tests - 2.1.0 + 2.2.0-SNAPSHOT client-jdk-http-client jar @@ -29,7 +29,7 @@ io.modelcontextprotocol.sdk mcp - 2.1.0 + 2.2.0-SNAPSHOT diff --git a/conformance-tests/client-spring-http-client/pom.xml b/conformance-tests/client-spring-http-client/pom.xml index 48fd0e2c3..144fd1a6a 100644 --- a/conformance-tests/client-spring-http-client/pom.xml +++ b/conformance-tests/client-spring-http-client/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk conformance-tests - 2.1.0 + 2.2.0-SNAPSHOT client-spring-http-client jar diff --git a/conformance-tests/pom.xml b/conformance-tests/pom.xml index b79eb0f94..a050b8780 100644 --- a/conformance-tests/pom.xml +++ b/conformance-tests/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0 + 2.2.0-SNAPSHOT conformance-tests pom diff --git a/conformance-tests/server-servlet/pom.xml b/conformance-tests/server-servlet/pom.xml index a071b67bf..4b9c4e89e 100644 --- a/conformance-tests/server-servlet/pom.xml +++ b/conformance-tests/server-servlet/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk conformance-tests - 2.1.0 + 2.2.0-SNAPSHOT server-servlet jar @@ -29,7 +29,7 @@ io.modelcontextprotocol.sdk mcp - 2.1.0 + 2.2.0-SNAPSHOT diff --git a/mcp-bom/pom.xml b/mcp-bom/pom.xml index 18a364d21..55a4dcdb0 100644 --- a/mcp-bom/pom.xml +++ b/mcp-bom/pom.xml @@ -7,7 +7,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0 + 2.2.0-SNAPSHOT mcp-bom diff --git a/mcp-core/pom.xml b/mcp-core/pom.xml index 5400fbd04..b01c16410 100644 --- a/mcp-core/pom.xml +++ b/mcp-core/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0 + 2.2.0-SNAPSHOT mcp-core jar diff --git a/mcp-json-jackson2/pom.xml b/mcp-json-jackson2/pom.xml index 3374d5893..4ad85fdd7 100644 --- a/mcp-json-jackson2/pom.xml +++ b/mcp-json-jackson2/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0 + 2.2.0-SNAPSHOT mcp-json-jackson2 jar @@ -78,7 +78,7 @@ io.modelcontextprotocol.sdk mcp-core - 2.1.0 + 2.2.0-SNAPSHOT com.networknt diff --git a/mcp-json-jackson3/pom.xml b/mcp-json-jackson3/pom.xml index cacf041de..cf00f08d1 100644 --- a/mcp-json-jackson3/pom.xml +++ b/mcp-json-jackson3/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0 + 2.2.0-SNAPSHOT mcp-json-jackson3 jar @@ -72,7 +72,7 @@ io.modelcontextprotocol.sdk mcp-core - 2.1.0 + 2.2.0-SNAPSHOT tools.jackson.core diff --git a/mcp-test/pom.xml b/mcp-test/pom.xml index db9680e35..331d4bb18 100644 --- a/mcp-test/pom.xml +++ b/mcp-test/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0 + 2.2.0-SNAPSHOT mcp-test jar @@ -28,7 +28,7 @@ io.modelcontextprotocol.sdk mcp-core - 2.1.0 + 2.2.0-SNAPSHOT @@ -163,7 +163,7 @@ io.modelcontextprotocol.sdk mcp-json-jackson3 - 2.1.0 + 2.2.0-SNAPSHOT test @@ -174,7 +174,7 @@ io.modelcontextprotocol.sdk mcp-json-jackson2 - 2.1.0 + 2.2.0-SNAPSHOT test diff --git a/mcp/pom.xml b/mcp/pom.xml index cfeb136a3..b3e3cd9d4 100644 --- a/mcp/pom.xml +++ b/mcp/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0 + 2.2.0-SNAPSHOT mcp jar @@ -49,13 +49,13 @@ io.modelcontextprotocol.sdk mcp-json-jackson3 - 2.1.0 + 2.2.0-SNAPSHOT io.modelcontextprotocol.sdk mcp-core - 2.1.0 + 2.2.0-SNAPSHOT diff --git a/pom.xml b/pom.xml index 276ebe351..f912f0ae1 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.modelcontextprotocol.sdk mcp-parent - 2.1.0 + 2.2.0-SNAPSHOT pom https://github.com/modelcontextprotocol/java-sdk