mcp-server-kicad
MCP servers for KiCad schematic, PCB, symbol, footprint, and project automation, enabling AI-assisted electronic design via tools for read/write, analysis, and exports.
README
mcp-server-kicad
MCP servers for KiCad schematic, PCB, symbol, footprint, and project automation.
Servers
| Server | Tools | Description |
|---|---|---|
mcp-server-kicad-schematic |
40 | Schematic read/write, ERC analysis, hierarchical labels, and exports (PDF, SVG, DXF, netlist, BOM) |
mcp-server-kicad-pcb |
29 | PCB read/write, DRC analysis, autorouting, and exports (Gerber, drill, 3D models, pick-and-place) |
mcp-server-kicad-symbol |
5 | Symbol library browsing, creation, SVG export, and library upgrade |
mcp-server-kicad-footprint |
4 | Footprint library browsing, SVG export, and library upgrade |
mcp-server-kicad-project |
24 | Project scaffolding, hierarchical sheets, hierarchy validation, annotation, and exports |
Installation
pip install mcp-server-kicad
Or run directly with uvx:
uvx --from mcp-server-kicad mcp-server-kicad-schematic
uvx --from mcp-server-kicad mcp-server-kicad-pcb
uvx --from mcp-server-kicad mcp-server-kicad-symbol
uvx --from mcp-server-kicad mcp-server-kicad-footprint
uvx --from mcp-server-kicad mcp-server-kicad-project
Claude Code Plugin
For Claude Code users, install the plugin to get MCP server configuration and schematic design skills bundled together:
claude plugin marketplace add ProductOfAmerica/mcp-server-kicad
claude plugin install kicad
The plugin automatically configures all five MCP servers and includes skills that teach layout conventions for schematic design. See skills/schematic-design/SKILL.md for details.
Configuration
Add the servers to your Claude Desktop or Claude Code MCP config. Set cwd to your KiCad project directory so the servers can auto-detect project files.
{
"mcpServers": {
"kicad-schematic": {
"command": "uvx",
"args": ["--from", "mcp-server-kicad", "mcp-server-kicad-schematic"],
"cwd": "/path/to/your/kicad/project"
},
"kicad-pcb": {
"command": "uvx",
"args": ["--from", "mcp-server-kicad", "mcp-server-kicad-pcb"],
"cwd": "/path/to/your/kicad/project"
},
"kicad-symbol": {
"command": "uvx",
"args": ["--from", "mcp-server-kicad", "mcp-server-kicad-symbol"],
"cwd": "/path/to/your/kicad/project"
},
"kicad-footprint": {
"command": "uvx",
"args": ["--from", "mcp-server-kicad", "mcp-server-kicad-footprint"],
"cwd": "/path/to/your/kicad/project"
},
"kicad-project": {
"command": "uvx",
"args": ["--from", "mcp-server-kicad", "mcp-server-kicad-project"],
"cwd": "/path/to/your/kicad/project"
}
}
}
Project Path Resolution
The servers resolve file paths in this order:
- Auto-detect: Scans the current working directory for a
.kicad_profile and derives schematic, PCB, symbol library, and footprint library paths from it. - Environment variables:
KICAD_SCH_PATH,KICAD_PCB_PATH,KICAD_SYM_LIB,KICAD_FP_LIB, andKICAD_OUTPUT_DIRoverride auto-detected values. - Tool parameters: Every tool accepts an explicit path parameter that takes highest priority.
Environment Variables
| Variable | Description |
|---|---|
KICAD_SCH_PATH |
Path to .kicad_sch schematic file |
KICAD_PCB_PATH |
Path to .kicad_pcb PCB file |
KICAD_SYM_LIB |
Path to .kicad_sym symbol library file |
KICAD_FP_LIB |
Path to .pretty footprint library directory |
KICAD_OUTPUT_DIR |
Output directory for exports and reports |
Available Tools
Schematic Tools (40 tools)
Read Tools
| Tool | Description |
|---|---|
get_schematic_summary |
Get item counts for a schematic sheet |
list_schematic_components |
List all components (symbols) on a schematic sheet |
list_schematic_labels |
List all net labels on a schematic sheet |
list_schematic_wires |
List all wires on a schematic sheet |
list_schematic_global_labels |
List all global labels on a schematic sheet |
list_schematic_hierarchical_labels |
List all hierarchical labels on a schematic sheet |
list_schematic_sheets |
List all hierarchical sheet blocks on a schematic sheet |
list_schematic_junctions |
List all junctions on a schematic sheet |
list_schematic_no_connects |
List all no-connect flags on a schematic sheet |
list_schematic_bus_entries |
List all bus entries on a schematic sheet |
get_symbol_pins |
Get pin info for a symbol in the schematic's lib_symbols |
get_pin_positions |
Get absolute pin positions for a placed component (accounts for rotation/mirror) |
get_net_connections |
Get all connections for a named net (multi-hop BFS wire tracing) |
list_unconnected_pins |
List unconnected pins from ERC data |
Write Tools
| Tool | Description |
|---|---|
place_component |
Place a component in the schematic |
remove_component |
Remove a component by reference designator |
add_wires |
Add one or more wires between points (auto-creates junctions on T-connections) |
add_label |
Add a net label at a position |
add_junctions |
Add one or more junction dots |
add_lib_symbol |
Load a symbol definition from a .kicad_sym library into the schematic |
move_component |
Move a placed component to a new position |
set_component_property |
Set any property (Value, Reference, Footprint, etc.) on a placed component |
set_page_size |
Set the schematic page size |
add_global_label |
Add a global net label visible across all sheets |
add_hierarchical_label |
Add a hierarchical label for sheet-to-sheet connections |
remove_hierarchical_label |
Remove a hierarchical label by name or UUID |
modify_hierarchical_label |
Modify text, shape, or position of a hierarchical label |
add_power_symbol |
Place a power symbol (VCC, GND, +3V3, etc.) with auto PWR_FLAG |
add_text |
Add a text annotation to the schematic |
wire_pins_to_net |
Wire one or more pins to a named net |
auto_place_decoupling_cap |
Automatically place a decoupling capacitor near an IC |
connect_pins |
Wire two component pins together |
no_connect_pin |
Place a no-connect flag on an unused pin |
remove_label |
Remove a net label |
remove_wire |
Remove a wire segment |
remove_junction |
Remove a junction dot |
ERC Analysis
| Tool | Description |
|---|---|
run_erc |
Run Electrical Rules Check (ERC) on a schematic (supports project_path for hierarchy) |
Schematic Export Tools
| Tool | Description |
|---|---|
export_schematic |
Export schematic to PDF, SVG, or DXF format |
export_netlist |
Export schematic netlist |
export_bom |
Export Bill of Materials (BOM) as CSV |
PCB Tools (29 tools)
Read Tools
| Tool | Description |
|---|---|
list_pcb_footprints |
List all footprints on the PCB |
list_pcb_traces |
List all traces on the PCB |
list_pcb_nets |
List all nets on the PCB |
list_pcb_zones |
List all zones on the PCB |
list_pcb_layers |
List all layers on the PCB |
list_pcb_graphic_items |
List all graphic items on the PCB |
get_board_info |
Get board summary: footprint count, trace count, net count, thickness |
get_footprint_pads |
Get pad info for a placed footprint on the PCB |
Write Tools
| Tool | Description |
|---|---|
place_footprint |
Place a footprint on the PCB |
move_footprint |
Move a footprint to a new position |
remove_footprint |
Remove a footprint by reference designator |
add_trace |
Add a trace segment between two points |
add_via |
Add a via at a position |
add_pcb_text |
Add text to the PCB (silkscreen, fab layer, etc.) |
add_pcb_line |
Add a graphic line to the PCB (edge cuts, silkscreen, etc.) |
add_copper_zone |
Create an unfilled copper zone |
fill_zones |
Fill all copper zones on the board |
set_trace_width |
Change the width of existing traces |
remove_traces |
Remove trace segments matching filters |
add_thermal_vias |
Add a grid of thermal vias under a footprint pad |
set_net_class |
Create or update a net class with design rules |
remove_dangling_tracks |
Detect and remove trace segments with unconnected endpoints |
DRC Analysis
| Tool | Description |
|---|---|
run_drc |
Run Design Rules Check (DRC) on a PCB |
PCB Export Tools
| Tool | Description |
|---|---|
export_pcb |
Export PCB layers to PDF, SVG, or DXF |
export_gerbers |
Export Gerber files (all layers or specific layer list) |
export_3d |
Export PCB 3D model (STEP/STL/GLB) or render 3D view to PNG |
export_positions |
Export component position file (pick and place) |
export_ipc2581 |
Export PCB in IPC-2581 format for manufacturing data exchange |
autoroute_pcb |
Autoroute PCB traces using the Freerouting autorouter |
Symbol Tools (5 tools)
| Tool | Description |
|---|---|
list_lib_symbols |
List all symbols in a .kicad_sym library file |
get_symbol_info |
Get detailed pin and property info for a symbol in a library |
add_symbol |
Add a new symbol to a .kicad_sym library |
export_symbol_svg |
Export symbol library to SVG images |
upgrade_symbol_lib |
Upgrade a symbol library to current KiCad format |
Footprint Tools (4 tools)
| Tool | Description |
|---|---|
list_lib_footprints |
List all footprints in a .pretty library directory |
get_footprint_info |
Get pad and outline details for a footprint .kicad_mod file |
export_footprint_svg |
Export footprint to SVG |
upgrade_footprint_lib |
Upgrade a footprint library to current KiCad format |
Project Tools (24 tools)
Scaffolding
| Tool | Description |
|---|---|
create_project |
Create a KiCad 9 project (.kicad_pro + .kicad_prl + .kicad_sch) |
create_schematic |
Create a blank schematic file |
create_symbol_library |
Create a blank symbol library file |
create_sym_lib_table |
Create a sym-lib-table file |
Sheet Management
| Tool | Description |
|---|---|
add_hierarchical_sheet |
Add a hierarchical sheet with matching labels in the child |
remove_hierarchical_sheet |
Remove a hierarchical sheet block from a parent |
modify_hierarchical_sheet |
Modify sheet name, file, width, or height |
add_sheet_pin |
Add a pin to an existing hierarchical sheet block |
remove_sheet_pin |
Remove a pin from a hierarchical sheet block |
move_hierarchical_sheet |
Move a sheet block to a new position (including pins) |
duplicate_sheet |
Duplicate a sheet, copying the child file with new UUIDs |
reorder_sheet_pages |
Reorder sheets by specifying desired UUID order |
Hierarchy Inspection
| Tool | Description |
|---|---|
is_root_schematic |
Check if a schematic is the root or a sub-sheet |
list_hierarchy |
List the full sheet hierarchy tree from root |
get_sheet_info |
Get sheet details with pin/label matching status |
validate_hierarchy |
Check for orphaned labels/pins, direction mismatches, duplicate refs |
Cross-Sheet Analysis
| Tool | Description |
|---|---|
trace_hierarchical_net |
Trace a net across the hierarchy through pins and labels |
list_cross_sheet_nets |
List all nets crossing sheet boundaries |
get_symbol_instances |
List symbol instances from root schematic |
Annotation
| Tool | Description |
|---|---|
annotate_schematic |
Auto-assign reference designators respecting hierarchy |
Export & Utilities
| Tool | Description |
|---|---|
export_hierarchical_netlist |
Export netlist with hierarchy info (requires kicad-cli) |
flatten_hierarchy |
Flatten a hierarchical schematic into a single sheet |
run_jobset |
Run a KiCad jobset file |
get_version |
Get KiCad version information |
System Requirements
- Python 3.10+
- KiCad 9.x -- required for CLI-based tools (ERC, DRC, exports). The
kicad-clibinary must be onPATH. - The schematic and PCB read/write tools use kiutils for file parsing and do not require a KiCad installation.
Debugging
Use the MCP Inspector to test and debug the servers interactively:
npx @modelcontextprotocol/inspector mcp-server-kicad
Contributing
See CONTRIBUTING.md for development setup and guidelines.
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。