From 5e48b98228d3b6e44657e1bea00bec9b554ba641 Mon Sep 17 00:00:00 2001 From: wenhaozhao Date: Tue, 17 Jun 2025 17:41:41 +0800 Subject: [PATCH 1/2] fix bug, 1 remove erroneous definitions_path setting,"#/components/schemas/" is used for openapi3 2 show meta_schema --- crates/rmcp/src/handler/server/tool.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/rmcp/src/handler/server/tool.rs b/crates/rmcp/src/handler/server/tool.rs index acb44fd5a..71806d1e9 100644 --- a/crates/rmcp/src/handler/server/tool.rs +++ b/crates/rmcp/src/handler/server/tool.rs @@ -14,13 +14,13 @@ use crate::{ }; /// A shortcut for generating a JSON schema for a type. pub fn schema_for_type() -> JsonObject { - let mut settings = schemars::r#gen::SchemaSettings::default(); + // explicitly to align json schema version to official specifications. + // https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/schema/2025-03-26/schema.json + let mut settings = schemars::r#gen::SchemaSettings::draft07(); settings.option_nullable = true; settings.option_add_null_type = false; - settings.definitions_path = "#/components/schemas/".to_owned(); - settings.meta_schema = None; settings.visitors = Vec::default(); - settings.inline_subschemas = false; + // settings.inline_subschemas = false; let generator = settings.into_generator(); let schema = generator.into_root_schema_for::(); let object = serde_json::to_value(schema).expect("failed to serialize schema"); From abf6f154fb8e4a5e22e9b9c1e70ee0e5123cde98 Mon Sep 17 00:00:00 2001 From: wenhaozhao Date: Tue, 17 Jun 2025 21:46:07 +0800 Subject: [PATCH 2/2] Update crates/rmcp/src/handler/server/tool.rs Remove the commented-out settings.inline_subschemas line to avoid confusion and clean up dead code. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- crates/rmcp/src/handler/server/tool.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/rmcp/src/handler/server/tool.rs b/crates/rmcp/src/handler/server/tool.rs index 71806d1e9..ec0f38e4c 100644 --- a/crates/rmcp/src/handler/server/tool.rs +++ b/crates/rmcp/src/handler/server/tool.rs @@ -20,7 +20,6 @@ pub fn schema_for_type() -> JsonObject { settings.option_nullable = true; settings.option_add_null_type = false; settings.visitors = Vec::default(); - // settings.inline_subschemas = false; let generator = settings.into_generator(); let schema = generator.into_root_schema_for::(); let object = serde_json::to_value(schema).expect("failed to serialize schema");