返回市场
KiCad-MCP服务器

KiCad-MCP服务器

作者:lamaalrajih329 星标更新:2025-10-18

项目介绍

KiCad MCP 服务器

本指南将帮助您设置用于KiCad的模型上下文协议(MCP)服务器。虽然本指南中的示例经常提到Claude Desktop,但该服务器与任何符合MCP标准的客户端兼容。您可以将其与Claude Desktop、您自己的自定义MCP客户端或任何实现Model Context Protocol的应用程序一起使用。

目录

先决条件

  • macOS、Windows 或 Linux
  • Python 3.10 或更高版本
  • KiCad 9.0 或更高版本
  • uv 0.8.0 或更高版本
  • Claude Desktop(或其他MCP客户端)

安装步骤

1. 设置Python环境

首先,让我们安装依赖项并设置我们的环境:

# 克隆仓库
git clone https://github.com/lamaalrajih/kicad-mcp.git
cd kicad-mcp

# 安装依赖项 – `uv` 将自动创建一个`.venv/` 文件夹
# (在macOS上先安装`uv`: `brew install uv` 或者 `pipx install uv`)
make install

# 可选:激活环境以手动运行命令
source .venv/bin/activate

2. 配置您的环境

创建一个.env文件来自定义服务器查找KiCad项目的路径:

# 复制示例环境文件
cp .env.example .env

# 编辑.env文件
vim .env

.env文件中添加您的自定义项目目录:

# 添加到您的KiCad项目的路径(逗号分隔)
KICAD_SEARCH_PATHS=~/pcb,~/Electronics,~/Projects/KiCad

3. 运行服务器

一旦环境设置完成,就可以运行服务器了:

python main.py

4. 配置MCP客户端

现在,让我们配置Claude Desktop以使用我们的MCP服务器:

  1. 创建或编辑Claude Desktop配置文件:
# 如果不存在,请创建目录
mkdir -p ~/Library/Application\ Support/Claude

# 编辑配置文件
vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. 在配置中添加KiCad MCP服务器:
{
    "mcpServers": {
        "kicad": {
            "command": "/ABSOLUTE/PATH/TO/YOUR/PROJECT/kicad-mcp/.venv/bin/python",
            "args": [
                "/ABSOLUTE/PATH//TO/YOUR/PROJECT/kicad-mcp/main.py"
            ]
        }
    }
}

用实际的项目目录路径替换/ABSOLUTE/PATH/TO/YOUR/PROJECT/kicad-mcp

5. 重启您的MCP客户端

关闭并重新打开您的MCP客户端以加载新的配置。

理解MCP组件

模型上下文协议(MCP)定义了三种主要方式来提供能力:

资源 vs 工具 vs 提示

资源是LLM可以参考的只读数据源:

  • 类似于REST API中的GET端点
  • 提供数据而不进行大量计算
  • 当LLM需要读取信息时使用
  • 通常由客户端应用程序通过编程方式访问
  • 示例:kicad://projects 返回所有KiCad项目的列表

工具是执行操作或计算的功能:

  • 类似于REST API中的POST/PUT端点
  • 可能有副作用(如启动应用程序或生成文件)
  • 当LLM需要在世界中执行操作时使用
  • 通常由LLM直接调用(需用户批准)
  • 示例:open_project() 启动带有特定项目的KiCad

提示是常见交互的可重用模板:

  • 预定义的对话开始或指令
  • 帮助用户表达常见的问题或任务
  • 由用户选择调用(通常从菜单中)
  • 示例:debug_pcb_issues 提示帮助用户解决PCB问题

有关资源 vs 工具 vs 提示的更多信息,请参阅MCP文档

功能亮点

KiCad MCP服务器提供了几个关键功能,每个功能都有详细的文档:

  • 项目管理:列出、检查和打开KiCad项目

    • 示例:"显示我最近的所有KiCad项目" → 按修改日期排序列出所有项目
  • PCB设计分析:获取关于您的PCB设计和原理图的见解

    • 示例:"分析我的温度传感器板的元件密度" → 提供元件间距分析
  • 网表提取:从原理图中提取和分析元件连接

    • 示例:"我的Arduino屏蔽板上的MCU连接了哪些元件?" → 显示所有连接到微控制器的元件
  • 物料清单(BOM)管理:分析和导出物料清单

    • 示例:"为我的智能手表项目生成BOM" → 创建详细的物料清单

    • 设计规则检查(DRC):使用KiCad CLI运行DRC检查,并跟踪随时间的变化

    • 示例:"在我的电源板上运行DRC并与上周比较" → 显示修复违规情况的进度

  • PCB可视化:生成PCB布局的视觉表示

    • 示例:"显示我的音频放大器PCB的缩略图" → 显示电路板的视觉渲染
  • 电路模式识别:自动识别原理图中的常见电路模式

    • 示例:"我在我的物联网设备中使用了哪些电源拓扑?" → 识别降压、升压或线性调节器

更多示例和每个功能的详细信息,请参阅文档中的专用指南。您也可以询问LLM它有哪些可用工具!

自然语言交互

虽然我们的文档经常展示如下示例:

显示我项目的DRC报告 /Users/username/Documents/KiCad/my_project/my_project.kicad_pro

您不需要键入文件的完整路径!LLM可以理解更自然的语言请求。

例如,您可以简单地问:

你能检查一下我的Arduino屏蔽项目是否有任何设计规则违规吗?

或者:

我正在处理温度传感器电路。你能识别它使用了什么模式吗?

LLM会理解您的意图,并从KiCad MCP服务器请求相关信息。如果需要澄清您指的是哪个项目,它会提问。

文档

每个功能的详细文档都在docs/目录下:

配置

KiCad MCP服务器可以通过环境变量或.env文件进行配置:

关键配置选项

环境变量描述示例
KICAD_SEARCH_PATHS要搜索KiCad项目的目录的逗号分隔列表~/pcb,~/Electronics,~/Projects
KICAD_USER_DIR覆盖默认的KiCad用户目录~/Documents/KiCadProjects
KICAD_APP_PATH覆盖默认的KiCad应用程序路径/Applications/KiCad7/KiCad.app

详情请参阅配置指南

开发指南

项目结构

KiCad MCP服务器组织成模块化结构:

kicad-mcp/
├── README.md                       # 项目文档
├── main.py                         # 运行服务器的入口点
├── requirements.txt                # Python依赖项
├── .env.example                    # 示例环境配置
├── kicad_mcp/                      # 主包目录
│   ├── __init__.py
│   ├── server.py                   # MCP服务器设置
│   ├── config.py                   # 配置常量和设置
│   ├── context.py                  # 生命周期管理和共享上下文
│   ├── resources/                  # 资源处理器
│   ├── tools/                      # 工具处理器
│   ├── prompts/                    # 提示模板
│   └── utils/                      # 实用函数
├── docs/                           # 文档
└── tests/                          # 单元测试

添加新功能

要向KiCad MCP服务器添加新功能,请遵循以下步骤:

  1. 确定您的功能类别(资源、工具或提示)
  2. 将您的实现添加到相应的模块
  3. 在对应的注册函数中注册您的功能
  4. 使用开发工具测试您的更改

详情请参阅开发指南

故障排除

如果您遇到问题:

  1. 服务器未出现在MCP客户端中:

    • 检查客户端配置文件中的错误
    • 确保项目路径和Python解释器路径正确
    • 确保Python可以访问mcp
    • 检查是否检测到KiCad安装
  2. 服务器错误:

    • 在开发模式下运行服务器时检查终端输出
    • 检查Claude日志:
      • ~/Library/Logs/Claude/mcp-server-kicad.log(服务器特定日志)
      • ~/Library/Logs/Claude/mcp.log(通用MCP日志)
  3. 工作目录问题:

    • 通过客户端配置启动的服务器的工作目录可能未定义
    • 在配置和.env文件中始终使用绝对路径
    • 对于通过命令行测试的服务器,工作目录将是您运行命令的位置

详情请参阅故障排除指南

如果仍然无法解决问题,请在Github上提交问题。

贡献

想为KiCad MCP服务器做出贡献吗?这里有一些方法可以帮助改进这个项目:

  1. 分叉仓库
  2. 创建功能分支
  3. 添加您的更改
  4. 提交拉取请求

主要贡献领域:

  • 在电路模式识别系统中增加对更多组件模式的支持
  • 改进文档和示例
  • 添加新功能或增强现有功能
  • 修复错误并改进错误处理

详情请参阅贡献指南

未来开发想法

有兴趣贡献吗?这里有一些未来开发的想法:

  1. 3D模型可视化 - 实现可视化PCB的3D模型的工具
  2. PCB审查工具 - 创建设计审查的注释功能
  3. 制造文件生成 - 增加生成Gerber文件和其他制造输出的支持
  4. 组件搜索 - 实现跨KiCad库的组件搜索功能
  5. BOM增强 - 增加供应商集成以获取组件来源和定价
  6. 互动设计检查 - 开发检查设计质量的互动工具
  7. Web界面 - 创建一个简单的Web界面用于配置和监控
  8. 电路分析 - 增加自动化电路分析功能
  9. 测试覆盖率 - 提高代码库的测试覆盖率
  10. 电路模式识别 - 扩展模式数据库,包括更多的组件类型和电路拓扑

许可证

此项目在MIT许可下开源。