使用说明
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%。
三个后端
- S表达式解析器 --纯Python,零依赖。阅读
.kicad_pcb,.kicad_sch,.kicad_mod文件直接。用于所有读取操作。KiCad确实如此 不 需要安装。 - kicad-cli --包裹KiCad的官方CLI(KiCad 8+),用于DRC、Gerber导出、PDF渲染。在Windows/Linux/macOS上自动检测安装路径。
- 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本身相匹配。