From efc33420036f18ec86ea7469be62015f36dae0db Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Tue, 7 Oct 2025 22:57:32 +0200 Subject: [PATCH 1/6] chore: Pin MCP SDK explicitly (but same version) --- MODULE.bazel | 1 + MODULE.bom.handlebars.yaml | 3 +++ maven_install.json | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index f997f6c22..17cca2c8b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -119,6 +119,7 @@ maven.install( "com.github.vorburger.adk-java:google-adk:0c4eed584f", "com.github.vorburger.adk-java:google-adk-dev:0c4eed584f", "org.commonmark:commonmark:0.25.0", + "io.modelcontextprotocol.sdk:mcp:0.11.3", ], # NB: Never de-activate duplicate_version_warning = "error"! diff --git a/MODULE.bom.handlebars.yaml b/MODULE.bom.handlebars.yaml index a07aec54f..95fb3e08f 100644 --- a/MODULE.bom.handlebars.yaml +++ b/MODULE.bom.handlebars.yaml @@ -145,6 +145,9 @@ bom: # https://github.com/commonmark/commonmark-java - "org.commonmark:commonmark:0.25.0" + # Beware of https://github.com/enola-dev/enola/issues/1857 + - io.modelcontextprotocol.sdk:mcp:0.11.3 + bomx: - "com.github.vorburger.adk-java:google-adk-langchain4j:{{version.adk}}": exclusions: diff --git a/maven_install.json b/maven_install.json index 8c1d63034..9e4711d2b 100644 --- a/maven_install.json +++ b/maven_install.json @@ -1,6 +1,6 @@ { "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", - "__INPUT_ARTIFACTS_HASH": -2011315360, + "__INPUT_ARTIFACTS_HASH": 445843091, "__RESOLVED_ARTIFACTS_HASH": 1370887039, "conflict_resolution": { "com.github.multiformats:java-multihash:d238c77f11a0ff33970ad43578ae11f049324848": "com.github.multiformats:java-multihash:1.3.6", From e0a03d309c62b6b0b69ac8cddbfaecb4d66308b6 Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Tue, 7 Oct 2025 22:59:32 +0200 Subject: [PATCH 2/6] chore: Bump MCP SDK from 0.11.3 to 0.12.1 --- MODULE.bazel | 2 +- MODULE.bom.handlebars.yaml | 2 +- docs/dev/dependencies.txt | 2 +- maven_install.json | 12 +++++++----- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 17cca2c8b..a806d044e 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -119,7 +119,7 @@ maven.install( "com.github.vorburger.adk-java:google-adk:0c4eed584f", "com.github.vorburger.adk-java:google-adk-dev:0c4eed584f", "org.commonmark:commonmark:0.25.0", - "io.modelcontextprotocol.sdk:mcp:0.11.3", + "io.modelcontextprotocol.sdk:mcp:0.12.1", ], # NB: Never de-activate duplicate_version_warning = "error"! diff --git a/MODULE.bom.handlebars.yaml b/MODULE.bom.handlebars.yaml index 95fb3e08f..17e9c1051 100644 --- a/MODULE.bom.handlebars.yaml +++ b/MODULE.bom.handlebars.yaml @@ -146,7 +146,7 @@ bom: - "org.commonmark:commonmark:0.25.0" # Beware of https://github.com/enola-dev/enola/issues/1857 - - io.modelcontextprotocol.sdk:mcp:0.11.3 + - io.modelcontextprotocol.sdk:mcp:0.12.1 bomx: - "com.github.vorburger.adk-java:google-adk-langchain4j:{{version.adk}}": diff --git a/docs/dev/dependencies.txt b/docs/dev/dependencies.txt index 2b2308f9e..d6374265c 100644 --- a/docs/dev/dependencies.txt +++ b/docs/dev/dependencies.txt @@ -173,7 +173,7 @@ io.grpc:grpc-util:1.75.0 io.grpc:grpc-xds:1.69.0 io.micrometer:micrometer-commons:1.14.2 io.micrometer:micrometer-observation:1.14.2 -io.modelcontextprotocol.sdk:mcp:0.11.3 +io.modelcontextprotocol.sdk:mcp:0.12.1 io.netty:netty-buffer:4.1.124.Final io.netty:netty-codec:4.1.124.Final io.netty:netty-codec-http:4.1.124.Final diff --git a/maven_install.json b/maven_install.json index 9e4711d2b..3a0cff7b7 100644 --- a/maven_install.json +++ b/maven_install.json @@ -1,7 +1,7 @@ { "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", - "__INPUT_ARTIFACTS_HASH": 445843091, - "__RESOLVED_ARTIFACTS_HASH": 1370887039, + "__INPUT_ARTIFACTS_HASH": 1107216016, + "__RESOLVED_ARTIFACTS_HASH": -897190357, "conflict_resolution": { "com.github.multiformats:java-multihash:d238c77f11a0ff33970ad43578ae11f049324848": "com.github.multiformats:java-multihash:1.3.6", "com.google.j2objc:j2objc-annotations:2.8": "com.google.j2objc:j2objc-annotations:3.0.0", @@ -1230,10 +1230,10 @@ }, "io.modelcontextprotocol.sdk:mcp": { "shasums": { - "jar": "a5490c9f2d5c19126d00ed0983bf991c4d7538ee7b0c74b58959d768613043b3", - "sources": "cb93adaed2e478baedc18585a532e8158e9cdc9031ea065e0b8192e34121a155" + "jar": "13a5f7879ad792bb4e77a2687c61eb350373f746ce7324a19b8f7778d2739aab", + "sources": "70173609d2a452f6dfc700e161996a41e91d0e62f6792f8d8d2abb821c061b63" }, - "version": "0.11.3" + "version": "0.12.1" }, "io.netty:netty-buffer": { "shasums": { @@ -6198,6 +6198,8 @@ "io.modelcontextprotocol.sdk:mcp": [ "io.modelcontextprotocol.client", "io.modelcontextprotocol.client.transport", + "io.modelcontextprotocol.client.transport.customizer", + "io.modelcontextprotocol.common", "io.modelcontextprotocol.server", "io.modelcontextprotocol.server.transport", "io.modelcontextprotocol.spec", From d497590eb107cea1df3347f70abb281574047474 Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Tue, 7 Oct 2025 23:35:52 +0200 Subject: [PATCH 3/6] chore: Bump MCP SDK from 0.12.1 to 0.13.1 --- MODULE.bazel | 2 +- MODULE.bom.handlebars.yaml | 2 +- MODULE.update.bash | 2 + docs/dev/bazel.md | 4 +- docs/dev/dependencies.txt | 5 +- java/dev/enola/ai/adk/tool/BUILD | 2 +- java/dev/enola/ai/mcp/BUILD | 4 +- java/dev/enola/ai/mcp/McpLoader.java | 8 +- java/dev/enola/ai/mcp/cli/BUILD | 4 +- .../dev/enola/ai/mcp/cli/CallToolCommand.java | 9 +- .../enola/common/jackson/ObjectMappers.java | 8 ++ maven_install.json | 86 ++++++++++++++++--- 12 files changed, 115 insertions(+), 21 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index a806d044e..205431958 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -119,7 +119,7 @@ maven.install( "com.github.vorburger.adk-java:google-adk:0c4eed584f", "com.github.vorburger.adk-java:google-adk-dev:0c4eed584f", "org.commonmark:commonmark:0.25.0", - "io.modelcontextprotocol.sdk:mcp:0.12.1", + "io.modelcontextprotocol.sdk:mcp:0.13.1", ], # NB: Never de-activate duplicate_version_warning = "error"! diff --git a/MODULE.bom.handlebars.yaml b/MODULE.bom.handlebars.yaml index 17e9c1051..afcf9a331 100644 --- a/MODULE.bom.handlebars.yaml +++ b/MODULE.bom.handlebars.yaml @@ -146,7 +146,7 @@ bom: - "org.commonmark:commonmark:0.25.0" # Beware of https://github.com/enola-dev/enola/issues/1857 - - io.modelcontextprotocol.sdk:mcp:0.12.1 + - io.modelcontextprotocol.sdk:mcp:0.13.1 bomx: - "com.github.vorburger.adk-java:google-adk-langchain4j:{{version.adk}}": diff --git a/MODULE.update.bash b/MODULE.update.bash index d2cbbbe54..61dadb4e7 100755 --- a/MODULE.update.bash +++ b/MODULE.update.bash @@ -24,4 +24,6 @@ mv MODULE.bazel.new MODULE.bazel REPIN=1 bazel run @maven//:pin +tools/javac/classpath.bash + ./test.bash diff --git a/docs/dev/bazel.md b/docs/dev/bazel.md index 0af4f7513..d80abe3ca 100644 --- a/docs/dev/bazel.md +++ b/docs/dev/bazel.md @@ -28,9 +28,9 @@ As per https://github.com/bazelbuild/rules_jvm_external/blob/master/README.md#updating-maven_installjson : -1. Edit [dependencies](dependencies.md) in [`WORKSPACE.bazel`](//WORKSPACE.bazel) (later [`MODULE.bazel`](//MODULE.bazel)) +1. Edit [dependencies](dependencies.md) in [`MODULE.bom.handlebars.yaml`](//MODULE.bom.handlebars.yaml) -1. `REPIN=1 bazelisk run @maven//:pin` +1. Run `MODULE.update.bash` PS: Use `bazelisk query "@maven//:*"` to see all targets. diff --git a/docs/dev/dependencies.txt b/docs/dev/dependencies.txt index d6374265c..3f8621824 100644 --- a/docs/dev/dependencies.txt +++ b/docs/dev/dependencies.txt @@ -173,7 +173,10 @@ io.grpc:grpc-util:1.75.0 io.grpc:grpc-xds:1.69.0 io.micrometer:micrometer-commons:1.14.2 io.micrometer:micrometer-observation:1.14.2 -io.modelcontextprotocol.sdk:mcp:0.12.1 +io.modelcontextprotocol.sdk:mcp:0.13.1 +io.modelcontextprotocol.sdk:mcp-core:0.13.1 +io.modelcontextprotocol.sdk:mcp-json:0.13.1 +io.modelcontextprotocol.sdk:mcp-json-jackson2:0.13.1 io.netty:netty-buffer:4.1.124.Final io.netty:netty-codec:4.1.124.Final io.netty:netty-codec-http:4.1.124.Final diff --git a/java/dev/enola/ai/adk/tool/BUILD b/java/dev/enola/ai/adk/tool/BUILD index 14f1f7ae9..b58383188 100644 --- a/java/dev/enola/ai/adk/tool/BUILD +++ b/java/dev/enola/ai/adk/tool/BUILD @@ -39,7 +39,7 @@ java_library( "//java/dev/enola/common/name", # "@maven//:com_google_adk_google_adk", "@maven//:com_github_vorburger_adk_java_google_adk", - "@maven//:io_modelcontextprotocol_sdk_mcp", + "@maven//:io_modelcontextprotocol_sdk_mcp_core", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_genai_google_genai", "@maven//:com_google_guava_guava", diff --git a/java/dev/enola/ai/mcp/BUILD b/java/dev/enola/ai/mcp/BUILD index 1b404cb51..ad0e6a3e2 100644 --- a/java/dev/enola/ai/mcp/BUILD +++ b/java/dev/enola/ai/mcp/BUILD @@ -31,11 +31,13 @@ java_library( "//java/dev/enola/common/io", "//java/dev/enola/common/io/object", "//java/dev/enola/common/io/object/jackson", + "//java/dev/enola/common/jackson", "//java/dev/enola/common/name", "//java/dev/enola/common/secret", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", - "@maven//:io_modelcontextprotocol_sdk_mcp", + "@maven//:io_modelcontextprotocol_sdk_mcp_core", + "@maven//:io_modelcontextprotocol_sdk_mcp_json_jackson2", "@maven//:org_jspecify_jspecify", "@maven//:org_slf4j_slf4j_api", ], diff --git a/java/dev/enola/ai/mcp/McpLoader.java b/java/dev/enola/ai/mcp/McpLoader.java index 36ecba79f..2f7801dd3 100644 --- a/java/dev/enola/ai/mcp/McpLoader.java +++ b/java/dev/enola/ai/mcp/McpLoader.java @@ -17,8 +17,8 @@ */ package dev.enola.ai.mcp; -import static dev.enola.ai.mcp.McpServerConnectionsConfig.ServerConnection.Type.*; import static dev.enola.ai.mcp.McpServerConnectionsConfig.ServerConnection.Type.http; +import static dev.enola.ai.mcp.McpServerConnectionsConfig.ServerConnection.Type.sse; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Strings; @@ -31,6 +31,7 @@ import dev.enola.common.io.object.ObjectReader; import dev.enola.common.io.object.jackson.JacksonObjectReaderWriterChain; import dev.enola.common.io.resource.ReadableResource; +import dev.enola.common.jackson.ObjectMappers; import dev.enola.common.name.NamedTypedObjectProvider; import dev.enola.common.secret.SecretManager; @@ -40,6 +41,7 @@ import io.modelcontextprotocol.client.transport.HttpClientStreamableHttpTransport; import io.modelcontextprotocol.client.transport.ServerParameters; import io.modelcontextprotocol.client.transport.StdioClientTransport; +import io.modelcontextprotocol.json.jackson.JacksonMcpJsonMapper; import io.modelcontextprotocol.spec.McpClientTransport; import io.modelcontextprotocol.spec.McpSchema; @@ -148,7 +150,9 @@ private McpClientTransport createTransport( switch (connectionConfig.type) { case stdio -> { var params = createStdIoServerParameters(connectionConfig); - var transport = new StdioClientTransport(params); + var transport = + new StdioClientTransport( + params, new JacksonMcpJsonMapper(ObjectMappers.INSTANCE)); transport.setStdErrorHandler(new McpServerStdErrLogConsumer(origin)); return transport; } diff --git a/java/dev/enola/ai/mcp/cli/BUILD b/java/dev/enola/ai/mcp/cli/BUILD index 178c23a92..8742c0f74 100644 --- a/java/dev/enola/ai/mcp/cli/BUILD +++ b/java/dev/enola/ai/mcp/cli/BUILD @@ -37,10 +37,12 @@ java_library( "//java/dev/enola/common/io", "//java/dev/enola/common/io/iri", "//java/dev/enola/common/io/object/jackson", + "//java/dev/enola/common/jackson", "//java/dev/enola/common/secret/auto", "@maven//:com_google_guava_guava", "@maven//:info_picocli_picocli", - "@maven//:io_modelcontextprotocol_sdk_mcp", + "@maven//:io_modelcontextprotocol_sdk_mcp_core", + "@maven//:io_modelcontextprotocol_sdk_mcp_json_jackson2", "@maven//:org_jspecify_jspecify", "@maven//:org_slf4j_slf4j_api", ], diff --git a/java/dev/enola/ai/mcp/cli/CallToolCommand.java b/java/dev/enola/ai/mcp/cli/CallToolCommand.java index 4a5c7ae60..fa17d3d8f 100644 --- a/java/dev/enola/ai/mcp/cli/CallToolCommand.java +++ b/java/dev/enola/ai/mcp/cli/CallToolCommand.java @@ -25,8 +25,10 @@ import dev.enola.common.io.resource.FileResource; import dev.enola.common.io.resource.ResourceProvider; import dev.enola.common.io.resource.ResourceProviders; +import dev.enola.common.jackson.ObjectMappers; import dev.enola.common.secret.auto.AutoSecretManager; +import io.modelcontextprotocol.json.jackson.JacksonMcpJsonMapper; import io.modelcontextprotocol.spec.McpSchema.CallToolRequest; import org.jspecify.annotations.Nullable; @@ -72,7 +74,12 @@ public Integer call() throws Exception { mcpOptions.load(loader, rp); } var toolClient = loader.get(server, "CLI"); - var callToolRequest = new CallToolRequest(tool, argumentsAsJson); + var callToolRequest = + CallToolRequest.builder() + .name(tool) + .arguments( + new JacksonMcpJsonMapper(ObjectMappers.INSTANCE), argumentsAsJson) + .build(); var callToolResult = toolClient.callTool(callToolRequest); for (var content : callToolResult.content()) { System.out.println(content); diff --git a/java/dev/enola/common/jackson/ObjectMappers.java b/java/dev/enola/common/jackson/ObjectMappers.java index faf38044b..3bb57885e 100644 --- a/java/dev/enola/common/jackson/ObjectMappers.java +++ b/java/dev/enola/common/jackson/ObjectMappers.java @@ -33,6 +33,14 @@ public final class ObjectMappers { + public static final ObjectMapper INSTANCE = newObjectMapper(); + + private static ObjectMapper newObjectMapper() { + var objectMapper = new ObjectMapper(); + configure(objectMapper); + return objectMapper; + } + /** Configure the given ObjectMapper with Enola-specific settings. */ public static void configure(ObjectMapper mapper) { // Do NOT use mapper.findAndRegisterModules(); diff --git a/maven_install.json b/maven_install.json index 3a0cff7b7..66a6e1eaa 100644 --- a/maven_install.json +++ b/maven_install.json @@ -1,7 +1,7 @@ { "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", - "__INPUT_ARTIFACTS_HASH": 1107216016, - "__RESOLVED_ARTIFACTS_HASH": -897190357, + "__INPUT_ARTIFACTS_HASH": -1742143981, + "__RESOLVED_ARTIFACTS_HASH": -1565620318, "conflict_resolution": { "com.github.multiformats:java-multihash:d238c77f11a0ff33970ad43578ae11f049324848": "com.github.multiformats:java-multihash:1.3.6", "com.google.j2objc:j2objc-annotations:2.8": "com.google.j2objc:j2objc-annotations:3.0.0", @@ -1230,10 +1230,30 @@ }, "io.modelcontextprotocol.sdk:mcp": { "shasums": { - "jar": "13a5f7879ad792bb4e77a2687c61eb350373f746ce7324a19b8f7778d2739aab", - "sources": "70173609d2a452f6dfc700e161996a41e91d0e62f6792f8d8d2abb821c061b63" + "jar": "61ccde8c6d8ec9115513492863cbb5b9203fbae984a7d059888fb4abfa1deb0a" }, - "version": "0.12.1" + "version": "0.13.1" + }, + "io.modelcontextprotocol.sdk:mcp-core": { + "shasums": { + "jar": "01e055ffa08ba18e33234b5c37c3904f7b065b1129266e515ecfaba3696cf54d", + "sources": "628ccb27dd6f168c7a43ce07f42bcc985e4b88967109f1c595bed3ba2b646c11" + }, + "version": "0.13.1" + }, + "io.modelcontextprotocol.sdk:mcp-json": { + "shasums": { + "jar": "16ec7f8dc4f1600e23185264ceba0ca37b967c0057562f0a8b13fbe1880153cb", + "sources": "78fca1d2fad4978e18549806ae79b4f2dfb8ba7b2ab848456939d8f0119512de" + }, + "version": "0.13.1" + }, + "io.modelcontextprotocol.sdk:mcp-json-jackson2": { + "shasums": { + "jar": "611219d50976e24791f77acbd853cdbaa0eadc6711a9e5b3cbbbf0b491319995", + "sources": "b6106f7eea3b60e431082c9fcad020ae580ab64c3590b951e1f55f41bea4b5f7" + }, + "version": "0.13.1" }, "io.netty:netty-buffer": { "shasums": { @@ -3778,11 +3798,20 @@ "io.micrometer:micrometer-commons" ], "io.modelcontextprotocol.sdk:mcp": [ - "com.fasterxml.jackson.core:jackson-databind", - "com.networknt:json-schema-validator", + "io.modelcontextprotocol.sdk:mcp-core", + "io.modelcontextprotocol.sdk:mcp-json-jackson2" + ], + "io.modelcontextprotocol.sdk:mcp-core": [ + "com.fasterxml.jackson.core:jackson-annotations", + "io.modelcontextprotocol.sdk:mcp-json", "io.projectreactor:reactor-core", "org.slf4j:slf4j-api" ], + "io.modelcontextprotocol.sdk:mcp-json-jackson2": [ + "com.fasterxml.jackson.core:jackson-databind", + "com.networknt:json-schema-validator", + "io.modelcontextprotocol.sdk:mcp-json" + ], "io.netty:netty-buffer": [ "io.netty:netty-common" ], @@ -6195,16 +6224,26 @@ "io.micrometer.observation.docs", "io.micrometer.observation.transport" ], - "io.modelcontextprotocol.sdk:mcp": [ + "io.modelcontextprotocol.sdk:mcp-core": [ "io.modelcontextprotocol.client", "io.modelcontextprotocol.client.transport", "io.modelcontextprotocol.client.transport.customizer", "io.modelcontextprotocol.common", + "io.modelcontextprotocol.json", + "io.modelcontextprotocol.json.schema", "io.modelcontextprotocol.server", "io.modelcontextprotocol.server.transport", "io.modelcontextprotocol.spec", "io.modelcontextprotocol.util" ], + "io.modelcontextprotocol.sdk:mcp-json": [ + "io.modelcontextprotocol.json", + "io.modelcontextprotocol.json.schema" + ], + "io.modelcontextprotocol.sdk:mcp-json-jackson2": [ + "io.modelcontextprotocol.json.jackson", + "io.modelcontextprotocol.json.schema.jackson" + ], "io.netty:netty-buffer": [ "io.netty.buffer", "io.netty.buffer.search" @@ -10105,7 +10144,12 @@ "io.micrometer:micrometer-observation", "io.micrometer:micrometer-observation:jar:sources", "io.modelcontextprotocol.sdk:mcp", - "io.modelcontextprotocol.sdk:mcp:jar:sources", + "io.modelcontextprotocol.sdk:mcp-core", + "io.modelcontextprotocol.sdk:mcp-core:jar:sources", + "io.modelcontextprotocol.sdk:mcp-json", + "io.modelcontextprotocol.sdk:mcp-json-jackson2", + "io.modelcontextprotocol.sdk:mcp-json-jackson2:jar:sources", + "io.modelcontextprotocol.sdk:mcp-json:jar:sources", "io.netty:netty-buffer", "io.netty:netty-buffer:jar:sources", "io.netty:netty-codec", @@ -10951,7 +10995,12 @@ "io.micrometer:micrometer-observation", "io.micrometer:micrometer-observation:jar:sources", "io.modelcontextprotocol.sdk:mcp", - "io.modelcontextprotocol.sdk:mcp:jar:sources", + "io.modelcontextprotocol.sdk:mcp-core", + "io.modelcontextprotocol.sdk:mcp-core:jar:sources", + "io.modelcontextprotocol.sdk:mcp-json", + "io.modelcontextprotocol.sdk:mcp-json-jackson2", + "io.modelcontextprotocol.sdk:mcp-json-jackson2:jar:sources", + "io.modelcontextprotocol.sdk:mcp-json:jar:sources", "io.netty:netty-buffer", "io.netty:netty-buffer:jar:sources", "io.netty:netty-codec", @@ -11972,6 +12021,22 @@ "io.micrometer.observation.contextpropagation.ObservationThreadLocalAccessor" ] }, + "io.modelcontextprotocol.sdk:mcp-json-jackson2": { + "io.modelcontextprotocol.json.McpJsonMapperSupplier": [ + "io.modelcontextprotocol.json.jackson.JacksonMcpJsonMapperSupplier" + ], + "io.modelcontextprotocol.json.schema.JsonSchemaValidatorSupplier": [ + "io.modelcontextprotocol.json.schema.jackson.JacksonJsonSchemaValidatorSupplier" + ] + }, + "io.modelcontextprotocol.sdk:mcp-json-jackson2:jar:sources": { + "io.modelcontextprotocol.json.McpJsonMapperSupplier": [ + "io.modelcontextprotocol.json.jackson.JacksonMcpJsonMapperSupplier" + ], + "io.modelcontextprotocol.json.schema.JsonSchemaValidatorSupplier": [ + "io.modelcontextprotocol.json.schema.jackson.JacksonJsonSchemaValidatorSupplier" + ] + }, "io.netty:netty-common": { "reactor.blockhound.integration.BlockHoundIntegration": [ "io.netty.util.internal.Hidden$NettyBlockHoundIntegration" @@ -13314,6 +13379,7 @@ "com.github.vorburger.adk-java:google-adk:jar:sources", "com.google.guava:listenablefuture:jar:sources", "guru.nidi.com.eclipsesource.j2v8:j2v8_linux_x86_64:jar:sources", + "io.modelcontextprotocol.sdk:mcp:jar:sources", "org.apache.tomcat:annotations-api:jar:sources" ], "version": "2" From 121459c1d58158f5e56f68d562d1622f374d2219 Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Tue, 7 Oct 2025 23:37:39 +0200 Subject: [PATCH 4/6] chore: Bump MCP SDK from 0.13.1 to 0.14.1 --- MODULE.bazel | 2 +- MODULE.bom.handlebars.yaml | 2 +- docs/dev/dependencies.txt | 8 ++++---- maven_install.json | 26 +++++++++++++------------- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 205431958..d95c47d5e 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -119,7 +119,7 @@ maven.install( "com.github.vorburger.adk-java:google-adk:0c4eed584f", "com.github.vorburger.adk-java:google-adk-dev:0c4eed584f", "org.commonmark:commonmark:0.25.0", - "io.modelcontextprotocol.sdk:mcp:0.13.1", + "io.modelcontextprotocol.sdk:mcp:0.14.1", ], # NB: Never de-activate duplicate_version_warning = "error"! diff --git a/MODULE.bom.handlebars.yaml b/MODULE.bom.handlebars.yaml index afcf9a331..b5b4ab82e 100644 --- a/MODULE.bom.handlebars.yaml +++ b/MODULE.bom.handlebars.yaml @@ -146,7 +146,7 @@ bom: - "org.commonmark:commonmark:0.25.0" # Beware of https://github.com/enola-dev/enola/issues/1857 - - io.modelcontextprotocol.sdk:mcp:0.13.1 + - io.modelcontextprotocol.sdk:mcp:0.14.1 bomx: - "com.github.vorburger.adk-java:google-adk-langchain4j:{{version.adk}}": diff --git a/docs/dev/dependencies.txt b/docs/dev/dependencies.txt index 3f8621824..513196cd5 100644 --- a/docs/dev/dependencies.txt +++ b/docs/dev/dependencies.txt @@ -173,10 +173,10 @@ io.grpc:grpc-util:1.75.0 io.grpc:grpc-xds:1.69.0 io.micrometer:micrometer-commons:1.14.2 io.micrometer:micrometer-observation:1.14.2 -io.modelcontextprotocol.sdk:mcp:0.13.1 -io.modelcontextprotocol.sdk:mcp-core:0.13.1 -io.modelcontextprotocol.sdk:mcp-json:0.13.1 -io.modelcontextprotocol.sdk:mcp-json-jackson2:0.13.1 +io.modelcontextprotocol.sdk:mcp:0.14.1 +io.modelcontextprotocol.sdk:mcp-core:0.14.1 +io.modelcontextprotocol.sdk:mcp-json:0.14.1 +io.modelcontextprotocol.sdk:mcp-json-jackson2:0.14.1 io.netty:netty-buffer:4.1.124.Final io.netty:netty-codec:4.1.124.Final io.netty:netty-codec-http:4.1.124.Final diff --git a/maven_install.json b/maven_install.json index 66a6e1eaa..8a2ee996a 100644 --- a/maven_install.json +++ b/maven_install.json @@ -1,7 +1,7 @@ { "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", - "__INPUT_ARTIFACTS_HASH": -1742143981, - "__RESOLVED_ARTIFACTS_HASH": -1565620318, + "__INPUT_ARTIFACTS_HASH": 806950290, + "__RESOLVED_ARTIFACTS_HASH": -219549620, "conflict_resolution": { "com.github.multiformats:java-multihash:d238c77f11a0ff33970ad43578ae11f049324848": "com.github.multiformats:java-multihash:1.3.6", "com.google.j2objc:j2objc-annotations:2.8": "com.google.j2objc:j2objc-annotations:3.0.0", @@ -1230,30 +1230,30 @@ }, "io.modelcontextprotocol.sdk:mcp": { "shasums": { - "jar": "61ccde8c6d8ec9115513492863cbb5b9203fbae984a7d059888fb4abfa1deb0a" + "jar": "3cdb040a96d4890099ce14be547c35ca2e740547af6fa677afe1243cccb8e760" }, - "version": "0.13.1" + "version": "0.14.1" }, "io.modelcontextprotocol.sdk:mcp-core": { "shasums": { - "jar": "01e055ffa08ba18e33234b5c37c3904f7b065b1129266e515ecfaba3696cf54d", - "sources": "628ccb27dd6f168c7a43ce07f42bcc985e4b88967109f1c595bed3ba2b646c11" + "jar": "7f34586cc4ab1d7684cfe65183989c9290a2600538c3268a7de3463feb9798f6", + "sources": "98d2b252aa3dcdcfbb48a0e235a67b5425e9e2ac901852ede541a0c055c5b24c" }, - "version": "0.13.1" + "version": "0.14.1" }, "io.modelcontextprotocol.sdk:mcp-json": { "shasums": { - "jar": "16ec7f8dc4f1600e23185264ceba0ca37b967c0057562f0a8b13fbe1880153cb", - "sources": "78fca1d2fad4978e18549806ae79b4f2dfb8ba7b2ab848456939d8f0119512de" + "jar": "088fb3e6c50dde354f403a5ec064b9e32d16e217d1a73275b239dfb168723ff0", + "sources": "4a5c761a7fdbe886d61cd87692d40748b0e71733f5b884f676c8fff16eca7118" }, - "version": "0.13.1" + "version": "0.14.1" }, "io.modelcontextprotocol.sdk:mcp-json-jackson2": { "shasums": { - "jar": "611219d50976e24791f77acbd853cdbaa0eadc6711a9e5b3cbbbf0b491319995", - "sources": "b6106f7eea3b60e431082c9fcad020ae580ab64c3590b951e1f55f41bea4b5f7" + "jar": "8d09a0e827b79eb58827b77433fcf09857d851c81ef49941d7e77725bde3220a", + "sources": "34ae0b2e7abdddd8bf324a5b800b109f2a54c03c879276c5fbbf0724fe87ea1f" }, - "version": "0.13.1" + "version": "0.14.1" }, "io.netty:netty-buffer": { "shasums": { From 59a29a087cc116d612f309bbbe7ed951c17f24fe Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Wed, 8 Oct 2025 00:02:45 +0200 Subject: [PATCH 5/6] chore: Increase logging to understand MCP call-tool CLI related build failure on CLI --- docs/use/mcp/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/use/mcp/index.md b/docs/use/mcp/index.md index 582a4a6a2..f6f93a0ff 100644 --- a/docs/use/mcp/index.md +++ b/docs/use/mcp/index.md @@ -25,7 +25,7 @@ This is similar to the [MCP Inspector](https://github.com/modelcontextprotocol/i ## Call MCP Tool ```bash cd ../.././.. -$ ./enola mcp call-tool modelcontextprotocol/everything echo '{"message":"hi"}' +$ ./enola -v mcp call-tool modelcontextprotocol/everything echo '{"message":"hi"}' ... ``` @@ -39,7 +39,7 @@ $ ./enola mcp list-tools --help From ee44221884e568eb8970185b8b02ea7f327cb876 Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Wed, 8 Oct 2025 00:41:06 +0200 Subject: [PATCH 6/6] fix: Unblock build by temporarily de-activating ExecMD on MCP docs --- docs/use/mcp/index.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/use/mcp/index.md b/docs/use/mcp/index.md index f6f93a0ff..c93b43add 100644 --- a/docs/use/mcp/index.md +++ b/docs/use/mcp/index.md @@ -24,14 +24,18 @@ This is similar to the [MCP Inspector](https://github.com/modelcontextprotocol/i ## Call MCP Tool -```bash cd ../.././.. + + +```sh $ ./enola -v mcp call-tool modelcontextprotocol/everything echo '{"message":"hi"}' ... ``` ## List MCP Tools -```bash $? cd ../.././.. + + +```sh $ ./enola mcp list-tools --help ... ```