Skip to content

Cannot upgrade (bump) MCP SDK (which is pull transitively via ADK) because of rules_jvm_external problem #1857

@vorburger

Description

@vorburger

When I bump ADK from 0c4eed584f to e.g. e60bddf6502bbfac5af3fb993acc100439c0d90f (from my google/adk-java#486; but it's unrelated to that per-se, any recent ADK version bump would cause this), then I'm hitting this:

Starting local Bazel server (8.4.1) and connecting to it...
 no actions running
Loading: 0 packages loaded
Loading: 0 packages loaded
WARNING: Download from https://jitpack.io/io/modelcontextprotocol/sdk/mcp-core/0.14.0/mcp-core-0.14.0.jar failed: class java.io.FileNotFoundException GET returned 404 Not Found
WARNING: Download from https://jitpack.io/io/modelcontextprotocol/sdk/mcp-json-jackson2/0.14.0/mcp-json-jackson2-0.14.0-sources.jar failed: class java.io.FileNotFoundException GET returned 404 Not Found
WARNING: Download from https://jitpack.io/io/modelcontextprotocol/sdk/mcp-json/0.14.0/mcp-json-0.14.0-sources.jar failed: class java.io.FileNotFoundException GET returned 404 Not Found
WARNING: Download from https://jitpack.io/io/modelcontextprotocol/sdk/mcp-json-jackson2/0.14.0/mcp-json-jackson2-0.14.0.jar failed: class java.io.FileNotFoundException GET returned 404 Not Found
WARNING: Download from https://jitpack.io/io/modelcontextprotocol/sdk/mcp/0.14.0/mcp-0.14.0.jar failed: class java.io.FileNotFoundException GET returned 404 Not Found
WARNING: Download from https://jitpack.io/io/modelcontextprotocol/sdk/mcp-core/0.14.0/mcp-core-0.14.0-sources.jar failed: class java.io.FileNotFoundException GET returned 404 Not Found
WARNING: Download from https://jitpack.io/io/modelcontextprotocol/sdk/mcp-json/0.14.0/mcp-json-0.14.0.jar failed: class java.io.FileNotFoundException GET returned 404 Not Found
INFO: Analyzed 302 targets (1126 packages loaded, 11596 targets configured).
INFO: Found 221 targets and 81 test targets...
INFO: Writing explanation of rebuilds to '/home/vorburger/bazel-test-explain.txt'
INFO: From Creating compile jar for @@rules_jvm_external++maven+maven//:io_modelcontextprotocol_sdk_mcp_core:
Automatic module name 'io.modelcontextprotocol.sdk.mcp-core' contains a character ('-') that may not be used in a java identifier: processed_mcp-core-0.14.0.jar
ERROR: /home/vorburger/git/github.com/enola-dev/enola/java/dev/enola/ai/mcp/BUILD:20:13: Compiling Java headers java/dev/enola/ai/mcp/libmcp-hjar.jar (6 source files) failed: (Exit 1): turbine_direct_graal failed: error executing Turbine command (from target //java/dev/enola/ai/mcp:mcp) external/rules_java++toolchains+remote_java_tools_linux/java_tools/turbine_direct_graal '-Dturbine.ctSymPath=external/rules_java++toolchains+local_jdk/lib/ct.sym' --output ... (remaining 46 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
java/dev/enola/ai/mcp/McpLoader.java:38: error: symbol not found io.modelcontextprotocol.client.McpSyncClient
import io.modelcontextprotocol.client.McpSyncClient;
       ^
java/dev/enola/ai/mcp/McpLoader.java:58: error: could not resolve McpSyncClient
public class McpLoader implements NamedTypedObjectProvider<McpSyncClient> {
                                                           ^
java/dev/enola/ai/mcp/McpLoader.java:118: error: could not resolve McpSyncClient
    public Optional<McpSyncClient> opt(String name) {
                    ^
java/dev/enola/ai/mcp/McpLoader.java:43: error: symbol not found io.modelcontextprotocol.spec.McpClientTransport
import io.modelcontextprotocol.spec.McpClientTransport;
       ^
java/dev/enola/ai/mcp/McpLoader.java:143: error: could not resolve McpClientTransport
    private McpClientTransport createTransport(
            ^
java/dev/enola/ai/mcp/McpLoader.java:165: error: could not resolve McpSyncClient
    private McpSyncClient createSyncClient(McpServerConnectionsConfig.ServerConnection config) {
            ^
java/dev/enola/ai/mcp/McpLoader.java:41: error: symbol not found io.modelcontextprotocol.client.transport.ServerParameters
import io.modelcontextprotocol.client.transport.ServerParameters;
       ^
java/dev/enola/ai/mcp/McpLoader.java:203: error: could not resolve ServerParameters
    private ServerParameters createStdIoServerParameters(ServerConnection connectionConfig) {
            ^
java/dev/enola/ai/mcp/McpLoader.java:210: error: could not resolve McpClientTransport
    private McpClientTransport createHttpTransport(ServerConnection connectionConfig) {
            ^
java/dev/enola/ai/mcp/McpLoader.java:67: error: could not resolve McpSyncClient
    private final Map<String, McpSyncClient> clients = new MapMaker().makeMap();
                              ^
java/dev/enola/ai/mcp/McpServerConnectionsConfig.java:22: error: symbol not found io.modelcontextprotocol.spec.McpSchema
import io.modelcontextprotocol.spec.McpSchema;
       ^
java/dev/enola/ai/mcp/McpServerConnectionsConfig.java:107: error: could not resolve McpSchema.LoggingLevel
        public McpSchema.LoggingLevel log = McpSchema.LoggingLevel.WARNING;
               ^
java/dev/enola/ai/mcp/McpServerLogConsumer.java:21: error: symbol not found io.modelcontextprotocol.spec.McpSchema.LoggingMessageNotification
import io.modelcontextprotocol.spec.McpSchema.LoggingMessageNotification;
       ^
java/dev/enola/ai/mcp/McpServerLogConsumer.java:29: error: could not resolve LoggingMessageNotification
class McpServerLogConsumer implements Consumer<LoggingMessageNotification> {
                                               ^
java/dev/enola/ai/mcp/McpServerLogConsumer.java:44: error: could not resolve LoggingMessageNotification
    public void accept(LoggingMessageNotification notif) {
                       ^
java/dev/enola/ai/mcp/McpServerLogConsumer.java:20: error: symbol not found io.modelcontextprotocol.spec.McpSchema
import io.modelcontextprotocol.spec.McpSchema;
       ^
java/dev/enola/ai/mcp/McpServerLogConsumer.java:49: error: could not resolve McpSchema.LoggingLevel
    private Level convert(McpSchema.LoggingLevel level) {
                          ^
Use --verbose_failures to see the command lines of failed build steps.
ERROR: /home/vorburger/git/github.com/enola-dev/enola/java/dev/enola/cli/BUILD:26:13 Building java/dev/enola/cli/liblib-class.jar (38 source files) and running annotation processors (NativeImageConfigGeneratorProcessor) failed: (Exit 1): turbine_direct_graal failed: error executing Turbine command (from target //java/dev/enola/ai/mcp:mcp) external/rules_java++toolchains+remote_java_tools_linux/java_tools/turbine_direct_graal '-Dturbine.ctSymPath=external/rules_java++toolchains+local_jdk/lib/ct.sym' --output ... (remaining 46 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
INFO: Elapsed time: 14.997s, Critical Path: 6.87s
INFO: 268 processes: 2839 action cache hit, 179 internal, 66 linux-sandbox, 23 worker.
ERROR: Build did NOT complete successfully

It seems to be related to the fact that the ADK version bump transitively bumps:

io.modelcontextprotocol.sdk:mcp:0.11.3

to

io.modelcontextprotocol.sdk:mcp:0.14.0
io.modelcontextprotocol.sdk:mcp-core:0.14.0
io.modelcontextprotocol.sdk:mcp-json:0.14.0
io.modelcontextprotocol.sdk:mcp-json-jackson2:0.14.0

and that https://github.com/bazel-contrib/rules_jvm_external doesn't like the hyphen in mcp-core ?!

What's strange is that I'm already depending on a lot of other Maven artifacts with hyphens in their name - what makes mcp-core special / different?!

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingbuildBuild, CI, etc. (w.o. #testing)dependenciesPull requests that update a dependency fileupstreamAn issue that is blocked by/on an "upstream" dependency.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions