@@ -33,7 +33,7 @@ def call(message:, server_context: nil)
3333 title : "Mock Tool" ,
3434 description : "a mock tool for testing" ,
3535 icons : [ { mimeType : "image/png" , sizes : [ "48x48" , "96x96" ] , src : "https://example.com" , theme : "light" } ] ,
36- inputSchema : { type : "object" } ,
36+ inputSchema : { "$schema" : "https://json-schema.org/draft/2020-12/schema" , type : "object" } ,
3737 }
3838 tool = Tool . define (
3939 name : "mock_tool" ,
@@ -109,7 +109,15 @@ class MockTool < Tool
109109 tool = MockTool
110110 assert_equal "my_mock_tool" , tool . name_value
111111 assert_equal "a mock tool for testing" , tool . description
112- assert_equal ( { type : "object" , properties : { message : { type : "string" } } , required : [ "message" ] } , tool . input_schema . to_h )
112+ assert_equal (
113+ {
114+ "$schema" : "https://json-schema.org/draft/2020-12/schema" ,
115+ type : "object" ,
116+ properties : { message : { type : "string" } } ,
117+ required : [ "message" ] ,
118+ } ,
119+ tool . input_schema . to_h ,
120+ )
113121 end
114122
115123 test "defaults to class name as tool name" do
@@ -126,7 +134,7 @@ class NoInputSchemaTool < Tool; end
126134
127135 tool = NoInputSchemaTool
128136
129- expected = { type : "object" }
137+ expected = { "$schema" : "https://json-schema.org/draft/2020-12/schema" , type : "object" }
130138 assert_equal expected , tool . input_schema . to_h
131139 end
132140
@@ -137,7 +145,12 @@ class InputSchemaTool < Tool
137145
138146 tool = InputSchemaTool
139147
140- expected = { type : "object" , properties : { message : { type : "string" } } , required : [ "message" ] }
148+ expected = {
149+ "$schema" : "https://json-schema.org/draft/2020-12/schema" ,
150+ type : "object" ,
151+ properties : { message : { type : "string" } } ,
152+ required : [ "message" ] ,
153+ }
141154 assert_equal expected , tool . input_schema . to_h
142155 end
143156
@@ -342,8 +355,13 @@ def call(message, server_context: nil)
342355 title : "Mock Tool" ,
343356 description : "a mock tool for testing" ,
344357 icons : [ { mimeType : "image/png" , sizes : [ "48x48" , "96x96" ] , src : "https://example.com" , theme : "light" } ] ,
345- inputSchema : { type : "object" } ,
346- outputSchema : { type : "object" , properties : { result : { type : "string" } } , required : [ "result" ] } ,
358+ inputSchema : { "$schema" : "https://json-schema.org/draft/2020-12/schema" , type : "object" } ,
359+ outputSchema : {
360+ "$schema" : "https://json-schema.org/draft/2020-12/schema" ,
361+ type : "object" ,
362+ properties : { result : { type : "string" } } ,
363+ required : [ "result" ] ,
364+ } ,
347365 }
348366 tool = Tool . define (
349367 name : "mock_tool" ,
@@ -376,7 +394,12 @@ class HashOutputSchemaTool < Tool
376394 end
377395
378396 tool = HashOutputSchemaTool
379- expected = { type : "object" , properties : { result : { type : "string" } } , required : [ "result" ] }
397+ expected = {
398+ "$schema" : "https://json-schema.org/draft/2020-12/schema" ,
399+ type : "object" ,
400+ properties : { result : { type : "string" } } ,
401+ required : [ "result" ] ,
402+ }
380403 assert_equal expected , tool . output_schema . to_h
381404 end
382405
@@ -386,7 +409,12 @@ class OutputSchemaObjectTool < Tool
386409 end
387410
388411 tool = OutputSchemaObjectTool
389- expected = { type : "object" , properties : { result : { type : "string" } } , required : [ "result" ] }
412+ expected = {
413+ "$schema" : "https://json-schema.org/draft/2020-12/schema" ,
414+ type : "object" ,
415+ properties : { result : { type : "string" } } ,
416+ required : [ "result" ] ,
417+ }
390418 assert_equal expected , tool . output_schema . to_h
391419 end
392420
@@ -436,7 +464,12 @@ class OutputSchemaObjectTool < Tool
436464 assert_equal "mock_tool" , tool . name_value
437465 assert_equal "a mock tool for testing" , tool . description
438466 assert_instance_of Tool ::OutputSchema , tool . output_schema
439- expected_output_schema = { type : "object" , properties : { result : { type : "string" } } , required : [ "result" ] }
467+ expected_output_schema = {
468+ "$schema" : "https://json-schema.org/draft/2020-12/schema" ,
469+ type : "object" ,
470+ properties : { result : { type : "string" } } ,
471+ required : [ "result" ] ,
472+ }
440473 assert_equal expected_output_schema , tool . output_schema . to_h
441474 end
442475
@@ -458,10 +491,20 @@ def call(message:, server_context: nil)
458491 assert_equal "test_tool_with_output" , tool . name_value
459492 assert_equal "a test tool with output schema" , tool . description
460493
461- expected_input = { type : "object" , properties : { message : { type : "string" } } , required : [ "message" ] }
494+ expected_input = {
495+ "$schema" : "https://json-schema.org/draft/2020-12/schema" ,
496+ type : "object" ,
497+ properties : { message : { type : "string" } } ,
498+ required : [ "message" ] ,
499+ }
462500 assert_equal expected_input , tool . input_schema . to_h
463501
464- expected_output = { type : "object" , properties : { result : { type : "string" } , success : { type : "boolean" } } , required : [ "result" , "success" ] }
502+ expected_output = {
503+ "$schema" : "https://json-schema.org/draft/2020-12/schema" ,
504+ type : "object" ,
505+ properties : { result : { type : "string" } , success : { type : "boolean" } } ,
506+ required : [ "result" , "success" ] ,
507+ }
465508 assert_equal expected_output , tool . output_schema . to_h
466509 end
467510
0 commit comments