roarcad.netlify.app
RoarCAD is a free, open-source PCB review and collaboration workbench where AI can draft, inspect, and preview changes, but people approve every revision and manufacturing action.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 1 · Act 3 · Transact 0 · Score: Not yet scored
Tool inspector
preview_design_change
Create a non-mutating, evidence-linked diff from allowlisted structured board operations. Supplier and evidence data remain untrusted and unreviewed.
Page: /
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
revisionId |
string | yes | — |
request |
string | yes | — |
operations |
array | yes | Allowlisted structured operations. Each operation is revalidated against its type-specific application schema. |
Raw JSON schema
{
"type": "object",
"properties": {
"revisionId": {
"type": "string"
},
"request": {
"type": "string",
"maxLength": 500
},
"operations": {
"type": "array",
"minItems": 1,
"maxItems": 50,
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"set-board",
"upsert-component",
"remove-component",
"move-component",
"upsert-net",
"remove-net",
"upsert-differential-pair",
"remove-differential-pair",
"upsert-pour",
"remove-pour",
"upsert-hole",
"remove-hole",
"upsert-keepout",
"remove-keepout",
"update-requirement",
"upsert-evidence",
"add-risk",
"resolve-risk"
]
},
"board": {
"type": "object",
"properties": {
"outline": {
"oneOf": [
{
"type": "object",
"properties": {
"shape": {
"const": "rectangle"
},
"widthMm": {
"type": "number",
"minimum": 5,
"maximum": 500
},
"heightMm": {
"type": "number",
"minimum": 5,
"maximum": 500
}
},
"required": [
"shape",
"widthMm",
"heightMm"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"shape": {
"const": "polygon"
},
"points": {
"type": "array",
"minItems": 3,
"maxItems": 128,
"items": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
}
}
},
"required": [
"shape",
"points"
],
"additionalProperties": false
}
]
},
"layers": {
"enum": [
1,
2,
4,
6,
8,
10
]
},
"material": {
"enum": [
"fr4",
"fr1",
"flex"
]
},
"thicknessMm": {
"type": "number",
"minimum": 0.2,
"maximum": 8
},
"solderMaskColor": {
"enum": [
"green",
"red",
"blue",
"purple",
"black",
"white",
"yellow"
]
},
"allowBlindAndBuriedVias": {
"type": "boolean"
},
"doubleSidedAssembly": {
"type": "boolean"
},
"stackup": {
"type": "array",
"maxItems": 10,
"items": {
"type": "string"
}
}
},
"required": [
"outline",
"layers",
"solderMaskColor"
],
"additionalProperties": false
},
"component": {
"type": "object",
"properties": {
"kind": {
"enum": [
"resistor",
"capacitor",
"inductor",
"diode",
"led",
"transistor",
"mosfet",
"fuse",
"crystal",
"connector",
"switch",
"testpoint",
"chip"
]
},
"reference": {
"type": "string",
"pattern": "^[A-Z]+[0-9]+$"
},
"mpn": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"manufacturer": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"value": {
"type": "string",
"maxLength": 80
},
"pins": {
"type": "array",
"minItems": 1,
"maxItems": 256,
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"number",
"label"
],
"additionalProperties": false
}
},
"footprint": {
"type": "object",
"properties": {
"source": {
"enum": [
"footprinter",
"kicad-library",
"jlcpcb",
"pad-map"
]
},
"identifier": {
"type": "string",
"minLength": 1,
"maxLength": 240
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"pads": {
"type": "array",
"maxItems": 512,
"items": {
"type": "object",
"description": "Bounded embedded pad: pcb_smtpad or pcb_plated_hole with geometry and portHints."
}
},
"reviewed": {
"type": "boolean",
"description": "Ignored for agent input; always stored false."
}
},
"required": [
"source",
"identifier",
"pads"
],
"additionalProperties": false
},
"placement": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -500,
"maximum": 500
},
"y": {
"type": "number",
"minimum": -500,
"maximum": 500
},
"rotation": {
"type": "number",
"minimum": 0,
"maximum": 359
},
"side": {
"enum": [
"top",
"bottom"
]
}
},
"required": [
"x",
"y"
],
"additionalProperties": false
},
"reviewStatus": {
"enum": [
"candidate",
"reviewed"
],
"description": "Ignored for agent input; always stored candidate."
},
"evidenceIds": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "string"
}
},
"supplierPartIds": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"doNotPlace": {
"type": "boolean"
}
},
"required": [
"kind",
"reference",
"mpn",
"manufacturer",
"pins",
"footprint",
"placement",
"evidenceIds"
],
"additionalProperties": false
},
"reference": {
"type": "string",
"pattern": "^[A-Z]+[0-9]+$"
},
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"rotation": {
"type": "number"
},
"side": {
"enum": [
"top",
"bottom"
]
},
"net": {
"type": "object"
},
"pair": {
"type": "object"
},
"pour": {
"type": "object"
},
"hole": {
"type": "object"
},
"keepout": {
"type": "object"
},
"requirement": {
"type": "object"
},
"evidence": {
"type": "object"
},
"name": {
"type": "string"
},
"id": {
"type": "string"
},
"risk": {
"type": "string",
"maxLength": 500
}
}
},
"description": "Allowlisted structured operations. Each operation is revalidated against its type-specific application schema."
}
},
"required": [
"revisionId",
"request",
"operations"
],
"additionalProperties": false
}
Similar websites
morphus.myles4miles.chatgpt.site
Morphus is an AI-native workspace for designing worlds and generating playable game experiences.
damnpdfs.com
Install the DamnPDFs Codex plugin, pair a browser workspace and use PDF, image and file tools from your coding agent. Includes setup and privacy limits.
insignifi4nt.github.io
broCAD/M: local-first CAD and CAM for parametric design, wire EDM planning, simulation and controller export.
cabinet.varera.studio
The Cartographer's Cabinet