From b9bba0be1513ccc99a6144622e243dd94fcf122e Mon Sep 17 00:00:00 2001 From: wenhaozhao Date: Wed, 18 Jun 2025 09:07:28 +0800 Subject: [PATCH] Fix: remove erroneous definitions_path (#264) * fix bug, 1 remove erroneous definitions_path setting,"#/components/schemas/" is used for openapi3 2 show meta_schema * 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> --------- Co-authored-by: wenhaozhao Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- crates/rmcp/src/handler/server/tool.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/crates/rmcp/src/handler/server/tool.rs b/crates/rmcp/src/handler/server/tool.rs index acb44fd..ec0f38e 100644 --- a/crates/rmcp/src/handler/server/tool.rs +++ b/crates/rmcp/src/handler/server/tool.rs @@ -14,13 +14,12 @@ 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; let generator = settings.into_generator(); let schema = generator.into_root_schema_for::(); let object = serde_json::to_value(schema).expect("failed to serialize schema");