@mcpdesc/validator 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1648 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mcpdesc.org/schema/0.8.0.json",
4
+ "title": "MCP Description",
5
+ "description": "MCP Description 0.8.0 Community Working Draft 1 (v0.8.0-draft.1; unreleased).",
6
+ "type": "object",
7
+ "required": [
8
+ "mcpdesc",
9
+ "info",
10
+ "protocolVersions",
11
+ "transports"
12
+ ],
13
+ "properties": {
14
+ "$schema": {
15
+ "type": "string"
16
+ },
17
+ "mcpdesc": {
18
+ "type": "string",
19
+ "const": "0.8.0"
20
+ },
21
+ "info": {
22
+ "$ref": "#/$defs/info"
23
+ },
24
+ "protocolVersions": {
25
+ "$ref": "#/$defs/protocolVersionScope"
26
+ },
27
+ "instructions": {
28
+ "type": "string"
29
+ },
30
+ "transports": {
31
+ "type": "array",
32
+ "minItems": 1,
33
+ "items": {
34
+ "$ref": "#/$defs/transport"
35
+ }
36
+ },
37
+ "securitySchemes": {
38
+ "$ref": "#/$defs/securitySchemeMap"
39
+ },
40
+ "security": {
41
+ "$ref": "#/$defs/securityRequirementArray"
42
+ },
43
+ "capabilities": {
44
+ "type": "array",
45
+ "minItems": 1,
46
+ "items": {
47
+ "$ref": "#/$defs/capabilities"
48
+ }
49
+ },
50
+ "tools": {
51
+ "type": "array",
52
+ "items": {
53
+ "$ref": "#/$defs/tool"
54
+ }
55
+ },
56
+ "resources": {
57
+ "type": "array",
58
+ "items": {
59
+ "$ref": "#/$defs/resource"
60
+ }
61
+ },
62
+ "resourceTemplates": {
63
+ "type": "array",
64
+ "items": {
65
+ "$ref": "#/$defs/resourceTemplate"
66
+ }
67
+ },
68
+ "prompts": {
69
+ "type": "array",
70
+ "items": {
71
+ "$ref": "#/$defs/prompt"
72
+ }
73
+ },
74
+ "tags": {
75
+ "type": "array",
76
+ "items": {
77
+ "$ref": "#/$defs/tag"
78
+ }
79
+ }
80
+ },
81
+ "patternProperties": {
82
+ "^x-": {
83
+ "$ref": "#/$defs/jsonValue"
84
+ }
85
+ },
86
+ "additionalProperties": false,
87
+ "$defs": {
88
+ "supportedProtocolVersion": {
89
+ "type": "string",
90
+ "enum": [
91
+ "2024-11-05",
92
+ "2025-03-26",
93
+ "2025-06-18",
94
+ "2025-11-25",
95
+ "2026-07-28"
96
+ ]
97
+ },
98
+ "protocolVersionScope": {
99
+ "type": "array",
100
+ "minItems": 1,
101
+ "uniqueItems": true,
102
+ "items": {
103
+ "$ref": "#/$defs/supportedProtocolVersion"
104
+ }
105
+ },
106
+ "jsonValue": {
107
+ "oneOf": [
108
+ {
109
+ "type": "object",
110
+ "additionalProperties": {
111
+ "$ref": "#/$defs/jsonValue"
112
+ }
113
+ },
114
+ {
115
+ "type": "array",
116
+ "items": {
117
+ "$ref": "#/$defs/jsonValue"
118
+ }
119
+ },
120
+ {
121
+ "type": "string"
122
+ },
123
+ {
124
+ "type": "number"
125
+ },
126
+ {
127
+ "type": "boolean"
128
+ },
129
+ {
130
+ "type": "null"
131
+ }
132
+ ]
133
+ },
134
+ "jsonSchemaObject": {
135
+ "type": "object",
136
+ "additionalProperties": true
137
+ },
138
+ "elicitationFormOption": {
139
+ "type": "object",
140
+ "required": [
141
+ "const",
142
+ "title"
143
+ ],
144
+ "properties": {
145
+ "const": {
146
+ "type": "string"
147
+ },
148
+ "title": {
149
+ "type": "string"
150
+ }
151
+ },
152
+ "additionalProperties": false
153
+ },
154
+ "elicitationFormProperty": {
155
+ "oneOf": [
156
+ {
157
+ "type": "object",
158
+ "required": [
159
+ "type"
160
+ ],
161
+ "properties": {
162
+ "type": {
163
+ "const": "string"
164
+ },
165
+ "title": {
166
+ "type": "string"
167
+ },
168
+ "description": {
169
+ "type": "string"
170
+ },
171
+ "minLength": {
172
+ "type": "integer",
173
+ "minimum": 0
174
+ },
175
+ "maxLength": {
176
+ "type": "integer",
177
+ "minimum": 0
178
+ },
179
+ "format": {
180
+ "enum": [
181
+ "email",
182
+ "uri",
183
+ "date",
184
+ "date-time"
185
+ ]
186
+ },
187
+ "default": {
188
+ "type": "string"
189
+ }
190
+ },
191
+ "additionalProperties": false
192
+ },
193
+ {
194
+ "type": "object",
195
+ "required": [
196
+ "type"
197
+ ],
198
+ "properties": {
199
+ "type": {
200
+ "enum": [
201
+ "number",
202
+ "integer"
203
+ ]
204
+ },
205
+ "title": {
206
+ "type": "string"
207
+ },
208
+ "description": {
209
+ "type": "string"
210
+ },
211
+ "minimum": {
212
+ "type": "number"
213
+ },
214
+ "maximum": {
215
+ "type": "number"
216
+ },
217
+ "default": {
218
+ "type": "number"
219
+ }
220
+ },
221
+ "additionalProperties": false
222
+ },
223
+ {
224
+ "type": "object",
225
+ "required": [
226
+ "type"
227
+ ],
228
+ "properties": {
229
+ "type": {
230
+ "const": "boolean"
231
+ },
232
+ "title": {
233
+ "type": "string"
234
+ },
235
+ "description": {
236
+ "type": "string"
237
+ },
238
+ "default": {
239
+ "type": "boolean"
240
+ }
241
+ },
242
+ "additionalProperties": false
243
+ },
244
+ {
245
+ "type": "object",
246
+ "required": [
247
+ "type",
248
+ "enum"
249
+ ],
250
+ "properties": {
251
+ "type": {
252
+ "const": "string"
253
+ },
254
+ "title": {
255
+ "type": "string"
256
+ },
257
+ "description": {
258
+ "type": "string"
259
+ },
260
+ "enum": {
261
+ "type": "array",
262
+ "items": {
263
+ "type": "string"
264
+ }
265
+ },
266
+ "enumNames": {
267
+ "type": "array",
268
+ "items": {
269
+ "type": "string"
270
+ }
271
+ },
272
+ "default": {
273
+ "type": "string"
274
+ }
275
+ },
276
+ "additionalProperties": false
277
+ },
278
+ {
279
+ "type": "object",
280
+ "required": [
281
+ "type",
282
+ "oneOf"
283
+ ],
284
+ "properties": {
285
+ "type": {
286
+ "const": "string"
287
+ },
288
+ "title": {
289
+ "type": "string"
290
+ },
291
+ "description": {
292
+ "type": "string"
293
+ },
294
+ "oneOf": {
295
+ "type": "array",
296
+ "items": {
297
+ "$ref": "#/$defs/elicitationFormOption"
298
+ }
299
+ },
300
+ "default": {
301
+ "type": "string"
302
+ }
303
+ },
304
+ "additionalProperties": false
305
+ },
306
+ {
307
+ "type": "object",
308
+ "required": [
309
+ "type",
310
+ "items"
311
+ ],
312
+ "properties": {
313
+ "type": {
314
+ "const": "array"
315
+ },
316
+ "title": {
317
+ "type": "string"
318
+ },
319
+ "description": {
320
+ "type": "string"
321
+ },
322
+ "minItems": {
323
+ "type": "integer",
324
+ "minimum": 0
325
+ },
326
+ "maxItems": {
327
+ "type": "integer",
328
+ "minimum": 0
329
+ },
330
+ "items": {
331
+ "oneOf": [
332
+ {
333
+ "type": "object",
334
+ "required": [
335
+ "type",
336
+ "enum"
337
+ ],
338
+ "properties": {
339
+ "type": {
340
+ "const": "string"
341
+ },
342
+ "enum": {
343
+ "type": "array",
344
+ "items": {
345
+ "type": "string"
346
+ }
347
+ }
348
+ },
349
+ "additionalProperties": false
350
+ },
351
+ {
352
+ "type": "object",
353
+ "required": [
354
+ "anyOf"
355
+ ],
356
+ "properties": {
357
+ "anyOf": {
358
+ "type": "array",
359
+ "items": {
360
+ "$ref": "#/$defs/elicitationFormOption"
361
+ }
362
+ }
363
+ },
364
+ "additionalProperties": false
365
+ }
366
+ ]
367
+ },
368
+ "default": {
369
+ "type": "array",
370
+ "items": {
371
+ "type": "string"
372
+ }
373
+ }
374
+ },
375
+ "additionalProperties": false
376
+ }
377
+ ]
378
+ },
379
+ "elicitationFormSchema": {
380
+ "type": "object",
381
+ "required": [
382
+ "type",
383
+ "properties"
384
+ ],
385
+ "properties": {
386
+ "$schema": {
387
+ "type": "string",
388
+ "format": "uri"
389
+ },
390
+ "type": {
391
+ "const": "object"
392
+ },
393
+ "properties": {
394
+ "type": "object",
395
+ "additionalProperties": {
396
+ "$ref": "#/$defs/elicitationFormProperty"
397
+ }
398
+ },
399
+ "required": {
400
+ "type": "array",
401
+ "uniqueItems": true,
402
+ "items": {
403
+ "type": "string"
404
+ }
405
+ }
406
+ },
407
+ "additionalProperties": false
408
+ },
409
+ "elicitationDeclaration": {
410
+ "type": "object",
411
+ "required": [
412
+ "name",
413
+ "mode",
414
+ "message"
415
+ ],
416
+ "properties": {
417
+ "name": {
418
+ "type": "string",
419
+ "pattern": "^[A-Za-z0-9._-]+$"
420
+ },
421
+ "mode": {
422
+ "enum": [
423
+ "form",
424
+ "url"
425
+ ]
426
+ },
427
+ "message": {
428
+ "type": "string",
429
+ "minLength": 1
430
+ },
431
+ "when": {
432
+ "type": "string",
433
+ "minLength": 1
434
+ },
435
+ "requestedSchema": {
436
+ "$ref": "#/$defs/elicitationFormSchema"
437
+ },
438
+ "url": {
439
+ "type": "string",
440
+ "format": "uri"
441
+ },
442
+ "onDecline": {
443
+ "type": "string",
444
+ "minLength": 1
445
+ },
446
+ "onCancel": {
447
+ "type": "string",
448
+ "minLength": 1
449
+ },
450
+ "protocolVersions": {
451
+ "$ref": "#/$defs/protocolVersionScope"
452
+ }
453
+ },
454
+ "oneOf": [
455
+ {
456
+ "properties": {
457
+ "mode": {
458
+ "const": "form"
459
+ }
460
+ },
461
+ "required": [
462
+ "requestedSchema"
463
+ ],
464
+ "not": {
465
+ "required": [
466
+ "url"
467
+ ]
468
+ }
469
+ },
470
+ {
471
+ "properties": {
472
+ "mode": {
473
+ "const": "url"
474
+ }
475
+ },
476
+ "not": {
477
+ "required": [
478
+ "requestedSchema"
479
+ ]
480
+ }
481
+ }
482
+ ],
483
+ "additionalProperties": false
484
+ },
485
+ "tag": {
486
+ "type": "object",
487
+ "required": [
488
+ "name"
489
+ ],
490
+ "properties": {
491
+ "name": {
492
+ "type": "string",
493
+ "minLength": 1
494
+ },
495
+ "description": {
496
+ "type": "string"
497
+ }
498
+ },
499
+ "additionalProperties": false
500
+ },
501
+ "icon": {
502
+ "type": "object",
503
+ "required": [
504
+ "src"
505
+ ],
506
+ "properties": {
507
+ "src": {
508
+ "type": "string",
509
+ "format": "uri"
510
+ },
511
+ "mimeType": {
512
+ "type": "string"
513
+ },
514
+ "sizes": {
515
+ "type": "array",
516
+ "items": {
517
+ "type": "string"
518
+ }
519
+ },
520
+ "theme": {
521
+ "type": "string",
522
+ "enum": [
523
+ "light",
524
+ "dark"
525
+ ]
526
+ }
527
+ },
528
+ "additionalProperties": false
529
+ },
530
+ "icons": {
531
+ "type": "array",
532
+ "items": {
533
+ "$ref": "#/$defs/icon"
534
+ }
535
+ },
536
+ "contact": {
537
+ "type": "object",
538
+ "properties": {
539
+ "name": {
540
+ "type": "string"
541
+ },
542
+ "url": {
543
+ "type": "string",
544
+ "format": "uri"
545
+ },
546
+ "email": {
547
+ "type": "string",
548
+ "format": "email"
549
+ }
550
+ },
551
+ "additionalProperties": false
552
+ },
553
+ "license": {
554
+ "type": "object",
555
+ "required": [
556
+ "name"
557
+ ],
558
+ "properties": {
559
+ "name": {
560
+ "type": "string"
561
+ },
562
+ "url": {
563
+ "type": "string",
564
+ "format": "uri"
565
+ }
566
+ },
567
+ "additionalProperties": false
568
+ },
569
+ "info": {
570
+ "type": "object",
571
+ "required": [
572
+ "name",
573
+ "version"
574
+ ],
575
+ "properties": {
576
+ "name": {
577
+ "type": "string",
578
+ "minLength": 1
579
+ },
580
+ "title": {
581
+ "type": "string"
582
+ },
583
+ "description": {
584
+ "type": "string"
585
+ },
586
+ "version": {
587
+ "type": "string",
588
+ "minLength": 1
589
+ },
590
+ "id": {
591
+ "type": "string"
592
+ },
593
+ "icons": {
594
+ "$ref": "#/$defs/icons"
595
+ },
596
+ "websiteUrl": {
597
+ "type": "string",
598
+ "format": "uri"
599
+ },
600
+ "contact": {
601
+ "$ref": "#/$defs/contact"
602
+ },
603
+ "license": {
604
+ "$ref": "#/$defs/license"
605
+ }
606
+ },
607
+ "additionalProperties": false
608
+ },
609
+ "oauthFlow": {
610
+ "type": "object",
611
+ "properties": {
612
+ "authorizationUrl": {
613
+ "type": "string",
614
+ "format": "uri"
615
+ },
616
+ "tokenUrl": {
617
+ "type": "string",
618
+ "format": "uri"
619
+ },
620
+ "refreshUrl": {
621
+ "type": "string",
622
+ "format": "uri"
623
+ },
624
+ "scopes": {
625
+ "type": "object",
626
+ "additionalProperties": {
627
+ "type": "string"
628
+ }
629
+ }
630
+ },
631
+ "required": [
632
+ "scopes"
633
+ ],
634
+ "additionalProperties": false
635
+ },
636
+ "oauthFlows": {
637
+ "type": "object",
638
+ "properties": {
639
+ "implicit": {
640
+ "allOf": [
641
+ {
642
+ "$ref": "#/$defs/oauthFlow"
643
+ },
644
+ {
645
+ "required": [
646
+ "authorizationUrl"
647
+ ]
648
+ }
649
+ ]
650
+ },
651
+ "password": {
652
+ "allOf": [
653
+ {
654
+ "$ref": "#/$defs/oauthFlow"
655
+ },
656
+ {
657
+ "required": [
658
+ "tokenUrl"
659
+ ]
660
+ }
661
+ ]
662
+ },
663
+ "clientCredentials": {
664
+ "allOf": [
665
+ {
666
+ "$ref": "#/$defs/oauthFlow"
667
+ },
668
+ {
669
+ "required": [
670
+ "tokenUrl"
671
+ ]
672
+ }
673
+ ]
674
+ },
675
+ "authorizationCode": {
676
+ "allOf": [
677
+ {
678
+ "$ref": "#/$defs/oauthFlow"
679
+ },
680
+ {
681
+ "required": [
682
+ "authorizationUrl",
683
+ "tokenUrl"
684
+ ]
685
+ }
686
+ ]
687
+ }
688
+ },
689
+ "additionalProperties": false,
690
+ "minProperties": 1
691
+ },
692
+ "securityScheme": {
693
+ "oneOf": [
694
+ {
695
+ "type": "object",
696
+ "required": [
697
+ "type",
698
+ "scheme"
699
+ ],
700
+ "properties": {
701
+ "type": {
702
+ "const": "http"
703
+ },
704
+ "scheme": {
705
+ "type": "string"
706
+ },
707
+ "bearerFormat": {
708
+ "type": "string"
709
+ },
710
+ "description": {
711
+ "type": "string"
712
+ }
713
+ },
714
+ "additionalProperties": false
715
+ },
716
+ {
717
+ "type": "object",
718
+ "required": [
719
+ "type",
720
+ "name",
721
+ "in"
722
+ ],
723
+ "properties": {
724
+ "type": {
725
+ "const": "apiKey"
726
+ },
727
+ "name": {
728
+ "type": "string"
729
+ },
730
+ "in": {
731
+ "type": "string",
732
+ "enum": [
733
+ "header",
734
+ "query",
735
+ "cookie"
736
+ ]
737
+ },
738
+ "description": {
739
+ "type": "string"
740
+ }
741
+ },
742
+ "additionalProperties": false
743
+ },
744
+ {
745
+ "type": "object",
746
+ "required": [
747
+ "type",
748
+ "flows"
749
+ ],
750
+ "properties": {
751
+ "type": {
752
+ "const": "oauth2"
753
+ },
754
+ "flows": {
755
+ "$ref": "#/$defs/oauthFlows"
756
+ },
757
+ "description": {
758
+ "type": "string"
759
+ }
760
+ },
761
+ "additionalProperties": false
762
+ },
763
+ {
764
+ "type": "object",
765
+ "required": [
766
+ "type",
767
+ "openIdConnectUrl"
768
+ ],
769
+ "properties": {
770
+ "type": {
771
+ "const": "openIdConnect"
772
+ },
773
+ "openIdConnectUrl": {
774
+ "type": "string",
775
+ "format": "uri"
776
+ },
777
+ "description": {
778
+ "type": "string"
779
+ }
780
+ },
781
+ "additionalProperties": false
782
+ }
783
+ ]
784
+ },
785
+ "securitySchemeMap": {
786
+ "type": "object",
787
+ "propertyNames": {
788
+ "pattern": "^[A-Za-z0-9._-]+$"
789
+ },
790
+ "additionalProperties": {
791
+ "$ref": "#/$defs/securityScheme"
792
+ }
793
+ },
794
+ "securityRequirement": {
795
+ "type": "object",
796
+ "propertyNames": {
797
+ "pattern": "^[A-Za-z0-9._-]+$"
798
+ },
799
+ "additionalProperties": {
800
+ "type": "array",
801
+ "items": {
802
+ "type": "string"
803
+ },
804
+ "uniqueItems": true
805
+ }
806
+ },
807
+ "securityRequirementArray": {
808
+ "type": "array",
809
+ "items": {
810
+ "$ref": "#/$defs/securityRequirement"
811
+ }
812
+ },
813
+ "toolAnnotations": {
814
+ "type": "object",
815
+ "properties": {
816
+ "title": {
817
+ "type": "string"
818
+ },
819
+ "readOnlyHint": {
820
+ "type": "boolean"
821
+ },
822
+ "destructiveHint": {
823
+ "type": "boolean"
824
+ },
825
+ "idempotentHint": {
826
+ "type": "boolean"
827
+ },
828
+ "openWorldHint": {
829
+ "type": "boolean"
830
+ }
831
+ },
832
+ "additionalProperties": true
833
+ },
834
+ "execution": {
835
+ "type": "object",
836
+ "properties": {
837
+ "taskSupport": {
838
+ "type": "string",
839
+ "enum": [
840
+ "forbidden",
841
+ "optional",
842
+ "required"
843
+ ]
844
+ }
845
+ },
846
+ "additionalProperties": false
847
+ },
848
+ "metaObject": {
849
+ "type": "object",
850
+ "propertyNames": {
851
+ "pattern": "^(?:(?:[A-Za-z](?:[A-Za-z0-9-]*[A-Za-z0-9])?)(?:\\.[A-Za-z](?:[A-Za-z0-9-]*[A-Za-z0-9])?)*\\/)?(?:[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?)?$"
852
+ },
853
+ "additionalProperties": true
854
+ },
855
+ "resourceAnnotations": {
856
+ "type": "object",
857
+ "properties": {
858
+ "audience": {
859
+ "type": "array",
860
+ "items": {
861
+ "type": "string",
862
+ "enum": [
863
+ "user",
864
+ "assistant"
865
+ ]
866
+ }
867
+ },
868
+ "priority": {
869
+ "type": "number",
870
+ "minimum": 0,
871
+ "maximum": 1
872
+ },
873
+ "lastModified": {
874
+ "type": "string"
875
+ }
876
+ },
877
+ "additionalProperties": true
878
+ },
879
+ "resourceContents": {
880
+ "oneOf": [
881
+ {
882
+ "type": "object",
883
+ "required": [
884
+ "uri",
885
+ "text"
886
+ ],
887
+ "properties": {
888
+ "uri": {
889
+ "type": "string",
890
+ "format": "uri"
891
+ },
892
+ "mimeType": {
893
+ "type": "string"
894
+ },
895
+ "text": {
896
+ "type": "string"
897
+ },
898
+ "_meta": {
899
+ "$ref": "#/$defs/metaObject"
900
+ }
901
+ },
902
+ "additionalProperties": false
903
+ },
904
+ {
905
+ "type": "object",
906
+ "required": [
907
+ "uri",
908
+ "blob"
909
+ ],
910
+ "properties": {
911
+ "uri": {
912
+ "type": "string",
913
+ "format": "uri"
914
+ },
915
+ "mimeType": {
916
+ "type": "string"
917
+ },
918
+ "blob": {
919
+ "type": "string"
920
+ },
921
+ "_meta": {
922
+ "$ref": "#/$defs/metaObject"
923
+ }
924
+ },
925
+ "additionalProperties": false
926
+ }
927
+ ]
928
+ },
929
+ "toolResultContent": {
930
+ "oneOf": [
931
+ {
932
+ "type": "object",
933
+ "required": [
934
+ "type",
935
+ "text"
936
+ ],
937
+ "properties": {
938
+ "type": {
939
+ "const": "text"
940
+ },
941
+ "text": {
942
+ "type": "string"
943
+ },
944
+ "annotations": {
945
+ "$ref": "#/$defs/resourceAnnotations"
946
+ },
947
+ "_meta": {
948
+ "$ref": "#/$defs/metaObject"
949
+ }
950
+ },
951
+ "additionalProperties": false
952
+ },
953
+ {
954
+ "type": "object",
955
+ "required": [
956
+ "type",
957
+ "data",
958
+ "mimeType"
959
+ ],
960
+ "properties": {
961
+ "type": {
962
+ "enum": [
963
+ "image",
964
+ "audio"
965
+ ]
966
+ },
967
+ "data": {
968
+ "type": "string"
969
+ },
970
+ "mimeType": {
971
+ "type": "string"
972
+ },
973
+ "annotations": {
974
+ "$ref": "#/$defs/resourceAnnotations"
975
+ },
976
+ "_meta": {
977
+ "$ref": "#/$defs/metaObject"
978
+ }
979
+ },
980
+ "additionalProperties": false
981
+ },
982
+ {
983
+ "type": "object",
984
+ "required": [
985
+ "type",
986
+ "resource"
987
+ ],
988
+ "properties": {
989
+ "type": {
990
+ "const": "resource"
991
+ },
992
+ "resource": {
993
+ "$ref": "#/$defs/resourceContents"
994
+ },
995
+ "annotations": {
996
+ "$ref": "#/$defs/resourceAnnotations"
997
+ },
998
+ "_meta": {
999
+ "$ref": "#/$defs/metaObject"
1000
+ }
1001
+ },
1002
+ "additionalProperties": false
1003
+ },
1004
+ {
1005
+ "type": "object",
1006
+ "required": [
1007
+ "type",
1008
+ "uri",
1009
+ "name"
1010
+ ],
1011
+ "properties": {
1012
+ "type": {
1013
+ "const": "resource_link"
1014
+ },
1015
+ "uri": {
1016
+ "type": "string",
1017
+ "format": "uri"
1018
+ },
1019
+ "name": {
1020
+ "type": "string"
1021
+ },
1022
+ "title": {
1023
+ "type": "string"
1024
+ },
1025
+ "description": {
1026
+ "type": "string"
1027
+ },
1028
+ "mimeType": {
1029
+ "type": "string"
1030
+ },
1031
+ "size": {
1032
+ "type": "number"
1033
+ },
1034
+ "icons": {
1035
+ "$ref": "#/$defs/icons"
1036
+ },
1037
+ "annotations": {
1038
+ "$ref": "#/$defs/resourceAnnotations"
1039
+ },
1040
+ "_meta": {
1041
+ "$ref": "#/$defs/metaObject"
1042
+ }
1043
+ },
1044
+ "additionalProperties": false
1045
+ }
1046
+ ]
1047
+ },
1048
+ "completedToolResultExample": {
1049
+ "type": "object",
1050
+ "required": [
1051
+ "content"
1052
+ ],
1053
+ "properties": {
1054
+ "resultType": {
1055
+ "const": "complete"
1056
+ },
1057
+ "content": {
1058
+ "type": "array",
1059
+ "items": {
1060
+ "$ref": "#/$defs/toolResultContent"
1061
+ }
1062
+ },
1063
+ "structuredContent": {
1064
+ "$ref": "#/$defs/jsonValue"
1065
+ },
1066
+ "isError": {
1067
+ "type": "boolean"
1068
+ },
1069
+ "_meta": {
1070
+ "$ref": "#/$defs/metaObject"
1071
+ }
1072
+ },
1073
+ "additionalProperties": true
1074
+ },
1075
+ "toolExample": {
1076
+ "type": "object",
1077
+ "required": [
1078
+ "input",
1079
+ "result"
1080
+ ],
1081
+ "properties": {
1082
+ "input": {
1083
+ "type": "object",
1084
+ "additionalProperties": {
1085
+ "$ref": "#/$defs/jsonValue"
1086
+ }
1087
+ },
1088
+ "result": {
1089
+ "$ref": "#/$defs/completedToolResultExample"
1090
+ }
1091
+ },
1092
+ "additionalProperties": false
1093
+ },
1094
+ "toolExamples": {
1095
+ "type": "object",
1096
+ "minProperties": 1,
1097
+ "propertyNames": {
1098
+ "pattern": "^[A-Za-z0-9._-]+$"
1099
+ },
1100
+ "additionalProperties": {
1101
+ "$ref": "#/$defs/toolExample"
1102
+ }
1103
+ },
1104
+ "completedReadResourceResultExample": {
1105
+ "type": "object",
1106
+ "required": [
1107
+ "contents"
1108
+ ],
1109
+ "properties": {
1110
+ "resultType": {
1111
+ "const": "complete"
1112
+ },
1113
+ "ttlMs": {
1114
+ "type": "number",
1115
+ "minimum": 0
1116
+ },
1117
+ "cacheScope": {
1118
+ "enum": [
1119
+ "public",
1120
+ "private"
1121
+ ]
1122
+ },
1123
+ "contents": {
1124
+ "type": "array",
1125
+ "minItems": 1,
1126
+ "items": {
1127
+ "$ref": "#/$defs/resourceContents"
1128
+ }
1129
+ },
1130
+ "_meta": {
1131
+ "$ref": "#/$defs/metaObject"
1132
+ }
1133
+ },
1134
+ "additionalProperties": true
1135
+ },
1136
+ "resourceExample": {
1137
+ "type": "object",
1138
+ "required": [
1139
+ "result"
1140
+ ],
1141
+ "properties": {
1142
+ "result": {
1143
+ "$ref": "#/$defs/completedReadResourceResultExample"
1144
+ }
1145
+ },
1146
+ "additionalProperties": false
1147
+ },
1148
+ "resourceExamples": {
1149
+ "type": "object",
1150
+ "minProperties": 1,
1151
+ "propertyNames": {
1152
+ "pattern": "^[A-Za-z0-9._-]+$"
1153
+ },
1154
+ "additionalProperties": {
1155
+ "$ref": "#/$defs/resourceExample"
1156
+ }
1157
+ },
1158
+ "resourceTemplateExample": {
1159
+ "type": "object",
1160
+ "required": [
1161
+ "uri",
1162
+ "result"
1163
+ ],
1164
+ "properties": {
1165
+ "uri": {
1166
+ "type": "string",
1167
+ "format": "uri"
1168
+ },
1169
+ "result": {
1170
+ "$ref": "#/$defs/completedReadResourceResultExample"
1171
+ }
1172
+ },
1173
+ "additionalProperties": false
1174
+ },
1175
+ "resourceTemplateExamples": {
1176
+ "type": "object",
1177
+ "minProperties": 1,
1178
+ "propertyNames": {
1179
+ "pattern": "^[A-Za-z0-9._-]+$"
1180
+ },
1181
+ "additionalProperties": {
1182
+ "$ref": "#/$defs/resourceTemplateExample"
1183
+ }
1184
+ },
1185
+ "promptArgument": {
1186
+ "type": "object",
1187
+ "required": [
1188
+ "name"
1189
+ ],
1190
+ "properties": {
1191
+ "name": {
1192
+ "type": "string"
1193
+ },
1194
+ "title": {
1195
+ "type": "string"
1196
+ },
1197
+ "description": {
1198
+ "type": "string"
1199
+ },
1200
+ "required": {
1201
+ "type": "boolean"
1202
+ }
1203
+ },
1204
+ "additionalProperties": false
1205
+ },
1206
+ "tool": {
1207
+ "type": "object",
1208
+ "required": [
1209
+ "name",
1210
+ "inputSchema"
1211
+ ],
1212
+ "properties": {
1213
+ "protocolVersions": {
1214
+ "$ref": "#/$defs/protocolVersionScope"
1215
+ },
1216
+ "title": {
1217
+ "type": "string"
1218
+ },
1219
+ "description": {
1220
+ "type": "string"
1221
+ },
1222
+ "icons": {
1223
+ "$ref": "#/$defs/icons"
1224
+ },
1225
+ "tags": {
1226
+ "type": "array",
1227
+ "items": {
1228
+ "type": "string"
1229
+ },
1230
+ "uniqueItems": true
1231
+ },
1232
+ "deprecated": {
1233
+ "type": "boolean"
1234
+ },
1235
+ "_meta": {
1236
+ "$ref": "#/$defs/metaObject"
1237
+ },
1238
+ "security": {
1239
+ "$ref": "#/$defs/securityRequirementArray"
1240
+ },
1241
+ "name": {
1242
+ "type": "string",
1243
+ "minLength": 1
1244
+ },
1245
+ "inputSchema": {
1246
+ "allOf": [
1247
+ {
1248
+ "$ref": "#/$defs/jsonSchemaObject"
1249
+ },
1250
+ {
1251
+ "required": [
1252
+ "type"
1253
+ ],
1254
+ "properties": {
1255
+ "type": {
1256
+ "const": "object"
1257
+ }
1258
+ }
1259
+ }
1260
+ ]
1261
+ },
1262
+ "outputSchema": {
1263
+ "$ref": "#/$defs/jsonSchemaObject"
1264
+ },
1265
+ "annotations": {
1266
+ "$ref": "#/$defs/toolAnnotations"
1267
+ },
1268
+ "execution": {
1269
+ "$ref": "#/$defs/execution"
1270
+ },
1271
+ "examples": {
1272
+ "$ref": "#/$defs/toolExamples"
1273
+ },
1274
+ "elicitations": {
1275
+ "type": "array",
1276
+ "items": {
1277
+ "$ref": "#/$defs/elicitationDeclaration"
1278
+ }
1279
+ }
1280
+ },
1281
+ "additionalProperties": false
1282
+ },
1283
+ "resource": {
1284
+ "type": "object",
1285
+ "required": [
1286
+ "uri",
1287
+ "name"
1288
+ ],
1289
+ "properties": {
1290
+ "protocolVersions": {
1291
+ "$ref": "#/$defs/protocolVersionScope"
1292
+ },
1293
+ "title": {
1294
+ "type": "string"
1295
+ },
1296
+ "description": {
1297
+ "type": "string"
1298
+ },
1299
+ "icons": {
1300
+ "$ref": "#/$defs/icons"
1301
+ },
1302
+ "tags": {
1303
+ "type": "array",
1304
+ "items": {
1305
+ "type": "string"
1306
+ },
1307
+ "uniqueItems": true
1308
+ },
1309
+ "deprecated": {
1310
+ "type": "boolean"
1311
+ },
1312
+ "_meta": {
1313
+ "$ref": "#/$defs/metaObject"
1314
+ },
1315
+ "security": {
1316
+ "$ref": "#/$defs/securityRequirementArray"
1317
+ },
1318
+ "uri": {
1319
+ "type": "string"
1320
+ },
1321
+ "name": {
1322
+ "type": "string"
1323
+ },
1324
+ "mimeType": {
1325
+ "type": "string"
1326
+ },
1327
+ "size": {
1328
+ "type": "number"
1329
+ },
1330
+ "annotations": {
1331
+ "$ref": "#/$defs/resourceAnnotations"
1332
+ },
1333
+ "examples": {
1334
+ "$ref": "#/$defs/resourceExamples"
1335
+ },
1336
+ "elicitations": {
1337
+ "type": "array",
1338
+ "items": {
1339
+ "$ref": "#/$defs/elicitationDeclaration"
1340
+ }
1341
+ }
1342
+ },
1343
+ "additionalProperties": false
1344
+ },
1345
+ "resourceTemplate": {
1346
+ "type": "object",
1347
+ "required": [
1348
+ "uriTemplate",
1349
+ "name"
1350
+ ],
1351
+ "properties": {
1352
+ "protocolVersions": {
1353
+ "$ref": "#/$defs/protocolVersionScope"
1354
+ },
1355
+ "title": {
1356
+ "type": "string"
1357
+ },
1358
+ "description": {
1359
+ "type": "string"
1360
+ },
1361
+ "icons": {
1362
+ "$ref": "#/$defs/icons"
1363
+ },
1364
+ "tags": {
1365
+ "type": "array",
1366
+ "items": {
1367
+ "type": "string"
1368
+ },
1369
+ "uniqueItems": true
1370
+ },
1371
+ "deprecated": {
1372
+ "type": "boolean"
1373
+ },
1374
+ "_meta": {
1375
+ "$ref": "#/$defs/metaObject"
1376
+ },
1377
+ "security": {
1378
+ "$ref": "#/$defs/securityRequirementArray"
1379
+ },
1380
+ "uriTemplate": {
1381
+ "type": "string"
1382
+ },
1383
+ "name": {
1384
+ "type": "string"
1385
+ },
1386
+ "mimeType": {
1387
+ "type": "string"
1388
+ },
1389
+ "annotations": {
1390
+ "$ref": "#/$defs/resourceAnnotations"
1391
+ },
1392
+ "examples": {
1393
+ "$ref": "#/$defs/resourceTemplateExamples"
1394
+ },
1395
+ "elicitations": {
1396
+ "type": "array",
1397
+ "items": {
1398
+ "$ref": "#/$defs/elicitationDeclaration"
1399
+ }
1400
+ }
1401
+ },
1402
+ "additionalProperties": false
1403
+ },
1404
+ "prompt": {
1405
+ "type": "object",
1406
+ "required": [
1407
+ "name"
1408
+ ],
1409
+ "properties": {
1410
+ "protocolVersions": {
1411
+ "$ref": "#/$defs/protocolVersionScope"
1412
+ },
1413
+ "title": {
1414
+ "type": "string"
1415
+ },
1416
+ "description": {
1417
+ "type": "string"
1418
+ },
1419
+ "icons": {
1420
+ "$ref": "#/$defs/icons"
1421
+ },
1422
+ "tags": {
1423
+ "type": "array",
1424
+ "items": {
1425
+ "type": "string"
1426
+ },
1427
+ "uniqueItems": true
1428
+ },
1429
+ "deprecated": {
1430
+ "type": "boolean"
1431
+ },
1432
+ "_meta": {
1433
+ "$ref": "#/$defs/metaObject"
1434
+ },
1435
+ "security": {
1436
+ "$ref": "#/$defs/securityRequirementArray"
1437
+ },
1438
+ "name": {
1439
+ "type": "string"
1440
+ },
1441
+ "arguments": {
1442
+ "type": "array",
1443
+ "items": {
1444
+ "$ref": "#/$defs/promptArgument"
1445
+ }
1446
+ },
1447
+ "elicitations": {
1448
+ "type": "array",
1449
+ "items": {
1450
+ "$ref": "#/$defs/elicitationDeclaration"
1451
+ }
1452
+ }
1453
+ },
1454
+ "additionalProperties": false
1455
+ },
1456
+ "transport": {
1457
+ "oneOf": [
1458
+ {
1459
+ "type": "object",
1460
+ "required": [
1461
+ "type",
1462
+ "url"
1463
+ ],
1464
+ "properties": {
1465
+ "protocolVersions": {
1466
+ "$ref": "#/$defs/protocolVersionScope"
1467
+ },
1468
+ "type": {
1469
+ "const": "streamable-http"
1470
+ },
1471
+ "url": {
1472
+ "type": "string",
1473
+ "format": "uri"
1474
+ },
1475
+ "security": {
1476
+ "$ref": "#/$defs/securityRequirementArray"
1477
+ }
1478
+ },
1479
+ "additionalProperties": false
1480
+ },
1481
+ {
1482
+ "type": "object",
1483
+ "required": [
1484
+ "type",
1485
+ "command"
1486
+ ],
1487
+ "properties": {
1488
+ "protocolVersions": {
1489
+ "$ref": "#/$defs/protocolVersionScope"
1490
+ },
1491
+ "type": {
1492
+ "const": "stdio"
1493
+ },
1494
+ "command": {
1495
+ "type": "string"
1496
+ },
1497
+ "args": {
1498
+ "type": "array",
1499
+ "items": {
1500
+ "type": "string"
1501
+ }
1502
+ },
1503
+ "env": {
1504
+ "type": "object",
1505
+ "additionalProperties": {
1506
+ "type": "string"
1507
+ }
1508
+ },
1509
+ "security": {
1510
+ "$ref": "#/$defs/securityRequirementArray"
1511
+ }
1512
+ },
1513
+ "additionalProperties": false
1514
+ },
1515
+ {
1516
+ "type": "object",
1517
+ "required": [
1518
+ "type",
1519
+ "url"
1520
+ ],
1521
+ "properties": {
1522
+ "protocolVersions": {
1523
+ "$ref": "#/$defs/protocolVersionScope"
1524
+ },
1525
+ "type": {
1526
+ "const": "sse"
1527
+ },
1528
+ "url": {
1529
+ "type": "string",
1530
+ "format": "uri"
1531
+ },
1532
+ "security": {
1533
+ "$ref": "#/$defs/securityRequirementArray"
1534
+ }
1535
+ },
1536
+ "additionalProperties": false
1537
+ }
1538
+ ]
1539
+ },
1540
+ "capabilityTools": {
1541
+ "type": "object",
1542
+ "properties": {
1543
+ "listChanged": {
1544
+ "type": "boolean"
1545
+ }
1546
+ },
1547
+ "additionalProperties": false
1548
+ },
1549
+ "capabilityResources": {
1550
+ "type": "object",
1551
+ "properties": {
1552
+ "subscribe": {
1553
+ "type": "boolean"
1554
+ },
1555
+ "listChanged": {
1556
+ "type": "boolean"
1557
+ }
1558
+ },
1559
+ "additionalProperties": false
1560
+ },
1561
+ "capabilityPrompts": {
1562
+ "type": "object",
1563
+ "properties": {
1564
+ "listChanged": {
1565
+ "type": "boolean"
1566
+ }
1567
+ },
1568
+ "additionalProperties": false
1569
+ },
1570
+ "extensionCapabilities": {
1571
+ "type": "object",
1572
+ "propertyNames": {
1573
+ "pattern": "^[A-Za-z](?:[A-Za-z0-9-]*[A-Za-z0-9])?(?:\\.[A-Za-z](?:[A-Za-z0-9-]*[A-Za-z0-9])?)*/[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$"
1574
+ },
1575
+ "additionalProperties": {
1576
+ "type": "object"
1577
+ }
1578
+ },
1579
+ "capabilities": {
1580
+ "type": "object",
1581
+ "properties": {
1582
+ "protocolVersions": {
1583
+ "$ref": "#/$defs/protocolVersionScope"
1584
+ },
1585
+ "tools": {
1586
+ "$ref": "#/$defs/capabilityTools"
1587
+ },
1588
+ "resources": {
1589
+ "$ref": "#/$defs/capabilityResources"
1590
+ },
1591
+ "prompts": {
1592
+ "$ref": "#/$defs/capabilityPrompts"
1593
+ },
1594
+ "completions": {
1595
+ "type": "object",
1596
+ "additionalProperties": true
1597
+ },
1598
+ "logging": {
1599
+ "type": "object",
1600
+ "additionalProperties": true
1601
+ },
1602
+ "tasks": {
1603
+ "type": "object",
1604
+ "properties": {
1605
+ "list": {
1606
+ "type": "object",
1607
+ "additionalProperties": true
1608
+ },
1609
+ "cancel": {
1610
+ "type": "object",
1611
+ "additionalProperties": true
1612
+ },
1613
+ "requests": {
1614
+ "type": "object",
1615
+ "properties": {
1616
+ "tools": {
1617
+ "type": "object",
1618
+ "properties": {
1619
+ "call": {
1620
+ "type": "object",
1621
+ "additionalProperties": true
1622
+ }
1623
+ },
1624
+ "additionalProperties": false
1625
+ }
1626
+ },
1627
+ "additionalProperties": false
1628
+ }
1629
+ },
1630
+ "additionalProperties": false
1631
+ },
1632
+ "extensions": {
1633
+ "$ref": "#/$defs/extensionCapabilities"
1634
+ },
1635
+ "experimental": {
1636
+ "type": "object",
1637
+ "additionalProperties": true
1638
+ }
1639
+ },
1640
+ "patternProperties": {
1641
+ "^x-": {
1642
+ "$ref": "#/$defs/jsonValue"
1643
+ }
1644
+ },
1645
+ "additionalProperties": true
1646
+ }
1647
+ }
1648
+ }