mcp服务器kicad
](https://pypi.org/project/mcp-server-kicad/)  
用于KiCad原理图、PCB、符号、封装和项目自动化的MCP服务器。
服务器
| 服务器 | 工具 | 说明 |
|---|
mcp-server-kicad-schematic | 40 | 原理图读/写、ERC分析、分层标签和导出(PDF、SVG、DXF、网表、BOM) |
mcp-server-kicad-pcb | 29 | PCB读/写、DRC分析、自动路由和导出(Gerber、钻孔、3D模型、拾取和放置) |
mcp-server-kicad-symbol | 5 | 符号库浏览、创建、SVG导出和库升级 |
mcp-server-kicad-footprint | 4 | 封装库浏览、SVG导出和库升级 |
mcp-server-kicad-project | 24 | 项目脚手架、层次结构表、层次结构验证、注释和导出 |
安装
pip install mcp-server-kicad
或者直接与 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代码插件
对于Claude Code用户,安装插件以获取MCP服务器配置 将原理图设计技能捆绑在一起:
claude plugin marketplace add ProductOfAmerica/mcp-server-kicad
claude plugin install kicad
该插件自动配置所有五个MCP服务器,并包括技能 教授原理图设计的布局惯例。看 技能/方案设计/SKILL.md 为了 细节。
配置
将服务器添加到您的Claude Desktop或Claude Code MCP配置中。集 cwd 到KiCad项目目录,以便服务器可以自动检测项目文件。
{
"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"
}
}
}
项目路径解析
服务器按以下顺序解析文件路径:
- 自动检测:扫描当前工作目录以查找
.kicad_pro 文件,并从中导出原理图、PCB、符号库和封装库路径。 - 环境变量:
KICAD_SCH_PATH, KICAD_PCB_PATH, KICAD_SYM_LIB, KICAD_FP_LIB,以及 KICAD_OUTPUT_DIR 覆盖自动检测值。 - 刀具参数:每个工具都接受具有最高优先级的显式路径参数。
环境变量
| 变量 | 描述 |
|---|
KICAD_SCH_PATH | 通往 .kicad_sch 原理图文件 |
KICAD_PCB_PATH | 通往 .kicad_pcb PCB文件 |
KICAD_SYM_LIB | 通往 .kicad_sym 符号库文件 |
KICAD_FP_LIB | 通往 .pretty 封装库目录 |
KICAD_OUTPUT_DIR | 导出和报告的输出目录 |
可用工具
原理图工具(40个工具)
阅读工具
| 工具 | 说明 |
|---|
get_schematic_summary | 获取原理图的项目计数 |
list_schematic_components | 在原理图上列出所有组件(符号) |
list_schematic_labels | 在原理图上列出所有网络标签 |
list_schematic_wires | 在原理图上列出所有导线 |
list_schematic_global_labels | 在原理图上列出所有全局标签 |
list_schematic_hierarchical_labels | 列出原理图上的所有层次标签 |
list_schematic_sheets | 列出原理图上的所有层次图块 |
list_schematic_junctions | 在示意图上列出所有连接点 |
list_schematic_no_connects | 在原理图上列出所有无连接标志 |
list_schematic_bus_entries | 在原理图上列出所有总线条目 |
get_symbol_pins | 获取原理图lib_symbols中符号的引脚信息 |
get_pin_positions | 获取已放置组件的绝对引脚位置(考虑旋转/镜像) |
get_net_connections | 获取命名网络的所有连接(多跳BFS线路跟踪) |
list_unconnected_pins | 列出ERC数据中未连接的引脚 |
写入工具
| 工具 | 说明 |
|---|
place_component | 在原理图中放置一个组件 |
remove_component | 按参考指示符删除组件 |
add_wires | 在点之间添加一条或多条导线(在T形连接上自动创建连接) |
add_label | 在某个位置添加网标签 |
add_junctions | 添加一个或多个连接点 |
add_lib_symbol | 将.kicad_sym库中的符号定义加载到原理图中 |
move_component | 将放置的组件移动到新位置 |
set_component_property | 在放置的组件上设置任何属性(值、引用、封装等) |
set_page_size | 设置原理图页面大小 |
add_global_label | 添加一个在所有工作表中可见的全局网络标签 |
add_hierarchical_label | 为图纸间的连接添加层次标签 |
remove_hierarchical_label | 按名称或UUID删除分层标签 |
modify_hierarchical_label | 修改层次标签的文本、形状或位置 |
add_power_symbol | 放置带有自动PWR_FLAG的电源符号(VCC、GND、+3V3等) |
add_text | 向原理图添加文本注释 |
wire_pins_to_net | 将一个或多个引脚连接到命名网络 |
auto_place_decoupling_cap | 自动在IC附近放置去耦电容器 |
connect_pins | 将两个组件引脚连接在一起 |
no_connect_pin | 在未使用的引脚上放置一个无连接标记 |
remove_label | 删除网络标签 |
remove_wire | 删除线段 |
remove_junction | 删除连接点 |
ERC分析
| 工具 | 说明 |
|---|
run_erc | 在示意图(支架)上运行电气规则检查(ERC) project_path 对于层次结构) |
原理图导出工具
| 工具 | 说明 |
|---|
export_schematic | 将原理图导出为PDF、SVG或DXF格式 |
export_netlist | 导出原理图网表 |
export_bom | 将物料清单(BOM)导出为CSV |
PCB工具(29个工具)
阅读工具
| 工具 | 说明 |
|---|
list_pcb_footprints | 列出PCB上的所有封装 |
list_pcb_traces | 列出PCB上的所有迹线 |
list_pcb_nets | 列出PCB上的所有网络 |
list_pcb_zones | 列出PCB上的所有区域 |
list_pcb_layers | 列出PCB上的所有层 |
list_pcb_graphic_items | 列出PCB上的所有图形项目 |
get_board_info | 获取电路板摘要:足迹计数、迹线计数、净计数、厚度 |
get_footprint_pads | 获取PCB上放置的封装的焊盘信息 |
写入工具
| 工具 | 说明 |
|---|
place_footprint | 在PCB上放置一个脚印 |
move_footprint | 将足迹移动到新位置 |
remove_footprint | 通过引用指示符删除封装 |
add_trace | 在两点之间添加轨迹段 |
add_via | 在某个位置添加过孔 |
add_pcb_text | 在PCB上添加文本(丝网印刷、工厂层等) |
add_pcb_line | 在PCB上添加图形线(边缘切割、丝网印刷等) |
add_copper_zone | 创建未填充的铜区 |
fill_zones | 填充电路板上的所有铜质区域 |
set_trace_width | 更改现有痕迹的宽度 |
remove_traces | 删除与筛选器匹配的跟踪段 |
add_thermal_vias | 在封装焊盘下添加热通孔网格 |
set_net_class | 使用设计规则创建或更新网络类 |
remove_dangling_tracks | 检测并删除具有未连接端点的跟踪段 |
DRC分析
| 工具 | 说明 |
|---|
run_drc | 在PCB上运行设计规则检查(DRC) |
PCB导出工具
| 工具 | 说明 |
|---|
export_pcb | 将PCB层导出为PDF、SVG或DXF |
export_gerbers | 导出Gerber文件(所有图层或特定图层列表) |
export_3d | 导出PCB 3D模型(STEP/STL/GLB)或将3D视图渲染为PNG |
export_positions | 导出组件位置文件(拾取和放置) |
export_ipc2581 | 以IPC-2581格式导出PCB,用于制造数据交换 |
autoroute_pcb | 使用Freerouting autorouter自动布线PCB迹线 |
符号工具(5个工具)
| 工具 | 说明 |
|---|
list_lib_symbols | 列出.kicad_sym库文件中的所有符号 |
get_symbol_info | 获取库中符号的详细引脚和属性信息 |
add_symbol | 将新符号添加到.kicad_sym库中 |
export_symbol_svg | 将符号库导出为SVG图像 |
upgrade_symbol_lib | 将符号库升级为当前KiCad格式 |
封装工具(4个工具)
| 工具 | 说明 |
|---|
list_lib_footprints | 列出.prety库目录中的所有足迹 |
get_footprint_info | 获取footprint.kicad_mod文件的焊盘和轮廓详细信息 |
export_footprint_svg | 将足迹导出到SVG |
upgrade_footprint_lib | 将封装库升级为当前KiCad格式 |
项目工具(24个工具)
脚手架
| 工具 | 说明 |
|---|
create_project | 创建KiCad 9项目(.KiCad_pro+.KiCad_pl+.kicat_sch) |
create_schematic | 创建空白原理图文件 |
create_symbol_library | 创建空白符号库文件 |
create_sym_lib_table | 创建sym-lib表文件 |
表单管理
| 工具 | 说明 |
|---|
add_hierarchical_sheet | 在子项中添加具有匹配标签的分层表 |
remove_hierarchical_sheet | 从父级删除分层图纸块 |
modify_hierarchical_sheet | 修改图纸名称、文件、宽度或高度 |
add_sheet_pin | 向现有分层图纸块添加接点 |
remove_sheet_pin | 从层次图块中删除接点 |
move_hierarchical_sheet | 将图纸块移动到新位置(包括接点) |
duplicate_sheet | 复制工作表,用新的UUID复制子文件 |
reorder_sheet_pages | 通过指定所需的UUID顺序重新排序工作表 |
层次结构检查
| 工具 | 说明 |
|---|
is_root_schematic | 检查原理图是根表还是子表 |
list_hierarchy | 从根开始列出完整的工作表层次结构树 |
get_sheet_info | 获取具有引脚/标签匹配状态的图纸详细信息 |
validate_hierarchy | 检查孤立标签/引脚、方向不匹配、重复引用 |
交叉表分析
| 工具 | 说明 |
|---|
trace_hierarchical_net | 通过引脚和标签在层次结构中追踪网络 |
list_cross_sheet_nets | 列出所有跨越板材边界的网 |
get_symbol_instances | 从根原理图中列出符号实例 |
标注
| 工具 | 说明 |
|---|
annotate_schematic | 根据层次结构自动分配引用指示符 |
出口和公用事业
| 工具 | 说明 |
|---|
export_hierarchical_netlist | 导出带有层次结构信息的网表(需要kicad-cli) |
flatten_hierarchy | 将分层原理图平铺到一张纸中 |
run_jobset | 运行KiCad作业集文件 |
get_version | 获取KiCad版本信息 |
系统要求
- Python 3.10+
- KiCad 9.x --基于CLI的工具(ERC、DRC、导出)所需。这
kicad-cli 二进制必须打开 PATH. - 原理图和PCB读/写工具使用 kiutils 用于文件解析,不需要安装KiCad。
调试
使用 MCP检查员 以交互方式测试和调试服务器:
npx @modelcontextprotocol/inspector mcp-server-kicad
贡献
看 贡献.md 用于开发设置和指南。
许可证
麻省理工学院