An MCP server for KiCad that exposes tools to inspect, edit, validate, and export PCB and schematic projects through MCP clients. It supports project management, schematic/PCB manipulation, library lookup, design-rule checks, manufacturing export, and simulation/analysis workflows.
From the registry: MCP server for KiCad project setup, PCB edits, schematic work, validation, and exports.
Please install the `kicad-mcp-pro` MCP server into my current AI client (that's you).
Required prerequisites (do these first if not already done):
- **Install Python 3.12+** — Python 3.12 or newer is required to run the server.
- **Install KiCad 9.0 or 10.0+** — KiCad must be installed. Many export and validation tools rely on the KiCad CLI, and live IPC tools require a running KiCad session with the IPC API available. (https://www.kicad.org/download/)
Canonical MCP server config (stdio transport):
- command: `uvx`
- args: ["kicad-mcp-pro"]
- optional environment variables:
- `KICAD_MCP_PROJECT_DIR`: Active KiCad project directory. README examples recommend setting this to an absolute path to avoid startup errors in some clients. (example: `<absolute-path-to-your-kicad-project>`)
- `KICAD_MCP_PROFILE`: Server tool profile. Preferred values include full, minimal, schematic_only, pcb_only, manufacturing, high_speed, power, simulation, and analysis. (example: `<profile-name>`)
- `KICAD_MCP_KICAD_CLI`: Path to the kicad-cli binary if auto-detection does not find it. (example: `<path-to-kicad-cli>`)
- `KICAD_MCP_NGSPICE_CLI`: Path to the ngspice binary if needed for simulation fallback. (example: `<path-to-ngspice>`)
- `KICAD_MCP_KICAD_SOCKET_PATH`: Optional KiCad IPC socket path for live IPC tools. (example: `<path-to-kicad-ipc-socket>`)
- `KICAD_MCP_KICAD_TOKEN`: Optional KiCad IPC token for live IPC tools. (example: `<your-kicad-ipc-token>`)
- `KICAD_MCP_PROJECT_FILE`: Explicit path to the .kicad_pro project file. (example: `<path-to-project-file.kicad_pro>`)
- `KICAD_MCP_PCB_FILE`: Explicit path to the .kicad_pcb board file. (example: `<path-to-board-file.kicad_pcb>`)
- `KICAD_MCP_SCH_FILE`: Explicit path to the .kicad_sch schematic file. (example: `<path-to-schematic-file.kicad_sch>`)
- `KICAD_MCP_OUTPUT_DIR`: Directory where exports are written. (example: `<path-to-output-directory>`)
- `KICAD_MCP_SYMBOL_LIBRARY_DIR`: Path to the KiCad symbol library root if auto-detection is not suitable. (example: `<path-to-symbol-library-root>`)
- `KICAD_MCP_FOOTPRINT_LIBRARY_DIR`: Path to the KiCad footprint library root if auto-detection is not suitable. (example: `<path-to-footprint-library-root>`)
- `KICAD_MCP_TRANSPORT`: Transport mode. Defaults to stdio; other documented values are http, sse, and streamable-http. (example: `<transport>`)
- `KICAD_MCP_HOST`: Host to bind when using HTTP transport. (example: `<bind-host>`)
- `KICAD_MCP_PORT`: Port to bind when using HTTP transport. (example: `<bind-port>`)
- `KICAD_MCP_MOUNT_PATH`: HTTP mount path when using HTTP transport. (example: `<mount-path>`)
- `KICAD_MCP_LOG_LEVEL`: Log level. (example: `<log-level>`)
- `KICAD_MCP_LOG_FORMAT`: Log output format, such as console or json. (example: `<log-format>`)
- `KICAD_MCP_ENABLE_EXPERIMENTAL_TOOLS`: Enable unstable helper tools. (example: `<true-or-false>`)
- `KICAD_MCP_IPC_CONNECTION_TIMEOUT`: KiCad IPC timeout in seconds. (example: `<seconds>`)
- `KICAD_MCP_CLI_TIMEOUT`: kicad-cli timeout in seconds. (example: `<seconds>`)
- `KICAD_MCP_MAX_ITEMS_PER_RESPONSE`: Maximum list items returned per response. (example: `<max-items>`)
- `KICAD_MCP_MAX_TEXT_RESPONSE_CHARS`: Maximum text payload length. (example: `<max-characters>`)
Note: Preferred portable install path is stdio via uvx. The README also documents HTTP usage, but the primary MCP config examples use stdio. Optional extras are available for additional capabilities: install the http extra for HTTP transport, freerouting for FreeRouting helpers, simulation for SPICE tools, and vcs for Git checkpoint tools.
Add this MCP server to my current client's config in the correct format for you. If you need secrets or credentials I haven't provided, ASK me — do not invent values or leave raw placeholders. After adding it, tell me how to verify the server is connected.KICAD_MCP_KICAD_CLIPath to kicad-cli used for exports and validationKICAD_MCP_NGSPICE_CLIPath to ngspice used for simulationKICAD_MCP_KICAD_SOCKET_PATHKiCad IPC socket pathKICAD_MCP_KICAD_TOKENKiCad IPC tokenKICAD_MCP_PROJECT_DIRActive KiCad project directoryKICAD_MCP_PROJECT_FILEExplicit .kicad_pro fileKICAD_MCP_PCB_FILEExplicit .kicad_pcb fileKICAD_MCP_SCH_FILEExplicit .kicad_sch fileKICAD_MCP_OUTPUT_DIRDirectory for generated exportsKICAD_MCP_SYMBOL_LIBRARY_DIRKiCad symbol library rootKICAD_MCP_FOOTPRINT_LIBRARY_DIRKiCad footprint library rootKICAD_MCP_TRANSPORTKICAD_MCP_HOSTHTTP bind hostKICAD_MCP_PORTHTTP bind portKICAD_MCP_MOUNT_PATHHTTP mount path for MCPKICAD_MCP_PROFILESelected tool profileKICAD_MCP_LOG_LEVELLogging levelKICAD_MCP_LOG_FORMATLogging format: console or jsonKICAD_MCP_ENABLE_EXPERIMENTAL_TOOLSEnable unstable helpersKICAD_MCP_IPC_CONNECTION_TIMEOUTKiCad IPC timeout in secondsKICAD_MCP_CLI_TIMEOUTkicad-cli timeout in secondsKICAD_MCP_MAX_ITEMS_PER_RESPONSEMaximum list items returnedKICAD_MCP_MAX_TEXT_RESPONSE_CHARSMaximum text payload lengthAI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.