fix: Remove JsonSchema and use a Map for inputSchema to support json schemas dialect (#749)

* feat: remove JsonSchema an use a Map for inputSchema

- Fixes #886

Co-authored-by: Daniel Garnier-Moiroux <git@garnier.wf>
This commit is contained in:
Bilal Oumehdi 2026-04-10 10:32:22 +01:00 • committed by GitHub
commit 95203233c8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 72 additions and 45 deletions

View file

@ -4,6 +4,8 @@
package io.modelcontextprotocol.server;
import static io.modelcontextprotocol.util.ToolsUtils.EMPTY_JSON_SCHEMA;
import java.util.List;
import java.util.Map;
@ -25,7 +27,6 @@ import org.slf4j.LoggerFactory;
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
import static io.modelcontextprotocol.util.ToolsUtils.EMPTY_JSON_SCHEMA;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatThrownBy;

View file

@ -4,6 +4,8 @@
package io.modelcontextprotocol.server;
import static io.modelcontextprotocol.util.ToolsUtils.EMPTY_JSON_SCHEMA;
import java.util.List;
import java.util.Map;
@ -22,7 +24,6 @@ import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.slf4j.LoggerFactory;
import static io.modelcontextprotocol.util.ToolsUtils.EMPTY_JSON_SCHEMA;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatThrownBy;

View file

@ -1,15 +1,14 @@
package io.modelcontextprotocol.util;
import io.modelcontextprotocol.spec.McpSchema;
import java.util.Collections;
import java.util.Map;
public final class ToolsUtils {
private ToolsUtils() {
}
public static final McpSchema.JsonSchema EMPTY_JSON_SCHEMA = new McpSchema.JsonSchema("object",
Collections.emptyMap(), null, null, null, null);
public static final Map<String, Object> EMPTY_JSON_SCHEMA = Map.of("type", "object", "properties",
Collections.emptyMap());
}