Skip to content

Commit f89bb99

Browse files
committed
address review comments
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
1 parent d1f62a5 commit f89bb99

4 files changed

Lines changed: 19 additions & 18 deletions

File tree

mcp-core/src/main/java/io/modelcontextprotocol/server/McpAsyncServer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import io.modelcontextprotocol.spec.McpSchema.CallToolResult;
2727
import io.modelcontextprotocol.spec.McpSchema.CompleteResult.CompleteCompletion;
2828
import io.modelcontextprotocol.spec.McpSchema.ErrorCodes;
29-
import io.modelcontextprotocol.spec.McpSchema.LoggingLevel;
3029
import io.modelcontextprotocol.spec.McpSchema.PromptReference;
3130
import io.modelcontextprotocol.spec.McpSchema.ResourceReference;
3231
import io.modelcontextprotocol.spec.McpSchema.SetLevelRequest;
@@ -433,7 +432,8 @@ public Mono<CallToolResult> apply(McpAsyncServerExchange exchange, McpSchema.Cal
433432
var validation = this.jsonSchemaValidator.validate(outputSchema, result.structuredContent());
434433

435434
if (!validation.valid()) {
436-
String message = "Tool output validation failed: " + validation.errorMessage();
435+
String message = "Tool (" + request.name() + ") output validation failed: "
436+
+ validation.errorMessage();
437437
logger.warn(message);
438438
return CallToolResult.builder()
439439
.content(List.of(McpSchema.TextContent.builder(message).build()))

mcp-core/src/main/java/io/modelcontextprotocol/server/McpStatelessAsyncServer.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,19 @@
44

55
package io.modelcontextprotocol.server;
66

7-
import io.modelcontextprotocol.json.TypeRef;
8-
import io.modelcontextprotocol.json.McpJsonMapper;
7+
import java.time.Duration;
8+
import java.util.ArrayList;
9+
import java.util.HashMap;
10+
import java.util.List;
11+
import java.util.Map;
12+
import java.util.Optional;
13+
import java.util.concurrent.ConcurrentHashMap;
14+
import java.util.concurrent.CopyOnWriteArrayList;
15+
import java.util.function.BiFunction;
16+
917
import io.modelcontextprotocol.common.McpTransportContext;
18+
import io.modelcontextprotocol.json.McpJsonMapper;
19+
import io.modelcontextprotocol.json.TypeRef;
1020
import io.modelcontextprotocol.json.schema.JsonSchemaValidator;
1121
import io.modelcontextprotocol.server.McpStatelessServerFeatures.AsyncResourceTemplateSpecification;
1222
import io.modelcontextprotocol.spec.McpError;
@@ -28,16 +38,6 @@
2838
import reactor.core.publisher.Flux;
2939
import reactor.core.publisher.Mono;
3040

31-
import java.time.Duration;
32-
import java.util.ArrayList;
33-
import java.util.HashMap;
34-
import java.util.List;
35-
import java.util.Map;
36-
import java.util.Optional;
37-
import java.util.concurrent.ConcurrentHashMap;
38-
import java.util.concurrent.CopyOnWriteArrayList;
39-
import java.util.function.BiFunction;
40-
4141
import static io.modelcontextprotocol.spec.McpError.RESOURCE_NOT_FOUND;
4242

4343
/**
@@ -293,7 +293,8 @@ public Mono<CallToolResult> apply(McpTransportContext transportContext, McpSchem
293293
var validation = this.jsonSchemaValidator.validate(outputSchema, result.structuredContent());
294294

295295
if (!validation.valid()) {
296-
String message = "Tool output validation failed: " + validation.errorMessage();
296+
String message = "Tool (" + request.name() + ") output validation failed: "
297+
+ validation.errorMessage();
297298
logger.warn(message);
298299
return CallToolResult.builder()
299300
.content(List.of(McpSchema.TextContent.builder(message).build()))

mcp-core/src/main/java/io/modelcontextprotocol/util/ToolInputValidator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ public static CallToolResult validate(McpSchema.Tool tool, Map<String, Object> a
4242
Map<String, Object> args = arguments != null ? arguments : Map.of();
4343
var validation = validator.validate(tool.inputSchema(), args);
4444
if (!validation.valid()) {
45-
String message = "Tool input validation failed: " + validation.errorMessage();
46-
logger.warn("Tool '{}' {}", tool.name(), message);
45+
String message = "Tool (" + tool.name() + ") input validation failed: " + validation.errorMessage();
46+
logger.warn("'{}' {}", tool.name(), message);
4747
return CallToolResult.builder()
4848
.content(List.of(McpSchema.TextContent.builder(message).build()))
4949
.isError(true)

mcp-test/src/test/java/io/modelcontextprotocol/server/ToolInputValidationIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ void invalidInput_withDefaultValidation_shouldReturnToolError(String serverType,
182182

183183
assertThat(result.isError()).isTrue();
184184
String errorMessage = ((TextContent) result.content().get(0)).text();
185-
assertThat(errorMessage).startsWith("Tool input validation failed:");
185+
assertThat(errorMessage).startsWith("Tool (test-tool) input validation failed:");
186186
assertThat(errorMessage).containsIgnoringCase("Validation failed");
187187
assertThat(errorMessage).containsIgnoringCase("JSON schema validation errors");
188188
assertThat(errorMessage).containsIgnoringCase(expectedErrorSubstring);

0 commit comments

Comments
 (0)