Skip to main content
Glama
Avinash1286

KiCAD MCP Server

by Avinash1286

Export 3d Cli

export_3d_cli
Destructive

Export PCB designs to 3D model formats (STEP, GLB, STL, PLY, BREP, XAO, VRML) using kicad-cli, with control over included layers and components.

Instructions

Export a 3D model of the PCB via kicad-cli. The format param selects the subcommand (step, glb, stl, ply, brep, xao, vrml); only flags valid for that subcommand are forwarded. STEP/glb/stl/ply/brep/xao share the geometry/include flag set (no-board-body, include-tracks/pads/zones/inner-copper/silkscreen/soldermask, fuse-shapes, fill-all-vias, component/net filters, min-distance, etc.; no-optimize-step is STEP-only); vrml uses units + models-dir/models-relative instead. Rich CLI sibling of export_3d and export_vrml. Reads the last SAVED state of the .kicad_pcb.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
forceNoOverwrite output file
noDnpNoExclude 3D models for components with 'Do not populate' attribute
unitsNoOutput units (VRML only; default in)
formatYes3D output format (selects the kicad-cli subcommand)
boardOnlyNoOnly generate a board with no components
boardPathNoPath to the .kicad_pcb (default: current board)
defineVarNoProject variable overrides as 'KEY=VALUE' strings
modelsDirNoFolder to store 3D models in (VRML only; empty = embed in main file)
netFilterNoOnly include copper items belonging to nets matching this wildcard
fuseShapesNoFuse overlapping geometry together
gridOriginNoUse Grid Origin for output origin
outputPathYesOutput 3D model file path
userOriginNoUser-specified output origin e.g. '1x1in', '25.4x25.4mm' (default unit mm)
drillOriginNoUse Drill Origin for output origin
fillAllViasNoDon't cut via holes in conductor layers
includePadsNoExport pads
minDistanceNoMin distance between points to treat as separate (default '0.01mm')
noBoardBodyNoExclude board body
substModelsNoSubstitute STEP/IGS models in place of VRML models
includeZonesNoExport zones
noComponentsNoExclude 3D models for components
cutViasInBodyNoCut via holes in board body even if conductor layers not exported
includeTracksNoExport tracks and vias
noUnspecifiedNoExclude 3D models for components with 'Unspecified' footprint type
modelsRelativeNoUse relative model paths with modelsDir (VRML only)
noOptimizeStepNoDo not optimize STEP file (enables writing parametric curves; STEP only)
componentFilterNoOnly include component models matching this refdes list (comma, wildcards)
includeSilkscreenNoExport silkscreen graphics as flat faces
includeSoldermaskNoExport soldermask layers as flat faces
includeInnerCopperNoExport elements on inner copper layers

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotation destructiveHint=true, the description discloses that the tool reads the last SAVED state of the PCB (not unsaved changes) and that only flags valid for the selected subcommand are forwarded. This adds meaningful behavioral context not present in the annotations. No contradictions with annotations were found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized: a one-sentence purpose, a comprehensive but readable explanation of flag groups, a sibling context sentence, and a crucial state-read caveat. Every sentence provides value without repetition or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 30 parameters, an output schema, and annotations, the description covers the essential operational context: how format dispatches, which parameters apply to which formats, the CLI relationship, and the saved-state caveat. The presence of an output schema removes the need to describe return values, and the description gives enough guidance for reliable use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the baseline is 3, but the description greatly enhances parameter understanding by grouping shared flags and identifying format-specific parameters (e.g., no-optimize-step is STEP-only, vrml uses units/models-dir). This interdependency information is absent from the schema and is essential for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear, specific action: 'Export a 3D model of the PCB via kicad-cli.' It differentiates the tool from siblings by explicitly calling itself a 'Rich CLI sibling of export_3d and export_vrml' and immediately explains the format-based subcommand selection, leaving no ambiguity about its role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives strong practical guidance on how to use the format parameter and which flags are valid per subcommand, including the split between the shared geometry flag set and VRML-specific flags. However, it does not explicitly state when to choose this tool over export_3d or export_vrml beyond calling it 'rich' and 'CLI' – the comparative usage guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Avinash1286/KiCAD-MCP-Server-THEAVI'

If you have feedback or need assistance with the MCP directory API, please join our Discord server