EDA工具服务器

用于电子设计自动化(EDA)工具的服务器,支持KiCad 9.x,提供39种工具覆盖完整的PCB设计工作流程。

  • by SaeronLab
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 SaeronLab/eda-mcp

使用说明

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

许可证

麻省理工学院