KiCad MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KICAD_MCP_CONFIG | No | Path to the KiCad MCP configuration file. Configuration files are searched in priority order: 1. Environment variable: $KICAD_MCP_CONFIG, 2. Local project: .kicad_mcp.yaml (current directory or parent directories), 3. Global config: ~/.config/kicad_mcp/config.yaml, 4. Default: Empty configuration (no boards pre-loaded) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_datasheetB | Search for component datasheet URL using manufacturer and part number |
| list_configured_boardsA | List all boards configured in .kicad_mcp.yaml |
| list_configured_systemsA | List all multi-board systems configured in .kicad_mcp.yaml |
| load_boardB | Load a board by name from configuration |
| load_systemB | Load a multi-board system by name from configuration |
| trace_cross_board_signalC | Trace a signal across multiple boards in a system |
| get_system_overviewC | Get an overview of a multi-board system |
| reload_configA | Reload configuration from disk without restarting the server |
| add_boardB | Add a new board to the configuration |
| remove_boardB | Remove a board from the configuration |
| add_systemB | Add a new multi-board system to the configuration |
| remove_systemB | Remove a system from the configuration |
| pcb_drcA | Run headless Design Rule Check on a PCB and return violations grouped by rule with severities, mm coordinates, totals, and the JSON report path. Fails closed (explicit error) if the run fails rather than reporting a false clean pass. |
| pcb_renderA | Render a PCB in 3D to a PNG and return the image plus the saved file path. Supports camera controls: side, zoom, rotate, pan, pivot, perspective, floor. |
| pcb_export_layersB | Export one SVG per PCB layer (e.g. F.Cu,B.Cu,Edge.Cuts) and return the generated file paths. Defaults to board-area fit for downstream cropping. |
| pcb_overviewB | Get a PCB layout overview: board dimensions, layer/stackup summary, footprint/track/via/zone counts, net count, and top nets by copper element count. |
| pcb_componentA | Get a component's PCB placement (position, side, rotation), footprint id, and pads with their nets. |
| pcb_components_nearB | Find footprints placed within a radius (mm) of a given component, with distances. |
| pcb_net_routeA | Analyze one PCB net's routed copper length, layer usage, widths, vias, endpoints, and copper-island connectivity. |
| pcb_diff_pairA | Compare routed lengths for a differential pair. Pass explicit net_p/net_n or pass net_p as the base name using _P/_N or +/- conventions. |
| pcb_net_lengthsA | List routed lengths for nets whose names match a glob or regular expression, sorted by length for bus matching review. |
| pcb_current_capacityA | Estimate current capacity for nets matching a glob or regex, sorted weakest first, using IPC-2221 trace current formulas. |
| pcb_impedance_estimateA | Estimate single-ended and differential impedance with IPC-2141 closed-form formulas for matching nets, or a hypothetical width/layer. |
| pcb_cropA | Render a 2D PNG crop of a PCB region as ImageContent. Select exactly one target: reference plus margin_mm, net plus margin_mm, or explicit x_mm/y_mm/width_mm/height_mm. Layers default to the target side copper plus silkscreen and Edge.Cuts for reference crops, or all copper plus Edge.Cuts otherwise. |
| pcb_highlight_netB | Render a 2D PNG with one net's tracks, vias, pads, and zones drawn bright over a dimmed board. Defaults to the whole board and all copper layers. |
| kicad_sessionA | Report live KiCad IPC reachability, version, attempted socket, and open PCB documents. |
| kicad_focusB | Select a footprint reference or board position in the running KiCad PCB editor. View zoom/pan is reported when unsupported by the IPC client. |
| kicad_highlight_netA | Select all selectable copper items on a net in the running KiCad PCB editor so the GUI highlights them live. |
| kicad_get_selectionA | Read the user's current live KiCad PCB selection as references, nets, item types, and item summaries. |
| kicad_open_boardB | Resolve a PCB source and fail closed if the installed KiCad IPC client cannot open documents. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/bleugreen/kicad-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server