diff --git a/openmetadata-mcp/src/main/java/org/openmetadata/mcp/McpServer.java b/openmetadata-mcp/src/main/java/org/openmetadata/mcp/McpServer.java index f183a66e24dc..487c5569a255 100644 --- a/openmetadata-mcp/src/main/java/org/openmetadata/mcp/McpServer.java +++ b/openmetadata-mcp/src/main/java/org/openmetadata/mcp/McpServer.java @@ -84,7 +84,6 @@ private void addStatelessTransport( .tools(true) .prompts(true) .resources(true, true) - .logging() .build(); HttpServletStatelessServerTransport statelessTransport = diff --git a/openmetadata-mcp/src/test/java/org/openmetadata/mcp/McpSdkUpgradeTest.java b/openmetadata-mcp/src/test/java/org/openmetadata/mcp/McpSdkUpgradeTest.java index 28e24cc6bec5..d95d20a10983 100644 --- a/openmetadata-mcp/src/test/java/org/openmetadata/mcp/McpSdkUpgradeTest.java +++ b/openmetadata-mcp/src/test/java/org/openmetadata/mcp/McpSdkUpgradeTest.java @@ -174,6 +174,21 @@ void testMcpUtilsGetToolPropertiesLoadsTools() { assertThat(searchTool.inputSchema()).isNotNull(); } + @Test + void testServerCapabilitiesDoNotAdvertiseLogging() { + // The stateless MCP server has no handler for logging/setLevel. + // Advertising logging capability causes spec-compliant clients (e.g. VSCode) + // to call logging/setLevel, which fails with MethodNotFound. + McpSchema.ServerCapabilities capabilities = + McpSchema.ServerCapabilities.builder() + .tools(true) + .prompts(true) + .resources(true, true) + .build(); + + assertThat(capabilities.logging()).isNull(); + } + @Test void testMcpUtilsGetPromptsLoadsPrompts() { // Test that McpUtils.getPrompts loads prompts from JSON file