KiCad MCP

MCP MCP Servers Open Source

MCP-сервер для KiCad EDA: AI-агент управляет PCB-проектами, анализирует схемы, извлекает нетлисты, генерирует BOM и запускает DRC-проверку. AI-ассистент для проектирования электронных плат.

v0.1.0
01.04.2025
Добавлен 06.07.2026 · Обновлён 06.07.2026 · MCP Servers
Установка
# Требуется: KiCad 8.x

# Установка:
pip install kicad-mcp
# или: uvx kicad-mcp

# Claude Desktop — claude_desktop_config.json:
{ "mcpServers": { "kicad": { "command": "uvx", "args": ["kicad-mcp"] } } }

# Claude Code (CLI):
claude mcp add kicad -- uvx kicad-mcp

# OpenCode — ~/.config/opencode/opencode.json:
{ "mcp": { "kicad": { "type": "local", "command": ["uvx", "kicad-mcp"] } } }
переведено ИИ

Сервер KiCad MCP

Это руководство поможет вам настроить сервер Model Context Protocol (MCP) для KiCad. Хотя примеры в этом руководстве часто ссылаются на 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/`
# (Сначала установите `uv`: `brew install uv` в macOS или `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": "/АБСОЛЮТНЫЙ/ПУТЬ/К/ВАШЕМУ/ПРОЕКТУ/kicad-mcp/.venv/bin/python",
            "args": [
                "/АБСОЛЮТНЫЙ/ПУТЬ/К/ВАШЕМУ/ПРОЕКТУ/kicad-mcp/main.py"
            ]
        }
    }
}

Замените /АБСОЛЮТНЫЙ/ПУТЬ/К/ВАШЕМУ/ПРОЕКТУ/kicad-mcp на реальный путь к каталогу вашего проекта.

5. Перезапуск вашего MCP-клиента

Закройте и снова откройте ваш MCP-клиент, чтобы загрузить новую конфигурацию.

Понимание компонентов MCP

Model Context Protocol (MCP) определяет три основных способа предоставления возможностей:

Ресурсы vs Инструменты vs Промпты

Ресурсы — это доступные только для чтения источники данных, на которые могут ссылаться LLM: - Аналогичны GET-эндпоинтам в REST API - Предоставляют данные без выполнения значительных вычислений - Используются, когда LLM нужно прочитать информацию - Обычно доступны программно через клиентское приложение - Пример: kicad://projects возвращает список всех проектов KiCad

Инструменты — это функции, выполняющие действия или вычисления: - Аналогичны POST/PUT-эндпоинтам в REST API - Могут иметь побочные эффекты (например, открывать приложения или генерировать файлы) - Используются, когда LLM нужно выполнять действия в мире - Обычно вызываются напрямую LLM (с одобрения пользователя) - Пример: open_project() запускает KiCad с определенным проектом

Промпты — это повторно используемые шаблоны для распространенных взаимодействий: - Предопределенные темы для начала разговора или инструкции - Помогают пользователям формулировать распространенные вопросы или задачи - Вызываются по выбору пользователя (обычно из меню) - Пример: Промпт debug_pcb_issues помогает пользователям устранять проблемы с печатными платами

Дополнительную информацию о ресурсах vs инструментах vs промптах читайте в документации MCP.

Основные возможности

Сервер KiCad MCP предоставляет несколько ключевых возможностей, каждая из которых имеет подробную документацию:

  • Управление проектами: Список, просмотр и открытие проектов KiCad
  • Пример: «Покажи мне все мои последние проекты KiCad» → Выводит список всех проектов, отсортированных по дате изменения

  • Анализ проекта печатной платы: Получение информации о ваших проектах печатных плат и схемах

  • Пример: «Проанализируй плотность компонентов на плате моего датчика температуры» → Предоставляет анализ расстояний между компонентами

  • Извлечение списка соединений: Извлечение и анализ соединений компонентов из схем

  • Пример: «Какие компоненты подключены к МК в моем щите Arduino?» → Показывает все соединения с микроконтроллером

  • Управление ведомостью материалов (BOM): Анализ и экспорт спецификаций

  • Пример: «Сгенерируй BOM для проекта моих умных часов» → Создает детальную ведомость материалов

  • Проверка правил проектирования: Запуск проверок DRC с использованием CLI KiCad и отслеживание прогресса во времени

  • Пример: «Запусти DRC на плате моего источника питания и сравни с прошлой неделей» → Показывает прогресс в исправлении нарушений

  • Визуализация печатной платы: Генерация визуальных представлений ваших макетов печатных плат

  • Пример: «Покажи мне миниатюру моей печатной платы аудиоусилителя» → Отображает визуальную визуализацию платы

  • Распознавание электрических схем: Автоматическая идентификация распространенных схемных решений в ваших схемах

  • Пример: «Какие топологии источников питания я использую в своем IoT-устройстве?» → Определяет импульсные (buck, boost) или линейные стабилизаторы

Больше примеров и подробностей о каждой возможности см. в специальных руководствах в документации. Вы также можете спросить у 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:
  2. Проверьте файл конфигурации клиента на наличие ошибок
  3. Убедитесь, что путь к проекту и интерпретатору Python указаны верно
  4. Убедитесь, что Python имеет доступ к пакету mcp
  5. Проверьте, обнаружена ли ваша установка KiCad

  6. Ошибки сервера:

  7. Проверьте вывод терминала при запуске сервера в режиме разработки
  8. Проверьте журналы Claude по адресам:

    • ~/Library/Logs/Claude/mcp-server-kicad.log (журналы конкретного сервера)
    • ~/Library/Logs/Claude/mcp.log (общие журналы MCP)
  9. Проблемы с рабочей директорией:

  10. Рабочая директория для серверов, запущенных через конфигурации клиентов, может быть не определена
  11. Всегда используйте абсолютные пути в файлах конфигурации и .env
  12. Для тестирования серверов через командную строку рабочей директорией будет та, из которой вы запускаете команду

Для получения дополнительной информации см. Руководство по устранению неполадок.

Если вам всё ещё не удаётся устранить проблему, пожалуйста, создайте проблему на Github.

Участие в разработке

Хотите внести свой вклад в сервер KiCad MCP? Вот как вы можете помочь улучшить этот проект:

  1. Сделайте форк репозитория
  2. Создайте ветку для разработки функции
  3. Добавьте свои изменения
  4. Отправьте запрос на слияние (pull request)

Ключевые области для участия: - Добавление поддержки для большего количества паттернов компонентов в системе распознавания схем - Улучшение документации и примеров - Добавление новых функций или улучшение существующих - Исправление ошибок и улучшение обработки ошибок

Для получения подробных руководств по участию см. CONTRIBUTING.md.

Идеи для будущей разработки

Интересуетесь участием? Вот некоторые идеи для будущей разработки:

  1. Визуализация 3D-моделей — Реализация инструментов для визуализации 3D-моделей печатных плат
  2. Инструменты проверки печатных плат — Создание функций аннотирования для обзоров дизайна
  3. Генерация файлов для производства — Добавление поддержки генерации файлов Gerber и других выходных данных для производства
  4. Поиск компонентов — Реализация функции поиска компонентов в библиотеках KiCad
  5. Улучшение BOM — Добавление интеграции с поставщиками для закупки компонентов и цен
  6. Интерактивные проверки дизайна — Разработка интерактивных инструментов для проверки качества дизайна
  7. Веб-интерфейс — Создание простого веб-интерфейса для конфигурации и мониторинга
  8. Анализ схем — Добавление функций автоматического анализа схем
  9. Покрытие тестами — Улучшение покрытия тестами по всему кодовую базу
  10. Распознавание паттернов схем — Расширение базы данных паттернов с добавлением большего количества типов компонентов и топологий схем

Лицензия

Этот проект является открытым и распространяется под лицензией MIT.

Комментарии
Войдите, чтобы оставить комментарий