KiCad MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_device_treeB | Generate device tree source (.dts) file from schematic. This function analyzes a KiCad schematic and generates a device tree source file compatible with the specified SOC family. |
| extract_gpio_configB | Extract GPIO pin configurations from schematic. |
| extract_i2c_devicesC | Extract I2C bus and device configurations. |
| extract_spi_devicesB | Extract SPI bus and device configurations. |
| extract_power_domainsC | Extract power domain and regulator configurations. |
| validate_pin_configurationC | Validate pin configuration conflicts for device tree generation. This function validates that the pin configuration is suitable for device tree generation and reports any conflicts or issues. |
| trace_hierarchical_connectionA | Trace component connections across hierarchical schematics. This tool traces connections through the entire schematic hierarchy, including sub-sheets, to show complete signal paths. |
| analyze_hierarchical_netsA | Analyze all nets in hierarchical schematic design. This tool analyzes network connections across the entire hierarchy, showing how signals flow between main schematic and sub-sheets. |
| generate_netlistB | Generate KiCad netlist from schematic file. |
| trace_netlist_connectionB | Trace component connections using netlist file (most accurate). |
| get_netlist_netsC | Get all nets from netlist file. |
| get_netlist_componentsA | Get all components from netlist with their network connections. |
| list_pcb_footprintsB | List all footprints in a KiCad PCB file. |
| get_pcb_statisticsC | Get statistics about a KiCad PCB design. |
| analyze_pcb_netsA | Analyze nets in a KiCad PCB file. Provides track width distribution, via distribution, per-net track length ranking, layer coverage, and design rule comparison. |
| find_tracks_by_netB | Find track segments belonging to a specific net. |
| analyze_pcb_signal_integrityA | Analyze signal integrity: diff pair matching, RF traces, critical nets. Auto-detects differential pairs (e.g., USB_N/USB_P, DP/DN) and checks length matching. Reports RF trace dimensions and longest signal nets. |
| analyze_pcb_power_integrityC | Analyze power integrity: copper zones, power net routing, GND coverage. |
| setup_pcb_layoutA | Initialize PCB layout with specified dimensions. Creates a .kicad_pcb file with the specified size based on the schematic. The PCB will be initialized with:
|
| export_gerberA | Export PCB to Gerber format for manufacturing. Gerber files are required for PCB fabrication. This tool generates all necessary Gerber files including:
|
| analyze_pin_functionsB | Analyze pin functions and detect conflicts. This function analyzes schematic to determine pin functions by:
|
| detect_pin_conflictsA | Detect pins with conflicting electrical connections. This function checks for:
|
| extract_pinmux_configA | Extract pin multiplexing configuration for MCUs. This function extracts pin multiplexing (pinmux) configuration for MCU components, showing which peripherals are assigned to which pins. |
| create_kicad_projectB | Create a complete KiCad 9.0+ project by copying KiCad's template. This method copies a KiCad template project and modifies it, ensuring 100% compatibility with KiCad 9.0+. |
| list_schematic_componentsC | List all components in a KiCad schematic file. |
| get_symbol_detailsC | Get detailed information about a specific symbol/component. |
| search_symbolsC | Search for symbols/components matching a pattern. |
| list_schematic_netsB | List all nets in a KiCad schematic. |
| get_schematic_infoC | Get general information about a schematic file. |
| add_component_from_libraryC | Add a component from KiCad's built-in library to the schematic. |
| add_wireC | Add a wire (connection line) to the schematic. |
| add_labelC | Add a local label (text label) to the schematic. |
| search_components_by_typeC | Search for components by type (OLED, sensor, display, etc.). This tool intelligently searches for components by their type, value, footprint, or network connections to identify specific component categories. |
| run_ercA | Run Electrical Rules Check (ERC) on schematic. Checks for:
|
| run_drcA | Run Design Rules Check (DRC) on PCB. Checks for:
|
| get_erc_violationsB | Get filtered ERC violations from schematic. |
| get_drc_violationsB | Get filtered DRC violations from PCB. |
| export_erc_reportB | Export ERC report to file. |
| export_drc_reportC | Export DRC report to file. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_config | Get current server configuration. |
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/Seeed-Studio/kicad-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server