@oaslananka/kicad-protocol-schemas 1.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,385 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://oaslananka.github.io/kicad-mcp/schemas/kicad-mcp-server-info.schema.json",
4
+ "title": "KiCad MCP Pro server-info contract",
5
+ "description": "Stable capability discovery payload. Breaking contract changes must increment the schemaVersion major.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "server",
11
+ "version",
12
+ "mcpProtocolVersion",
13
+ "toolSchemaVersion",
14
+ "compatibilityRange",
15
+ "transport",
16
+ "kicad",
17
+ "operatingMode",
18
+ "capabilities",
19
+ "diagnostics"
20
+ ],
21
+ "properties": {
22
+ "schemaVersion": {
23
+ "type": "string",
24
+ "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
25
+ },
26
+ "server": {
27
+ "const": "kicad-mcp-pro"
28
+ },
29
+ "description": {
30
+ "type": "string",
31
+ "minLength": 1
32
+ },
33
+ "localizedDescriptions": {
34
+ "type": "object",
35
+ "additionalProperties": false,
36
+ "required": ["en", "tr"],
37
+ "properties": {
38
+ "en": {
39
+ "type": "string",
40
+ "minLength": 1
41
+ },
42
+ "tr": {
43
+ "type": "string",
44
+ "minLength": 1
45
+ }
46
+ }
47
+ },
48
+ "version": {
49
+ "type": "string",
50
+ "minLength": 1
51
+ },
52
+ "mcpProtocolVersion": {
53
+ "type": "string",
54
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
55
+ },
56
+ "toolSchemaVersion": {
57
+ "type": "string",
58
+ "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
59
+ },
60
+ "compatibilityRange": {
61
+ "type": "object",
62
+ "additionalProperties": false,
63
+ "required": ["kicadStudio", "kicadMcpPro"],
64
+ "properties": {
65
+ "kicadStudio": {
66
+ "$ref": "#/$defs/productRangeWithRecommendation"
67
+ },
68
+ "kicadMcpPro": {
69
+ "$ref": "#/$defs/productRange"
70
+ }
71
+ }
72
+ },
73
+ "transport": {
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "required": [
77
+ "type",
78
+ "streamableHttp",
79
+ "statelessHttp",
80
+ "legacySse",
81
+ "authRequired",
82
+ "endpoint"
83
+ ],
84
+ "properties": {
85
+ "type": {
86
+ "enum": ["stdio", "streamable-http", "sse"]
87
+ },
88
+ "streamableHttp": {
89
+ "type": "boolean"
90
+ },
91
+ "statelessHttp": {
92
+ "type": "boolean"
93
+ },
94
+ "legacySse": {
95
+ "type": "boolean"
96
+ },
97
+ "authRequired": {
98
+ "type": "boolean"
99
+ },
100
+ "endpoint": {
101
+ "type": ["string", "null"]
102
+ }
103
+ }
104
+ },
105
+ "kicad": {
106
+ "type": "object",
107
+ "additionalProperties": false,
108
+ "required": [
109
+ "cliFound",
110
+ "cliPath",
111
+ "cliVersion",
112
+ "ipcAvailable",
113
+ "ipcVersion",
114
+ "ipcApiVersion",
115
+ "ipcMajorVersion",
116
+ "ipcEndpointSource",
117
+ "livePcbContext",
118
+ "liveSchematicContext",
119
+ "ipcDocumentLoaded"
120
+ ],
121
+ "properties": {
122
+ "cliFound": {
123
+ "type": "boolean"
124
+ },
125
+ "cliPath": {
126
+ "type": "string"
127
+ },
128
+ "cliVersion": {
129
+ "type": ["string", "null"]
130
+ },
131
+ "ipcAvailable": {
132
+ "type": "boolean"
133
+ },
134
+ "ipcVersion": {
135
+ "type": ["string", "null"]
136
+ },
137
+ "ipcApiVersion": {
138
+ "type": ["string", "null"]
139
+ },
140
+ "ipcMajorVersion": {
141
+ "type": ["integer", "null"],
142
+ "minimum": 0
143
+ },
144
+ "ipcEndpointSource": {
145
+ "enum": ["config", "environment", "default"]
146
+ },
147
+ "livePcbContext": {
148
+ "type": "boolean"
149
+ },
150
+ "liveSchematicContext": {
151
+ "type": "boolean"
152
+ },
153
+ "ipcDocumentLoaded": {
154
+ "type": "boolean"
155
+ }
156
+ }
157
+ },
158
+ "operatingMode": {
159
+ "type": "object",
160
+ "additionalProperties": false,
161
+ "required": [
162
+ "active",
163
+ "default",
164
+ "available",
165
+ "experimentalEnabled",
166
+ "toolAvailability"
167
+ ],
168
+ "properties": {
169
+ "active": {
170
+ "$ref": "#/$defs/operatingMode"
171
+ },
172
+ "default": {
173
+ "$ref": "#/$defs/operatingMode"
174
+ },
175
+ "available": {
176
+ "type": "array",
177
+ "items": {
178
+ "$ref": "#/$defs/operatingMode"
179
+ },
180
+ "uniqueItems": true,
181
+ "minItems": 4
182
+ },
183
+ "experimentalEnabled": {
184
+ "type": "boolean"
185
+ },
186
+ "toolAvailability": {
187
+ "type": "object",
188
+ "additionalProperties": {
189
+ "$ref": "#/$defs/toolOperatingModeAvailability"
190
+ }
191
+ }
192
+ }
193
+ },
194
+ "capabilities": {
195
+ "type": "object",
196
+ "additionalProperties": false,
197
+ "required": [
198
+ "fileBackedDrc",
199
+ "fileBackedErc",
200
+ "fileBackedExports",
201
+ "livePcbRead",
202
+ "livePcbWrite",
203
+ "liveSchematicRead",
204
+ "liveSchematicWrite",
205
+ "liveEditingTools",
206
+ "chatgptConnectorCompatible",
207
+ "cliExports"
208
+ ],
209
+ "properties": {
210
+ "fileBackedDrc": {
211
+ "type": "boolean"
212
+ },
213
+ "fileBackedErc": {
214
+ "type": "boolean"
215
+ },
216
+ "fileBackedExports": {
217
+ "type": "boolean"
218
+ },
219
+ "livePcbRead": {
220
+ "type": "boolean"
221
+ },
222
+ "livePcbWrite": {
223
+ "type": "boolean"
224
+ },
225
+ "liveSchematicRead": {
226
+ "type": "boolean"
227
+ },
228
+ "liveSchematicWrite": {
229
+ "type": "boolean"
230
+ },
231
+ "liveEditingTools": {
232
+ "type": "object",
233
+ "additionalProperties": {
234
+ "$ref": "#/$defs/liveEditingTool"
235
+ },
236
+ "required": [
237
+ "pcb_place_component",
238
+ "pcb_route_trace",
239
+ "pcb_add_zone",
240
+ "pcb_set_design_rules",
241
+ "pcb_move_component",
242
+ "pcb_delete_object",
243
+ "sch_add_component",
244
+ "sch_add_wire",
245
+ "sch_modify_property"
246
+ ]
247
+ },
248
+ "chatgptConnectorCompatible": {
249
+ "type": "boolean"
250
+ },
251
+ "cliExports": {
252
+ "type": "object",
253
+ "additionalProperties": false,
254
+ "required": [
255
+ "ipc2581",
256
+ "odb",
257
+ "svg",
258
+ "dxf",
259
+ "step",
260
+ "render",
261
+ "spiceNetlist"
262
+ ],
263
+ "properties": {
264
+ "ipc2581": {
265
+ "type": "boolean"
266
+ },
267
+ "odb": {
268
+ "type": "boolean"
269
+ },
270
+ "svg": {
271
+ "type": "boolean"
272
+ },
273
+ "dxf": {
274
+ "type": "boolean"
275
+ },
276
+ "step": {
277
+ "type": "boolean"
278
+ },
279
+ "stepz": {
280
+ "type": "boolean"
281
+ },
282
+ "xao": {
283
+ "type": "boolean"
284
+ },
285
+ "render": {
286
+ "type": "boolean"
287
+ },
288
+ "spiceNetlist": {
289
+ "type": "boolean"
290
+ }
291
+ }
292
+ }
293
+ }
294
+ },
295
+ "diagnostics": {
296
+ "type": "array",
297
+ "items": {
298
+ "type": "string"
299
+ }
300
+ }
301
+ },
302
+ "$defs": {
303
+ "operatingMode": {
304
+ "enum": ["readonly", "write", "manufacturing", "experimental"]
305
+ },
306
+ "toolOperatingModeAvailability": {
307
+ "type": "object",
308
+ "additionalProperties": false,
309
+ "required": ["available", "requiredMode", "reason"],
310
+ "properties": {
311
+ "available": {
312
+ "type": "boolean"
313
+ },
314
+ "requiredMode": {
315
+ "$ref": "#/$defs/operatingMode"
316
+ },
317
+ "reason": {
318
+ "type": ["string", "null"]
319
+ }
320
+ }
321
+ },
322
+ "liveEditingTool": {
323
+ "type": "object",
324
+ "additionalProperties": false,
325
+ "required": ["available", "backend", "reason", "minimumKiCadMajor"],
326
+ "properties": {
327
+ "available": {
328
+ "type": "boolean"
329
+ },
330
+ "backend": {
331
+ "enum": ["kicad-ipc", "hybrid-file-ipc"]
332
+ },
333
+ "reason": {
334
+ "type": ["string", "null"]
335
+ },
336
+ "minimumKiCadMajor": {
337
+ "type": "integer",
338
+ "minimum": 9
339
+ }
340
+ }
341
+ },
342
+ "productRange": {
343
+ "type": "object",
344
+ "additionalProperties": false,
345
+ "required": ["required", "testedAgainst"],
346
+ "properties": {
347
+ "required": {
348
+ "type": "string",
349
+ "minLength": 1
350
+ },
351
+ "testedAgainst": {
352
+ "type": "string",
353
+ "minLength": 1
354
+ }
355
+ }
356
+ },
357
+ "productRangeWithRecommendation": {
358
+ "type": "object",
359
+ "additionalProperties": false,
360
+ "required": ["required", "recommended", "testedAgainst"],
361
+ "properties": {
362
+ "required": {
363
+ "type": "string",
364
+ "minLength": 1
365
+ },
366
+ "recommended": {
367
+ "type": "string",
368
+ "minLength": 1
369
+ },
370
+ "testedAgainst": {
371
+ "type": "string",
372
+ "minLength": 1
373
+ }
374
+ }
375
+ }
376
+ },
377
+ "x-kicad-studio-kit": {
378
+ "trackingIssue": "OASLANA-52",
379
+ "schemaVersion": "1.0.0"
380
+ },
381
+ "x-kicad-mcp": {
382
+ "trackingIssue": "OASLANA-52",
383
+ "schemaType": "protocol-contract"
384
+ }
385
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://oaslananka.github.io/kicad-mcp/schemas/mcp-server-health.schema.json",
4
+ "title": "MCP server health and version contract",
5
+ "description": "Health/version payload advertised by kicad-mcp-pro without VS Code or Python implementation details.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "server",
11
+ "version",
12
+ "status",
13
+ "mcpProtocolVersion",
14
+ "toolSchemaVersion",
15
+ "transport",
16
+ "kicad",
17
+ "diagnostics"
18
+ ],
19
+ "properties": {
20
+ "schemaVersion": {
21
+ "$ref": "#/$defs/semver"
22
+ },
23
+ "server": {
24
+ "const": "kicad-mcp-pro"
25
+ },
26
+ "version": {
27
+ "type": "string",
28
+ "minLength": 1
29
+ },
30
+ "status": {
31
+ "enum": ["ok", "degraded", "error"]
32
+ },
33
+ "mcpProtocolVersion": {
34
+ "type": "string",
35
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
36
+ },
37
+ "toolSchemaVersion": {
38
+ "$ref": "#/$defs/semver"
39
+ },
40
+ "transport": {
41
+ "type": "object",
42
+ "additionalProperties": false,
43
+ "required": ["type", "endpoint"],
44
+ "properties": {
45
+ "type": {
46
+ "enum": ["stdio", "streamable-http", "sse"]
47
+ },
48
+ "endpoint": {
49
+ "type": ["string", "null"]
50
+ }
51
+ }
52
+ },
53
+ "kicad": {
54
+ "type": "object",
55
+ "additionalProperties": false,
56
+ "required": ["cliFound", "cliVersion", "ipcAvailable"],
57
+ "properties": {
58
+ "cliFound": {
59
+ "type": "boolean"
60
+ },
61
+ "cliVersion": {
62
+ "type": ["string", "null"]
63
+ },
64
+ "ipcAvailable": {
65
+ "type": "boolean"
66
+ }
67
+ }
68
+ },
69
+ "diagnostics": {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "string"
73
+ }
74
+ }
75
+ },
76
+ "$defs": {
77
+ "semver": {
78
+ "type": "string",
79
+ "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
80
+ }
81
+ },
82
+ "x-kicad-studio-kit": {
83
+ "trackingIssue": "OASLANA-52",
84
+ "schemaVersion": "1.0.0"
85
+ },
86
+ "x-kicad-mcp": {
87
+ "trackingIssue": "OASLANA-52",
88
+ "schemaType": "protocol-contract"
89
+ }
90
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://oaslananka.github.io/kicad-mcp/schemas/mcp-tool-capability.schema.json",
4
+ "title": "MCP tool capability metadata contract",
5
+ "description": "Versioned metadata for a single advertised kicad-mcp-pro tool capability.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "name",
11
+ "profiles",
12
+ "tier",
13
+ "runtime",
14
+ "supports_dry_run",
15
+ "human_gate_required",
16
+ "description",
17
+ "verification_level"
18
+ ],
19
+ "properties": {
20
+ "schemaVersion": {
21
+ "$ref": "#/$defs/semver"
22
+ },
23
+ "name": {
24
+ "type": "string",
25
+ "pattern": "^[a-z][a-z0-9_]*$"
26
+ },
27
+ "profiles": {
28
+ "type": "array",
29
+ "items": {
30
+ "type": "string",
31
+ "pattern": "^[a-z][a-z0-9_]*$"
32
+ },
33
+ "uniqueItems": true
34
+ },
35
+ "tier": {
36
+ "enum": ["read", "write", "export", "publish", "human_only"]
37
+ },
38
+ "runtime": {
39
+ "enum": [
40
+ "none",
41
+ "kicad_cli",
42
+ "kicad_ipc",
43
+ "ngspice",
44
+ "freerouting",
45
+ "docker"
46
+ ]
47
+ },
48
+ "supports_dry_run": {
49
+ "type": "boolean"
50
+ },
51
+ "human_gate_required": {
52
+ "type": "boolean"
53
+ },
54
+ "description": {
55
+ "type": "string"
56
+ },
57
+ "verification_level": {
58
+ "enum": ["verified", "experimental", "planned"]
59
+ },
60
+ "inputSchema": {
61
+ "type": "object"
62
+ },
63
+ "annotations": {
64
+ "type": "object"
65
+ }
66
+ },
67
+ "$defs": {
68
+ "semver": {
69
+ "type": "string",
70
+ "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
71
+ }
72
+ },
73
+ "x-kicad-studio-kit": {
74
+ "trackingIssue": "OASLANA-52",
75
+ "schemaVersion": "1.0.0"
76
+ },
77
+ "x-kicad-mcp": {
78
+ "trackingIssue": "OASLANA-52",
79
+ "schemaType": "protocol-contract"
80
+ }
81
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://oaslananka.github.io/kicad-mcp/schemas/mcp-tool-discovery.schema.json",
4
+ "title": "MCP tool discovery contract",
5
+ "description": "Tool/resource/prompt discovery payload returned by MCP initialize or tools/list flows.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": ["tools"],
9
+ "properties": {
10
+ "schemaVersion": {
11
+ "$ref": "#/$defs/semver"
12
+ },
13
+ "_meta": {
14
+ "type": "object",
15
+ "additionalProperties": true
16
+ },
17
+ "nextCursor": {
18
+ "type": "string"
19
+ },
20
+ "tools": {
21
+ "type": "array",
22
+ "items": {
23
+ "$ref": "#/$defs/tool"
24
+ }
25
+ },
26
+ "resources": {
27
+ "type": "array",
28
+ "items": {
29
+ "$ref": "#/$defs/resource"
30
+ }
31
+ },
32
+ "prompts": {
33
+ "type": "array",
34
+ "items": {
35
+ "$ref": "#/$defs/prompt"
36
+ }
37
+ }
38
+ },
39
+ "$defs": {
40
+ "semver": {
41
+ "type": "string",
42
+ "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
43
+ },
44
+ "tool": {
45
+ "type": "object",
46
+ "additionalProperties": true,
47
+ "required": ["name"],
48
+ "properties": {
49
+ "name": {
50
+ "type": "string",
51
+ "minLength": 1
52
+ },
53
+ "description": {
54
+ "type": "string"
55
+ },
56
+ "inputSchema": {
57
+ "type": "object"
58
+ },
59
+ "annotations": {
60
+ "type": "object"
61
+ }
62
+ }
63
+ },
64
+ "resource": {
65
+ "type": "object",
66
+ "additionalProperties": true,
67
+ "properties": {
68
+ "uri": {
69
+ "type": "string"
70
+ },
71
+ "name": {
72
+ "type": "string"
73
+ },
74
+ "description": {
75
+ "type": "string"
76
+ }
77
+ }
78
+ },
79
+ "prompt": {
80
+ "type": "object",
81
+ "additionalProperties": true,
82
+ "required": ["name"],
83
+ "properties": {
84
+ "name": {
85
+ "type": "string",
86
+ "minLength": 1
87
+ },
88
+ "description": {
89
+ "type": "string"
90
+ }
91
+ }
92
+ }
93
+ },
94
+ "x-kicad-studio-kit": {
95
+ "trackingIssue": "OASLANA-52",
96
+ "schemaVersion": "1.0.0"
97
+ },
98
+ "x-kicad-mcp": {
99
+ "trackingIssue": "OASLANA-52",
100
+ "schemaType": "protocol-contract"
101
+ }
102
+ }