Home / MCP / KiCAD MCP Server

KiCAD MCP Server

Provides 52 MCP tools and real-time KiCAD project state for AI-assisted PCB design workflows.

typescript
Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
    "mcpServers": {
        "kicad": {
            "command": "node",
            "args": [
                "/path/to/KiCAD-MCP-Server/dist/index.js"
            ],
            "env": {
                "PYTHONPATH": "/path/to/kicad/python",
                "LOG_LEVEL": "info"
            }
        }
    }
}

You can use this MCP server to connect an AI assistant to KiCAD, enabling natural language workflows for PCB design. It exposes a rich set of tools that operate on KiCAD projects and a range of read-only resources to inspect the current design state in real time. This enables iterative, AI-guided PCB design with automated project management, board manipulation, routing, schematic work, and exports, while keeping KiCAD and your design data in sync.

How to use

You interact with the KiCAD MCP Server through an MCP client that supports the MCP protocol. Start the local MCP process and point your client at the server so it can issue requests to KiCAD. Use the client to create or open projects, configure board outlines, place components, route nets, run design rule checks, and export fabrication files. You can also query the current project state using the resources capability to inform subsequent steps.

How to install

Prerequisites you need before installing the MCP server are KiCAD 9.0 or higher, Node.js 18 or higher, and Python 3.10 or higher. You should also have the MCP client installed (Claude Desktop, Claude Code, or Cline) to connect to the server.

Linux (Ubuntu/Debian) setup steps:

1. Install KiCAD and KiCAD libraries from the appropriate repository.

2. Install Node.js.

3. Clone the MCP server repository.

4. Install dependencies and build the project.

5. Verify KiCAD Python bindings are importable.

Windows setup steps:

1. Clone the MCP server repository.

2. Run the automated setup script to install prerequisites, build, and diagnose.

3. Follow any on-screen prompts to complete the configuration.

macOS setup steps:

1. Install KiCAD 9.0 for macOS from the KiCAD download page.

2. Install Node.js via a package manager.

3. Clone the MCP server repository and build the project.

Configuration and runtime start

The MCP server is started locally and connected to via an MCP client. The canonical local (stdio) configuration runs the server as a child process and communicates over standard input/output. The explicit runtime command shown for the local config is node with a path to the built server entry.

Notes on configuration files and environment

You can configure the MCP server as a local stdio process by providing the following settings in your client configuration. The environment includes a Python path to KiCAD bindings and a logging level setting.

Troubleshooting

If the server does not appear in your MCP client, verify that the build produced dist/index.js, ensure all configuration paths are absolute, restart the MCP client, and check client logs for errors.

Security and scope

Only the tools and resources exposed by the MCP server are accessible through your AI assistant. Use standard security practices for local development and follow your organizational policies for running external tools or exposing endpoints.

Examples of typical workflows

Create a new KiCAD project, configure board size, place mounting holes, add text annotations, route nets, perform DRC checks, and export Gerber files for fabrication. You can also query the current component list or design rules to guide subsequent steps.

Usage of resources

Resources provide read-only access to the current project state, such as project metadata, board properties, component lists, nets, layers, design rules, and DRC reports. Use these to inform design decisions without modifying the project.

Architecture overview

The server uses a JSON-RPC 2.0 transport over STDIO to communicate with the client and implements the MCP 2025-06-18 protocol. A TypeScript server manages the protocol, while Python interfaces connect to KiCAD via SWIG or IPC backends. A hybrid backend automatically chooses the IPC backend when available and falls back to the SWIG backend.

Available tools

create_project

Initialize a new KiCAD project.

open_project

Load existing KiCAD project files.

save_project

Save the current project state.

get_project_info

Retrieve project metadata.

set_board_size

Configure PCB dimensions.

add_board_outline

Create a board outline (rectangle, circle, polygon).

add_layer

Add a custom layer to the board stack.

set_active_layer

Switch the active working layer.

get_layer_list

List all board layers.

get_board_info

Retrieve board properties.

get_board_2d_view

Generate a board preview image.

add_mounting_hole

Place mounting holes on the board.

add_board_text

Add text annotations to the board.

place_component

Place a component with its footprint.

move_component

Reposition an existing component.

rotate_component

Rotate a component by a given angle.

delete_component

Remove a component from the board.

edit_component

Modify component properties.

get_component_properties

Query details for a specific component.

get_component_list

List all placed components.

place_component_array

Create grids or patterns of components.

align_components

Align multiple components.

duplicate_component

Copy an existing component.

add_net

Create an electrical net.

route_trace

Route copper traces.

add_via

Place vias for layer transitions.

delete_trace

Remove traces.

get_nets_list

List all nets.

create_netclass

Define net class with rules.

add_copper_pour

Create copper zones/pours.

route_differential_pair

Route differential signals.

list_libraries

List available footprint libraries.

search_footprints

Search for footprints.

list_library_footprints

List footprints within a library.

get_footprint_info

Get footprint details.

set_design_rules

Configure DRC parameters.

get_design_rules

Retrieve current DRC rules.

run_drc

Execute design rule checks.

get_drc_violations

Get DRC violations report.

export_gerber

Generate Gerber fabrication files.

export_pdf

Export schematic or board PDFs.

export_svg

Create SVG vector graphics.

export_3d

Generate 3D models (STEP/VRML).

export_bom

Produce bill of materials.

create_schematic

Initialize a new schematic.

load_schematic

Open an existing schematic.

add_schematic_component

Place schematic symbols.

add_schematic_wire

Connect schematic pins with wires.

list_schematic_libraries

List schematic symbol libraries.

export_schematic_pdf

Export schematic as PDF.

check_kicad_ui

Check if KiCAD UI is running.

launch_kicad_ui

Launch KiCAD application.