PCB设计AI辅助工具

KiCad MCP Server是一个通过Model Context Protocol提供AI辅助的PCB设计工具,支持分析、修改、布线、验证和导出KiCad板,无需安装KiCad即可操作。

  • by tylerwagler
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 tylerwagler/KiCad-MCP

使用说明

KiCad MCP服务器

通过AI辅助PCB设计 模型上下文协议。分析、修改、布线、验证和导出KiCad板——所有这些都可以从您的AI助手中完成。

152工具 | 918次测试(684次通过,234次环境门控跳过) | 纯Python,读取时不依赖KiCad

它做什么

此MCP服务器使AI助手(Claude等)可以完全访问KiCad PCB设计工作流程:

  • 打开并分析 未安装KiCad的电路板、原理图和库
  • 放置、移动、旋转、翻转、编辑和替换 具有完全撤消/回滚功能的组件
  • 布线迹线和通孔管理网络和区域,添加铜浇注
  • 运行DRC 并根据JLCPCB/OSHPark/PCBWay规则检查可制造性
  • 出口 Gerber、PDF、SVG、STEP、VRML、BOM和拾取和放置文件
  • 创建项目 以及从头开始的示意图

快速开始

安装

# Requires Python 3.11+
uv sync --all-extras

配置您的AI客户端

添加到您的MCP客户端配置中(例如Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    "kicad-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/KiCad-MCP", "run", "kicad-mcp"]
    }
  }
}

独立运行

uv run kicad-mcp

工具类别

类别 工具 描述
项目 6 打开/创建/保存项目,列出组件,电路板信息
董事会设置 7 电路板尺寸、外形、安装孔、文字、设计规则
放置 8 放置、旋转、翻转、删除、编辑、替换、分组组件
路由 5 布线轨迹、添加/删除通孔、ratsnest分析
网络/区域 7 创建/删除网络、区域、铜浇注、网络类
原理图 11 打开/编辑原理图,添加符号/导线/标签,生成网表
分析 6 网表、层堆叠、板范围、间隙检查
刚果民主共和国 2 设计规则检查与违规细节
出口 7 Gerber、PDF、SVG、STEP、VRML、BOM、拾取和放置
图书馆 6 在已安装的KiCad库中搜索符号/封装
制造商 3 JLCPCB、OSHPark、PCBWay的DRC预设
会话 7 启动/提交/回滚会话、预览移动、撤消更改

建筑

双层工具路由器

并非所有152个工具都被转储到LLM上下文中。相反:

  • 9个直接工具 始终可见(打开项目、启动会话等)
  • 143个布线工具 可通过4个元工具发现: list_tool_categories, get_category_tools, execute_tool, search_tools

这将LLM上下文使用率降低了约70%。

三个后端

  1. S表达式解析器 --纯Python,零依赖。阅读 .kicad_pcb, .kicad_sch, .kicad_mod 文件直接。用于所有读取操作。KiCad确实如此 不 需要安装。
  2. kicad-cli --包裹KiCad的官方CLI(KiCad 8+),用于DRC、Gerber导出、PDF渲染。在Windows/Linux/macOS上自动检测安装路径。
  3. KiCad IPC API --用于KiCad运行时的实时UI同步(KiCad 9+,计划中)。

会话模型(提交前查询)

所有董事会突变都要经过一个安全的交易模型:

start_session → query_move (preview) → apply_move → undo → commit / rollback

AI可以在应用之前预览更改,撤消单个操作,并回滚整个会话。在以下情况下,任何东西都不会接触到磁盘 commit_session.

三支柱MCP设计

遵循完整的MCP规范:

  • 工具 --修改状态的操作(152个工具)
  • 资源 --只读电路板数据(元件列表、网络图、电路板摘要)
  • 提示 --对话模板(DRC故障排除、设计审查、布局指导)

发展

# Install with dev dependencies
uv sync --all-extras

# Run tests
uv run pytest

# Lint and format
uv run ruff check .
uv run ruff format .

# Type check
uv run mypy src/

项目结构

src/kicad_mcp/
├── server.py              # FastMCP server entry point
├── state.py               # Global board state
├── schematic_state.py     # Global schematic state
├── security.py            # Path validation, subprocess guards
├── tools/
│   ├── registry.py        # ToolSpec + TOOL_REGISTRY (single source of truth)
│   ├── router.py          # 4 meta-tools for dynamic discovery
│   ├── board_setup.py     # Board size, outline, text, design rules
│   ├── placement.py       # Component placement, edit, replace, group
│   ├── routing.py         # Traces, vias, ratsnest
│   ├── netzone.py         # Nets, zones, copper pours, net classes
│   ├── schematic.py       # Schematic editing, netlist generation
│   ├── analysis.py        # Board analysis, clearance checks
│   ├── export.py          # Gerber, PDF, SVG, STEP, VRML, BOM
│   ├── drc.py             # Design rule checking
│   ├── library.py         # KiCad library search
│   ├── manufacturer.py    # Manufacturer DRC presets
│   ├── project.py         # Project create/save
│   ├── mutation.py        # Session start/commit/rollback/undo
│   └── direct.py          # Core direct tools (open project, etc.)
├── session/
│   └── manager.py         # SessionManager with undo/rollback
├── backends/
│   └── kicad_cli.py       # kicad-cli wrapper (DRC, export)
├── sexp/
│   ├── parser.py          # Zero-dependency S-expression parser
│   └── document.py        # Document model with round-trip fidelity
├── schema/                # Typed KiCad models (board, schematic, footprint)
├── resources/             # MCP Resources (read-only board state)
├── prompts/               # MCP Prompt templates
└── manufacturers/         # DRC presets (JLCPCB, OSHPark, PCBWay)

需求

  • Python 3.11+
  • KICAD 8+ (可选——仅需要DRC和导出命令;没有它,板读取工作)
  • 紫外线 (推荐)或pip

许可证

GPL-3.0——与KiCad本身相匹配。