eda mcp
用于EDA(电子设计自动化)工具的MCP服务器。目前支持 KiCad 9.x 39个工具涵盖了整个PCB设计工作流程。
需求
安装
git clone https://github.com/SaeronLab/eda-mcp.git
cd eda-mcp
uv sync
Claude代码配置
添加到您的 .mcp.json:
{
"mcpServers": {
"eda-mcp": {
"type": "stdio",
"command": "uv",
"args": ["--directory", "/path/to/eda-mcp", "run", "eda-mcp"]
}
}
}
工具
核心(6)
| 工具 |
说明 |
kicad.get_session_state |
当前会话状态和功能 |
kicad.create_project |
创建新的KiCad项目 |
kicad.open_project |
打开现有项目 |
kicad.list_projects |
在目录中查找项目 |
kicad.save_project |
保存所有项目文件 |
kicad.help |
工作流程和工具文档 |
示意图(13)
| 工具 |
说明 |
kicad.add_component |
在原理图中添加符号 |
kicad.add_power_symbol |
添加VCC、GND、+3V3等。 |
kicad.set_value |
设置组件值(10k,100nF) |
kicad.set_reference |
更改参考指示符 |
kicad.set_component_field |
设置自定义字段(MPN、供应商) |
kicad.delete_component |
移除组件 |
kicad.move_component |
重新定位组件 |
kicad.add_wire |
用导线连接两点 |
kicad.add_net_label |
添加命名网络标签 |
kicad.add_global_label |
添加交叉表标签 |
kicad.add_no_connect |
标记未使用的引脚 |
kicad.annotate_schematic |
自动分配参考指示符 |
kicad.list_components |
列出所有组件及其详细信息 |
印刷电路板(10)
| 工具 |
说明 |
kicad.create_board_outline |
绘制PCB边界 |
kicad.set_design_rules |
设置最小轨迹/间隙/钻孔 |
kicad.create_net_class |
创建具有特定规则的网络类 |
kicad.route_trace |
布线铜迹线 |
kicad.place_via |
放置通孔 |
kicad.fill_zones |
填充铜质区域 |
kicad.add_text |
添加丝网印刷文本 |
kicad.add_line |
向图层添加线条/形状 |
kicad.design_summary |
董事会统计和健全性检查 |
kicad.list_footprints |
列出PCB上的所有封装 |
出口(7)
| 工具 |
说明 |
kicad.export_netlist |
从原理图导出网表 |
kicad.export_gerbers |
导出Gerber制造文件(DRC门控) |
kicad.export_bom |
出口物料清单 |
kicad.export_pdf |
将原理图/PCB导出为PDF |
kicad.export_svg |
将原理图/PCB导出为SVG |
kicad.run_drc |
设计规则检查 |
kicad.run_erc |
电气规则检查 |
图书馆(3)
| 工具 |
说明 |
kicad.search_symbols |
搜索组件符号 |
kicad.search_footprints |
搜索PCB封装 |
kicad.get_symbol_info |
获取符号引脚和属性 |
建筑
src/eda_mcp/
├── server.py # FastMCP server, tool registration
├── session.py # Session state management
├── common/
│ ├── types.py # ToolResponse, Position
│ └── errors.py # Error hierarchy
└── plugins/
└── kicad/
├── discovery.py # KiCad path detection
├── guardrails.py # Pre-export safety checks
├── worker.py # Async pcbnew worker manager
├── worker_process.py # Persistent pcbnew subprocess
├── sexp/
│ ├── parser.py # S-expression parser
│ └── writer.py # S-expression writer
└── tools/
├── schematic.py # Schematic manipulation via sexp
├── cli.py # kicad-cli exports (Gerber, PDF, DRC)
└── library.py # Symbol/footprint search
三条整合路径:
- S表达式解析器/写入器 --直接操纵
.kicad_sch 具有往返保真度的文件
- 坚持不懈的新员工 -JSON-RPC子流程,使用KiCad的Python API进行PCB操作
- kicad-cli --子流程要求出口、DRC和ERC
发展
uv run pytest tests/ -v # Run all tests
uv run ruff check src/ tests/ # Lint
uv run pyright src/ # Type check
许可证
麻省理工学院