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) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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