В LTSpice последней версии 26.1.1 добавили MCP (Model Context Protocol) сервер. Теперь ИИ-ассистенты могут напрямую работать c моделью, самостоятельно запускать симуляции, анализировать результаты и вносить изменения.
 
Попробовал этот MCP, даю отчет, что он может:

LTspice MCP — что реально можно делать​

Технически это ltspice-mcp-bridge: stdio-MCP-сервер (ltspice-bridge 1.0, 18 инструментов), который превращает LTspice в управляемый извне вычислитель. Два режима работы: привязка к уже открытому GUI (работает в твоём окне, видно пользователю) и headless-инстанс (скрытый, приватный, умирает вместе с сессией — изоляция от экрана). Плюс встроенный оффлайн-справочник LTspice (14 документов, те же тексты как ресурсы ltspice-ref:///).
Ниже — по слоям, от «открыть файл» до инженерных метрик.

1. Слой документов и сессии​

ИнструментВозможность
statusСписок живых инстансов: pid, порт, режим (gui/headless), какие документы открыты, к какому привязан текущий сеанс
attachПривязка к конкретному pid или к самому свежему инстансу. Привязка заменяет backend — набор доступных инструментов обновляется
start_headlessСвой скрытый LTspice под конкретную задачу; не переключается на пользовательский GUI
open_design.asc или нетлист (.net .cir .lib .sub .sp), делает документ активным, сообщает already_open и предупреждения загрузки
list_open_designs, get_active_design_pathИнвентаризация открытого, выбор цели для следующих вызовов
get_design_content / set_design_contentЧтение и полная замена текста схемы/нетлиста: так программно меняются директивы, номиналы, модели, добавляются .meas/.step/.four
get_schematic_netlistГенерация SPICE-нетлиста из схемы с кодом ошибки и диагностикой — единственный способ увидеть, что LTspice реально посчитает
bring_to_frontВывести окно и нужный документ на передний план (показать пользователю результат/график)

2. Слой запуска: какие анализы доступны​

start_simulation запускает то, что записано в документе — то есть доступен весь набор директив LTspice, а MCP служит «руками»:
  • .tran — переходные процессы: пуск/остановка, переходная характеристика, пульсации, токи в импульсных схемах, клиппинг, время установления.
  • .ac — АЧХ и ФЧХ, входной/выходной импеданс, PSRR/CMRR, устойчивость (запас по фазе и усилению).
  • .dc — передаточные функции, вольт-амперные характеристики, температурные/нагрузочные свипы.
  • .noise — спектральная плотность шума, интегральный шум, вклад отдельных элементов.
  • .tf — передаточная функция, входное и выходное сопротивление «одним числом».
  • .op — рабочая точка (результат в .op.raw, читается raw-инструментами).
  • .four — гармонический анализ: таблица гармоник 2…N и коэффициенты искажений.
  • .fra — частотный отклик; в 26.1.2 к его результатам добавлен THD+N.
  • .step — свипы по параметру/номиналу/температуре/модели, в том числе статистические (Монте-Карло через mc()), а затем чтение нужных шагов по индексам.
  • .meas — измерения по результатам; их итоги складываются в SQLite-базу рядом с результатами.
  • .options, .temp, .param, .include, .lib — режимы решателя, температура, параметризация, подключение моделей.

3. Слой извлечения результатов — три независимых канала​

  1. Лог (get_spice_log): ошибки решателя, время счёта, таблицы .four, отчёт .meas, предупреждения моделей. Читается и для готового .log по пути.
  2. Бинарные результаты (get_raw_info → read_raw_waveforms / export_raw_waveforms): сначала узнаёшь точные имена сигналов, число точек, точность (single/double), число .step-шагов; потом либо читаешь окно данных в ответ (с защитой max_values, по умолчанию 10 000 значений — при превышении отказ с values_required, а не молчаливая обрезка), либо выгружаешь весь .raw в SQLite (таблицы run, steps, step_params, signals, samples; строка = точка, колонка = сигнал). Для AC доступны cartesian и polar (дБ и градусы).
  3. База измерений (<name>.db от .meas): таблицы Parameters/Steps/Measurements/Results — при .step-свипе это готовый «длинный» датасет «параметр → метрика», который читается обычным SQL/sqlite3 и не требует парсинга текста лога.
Эти три канала и есть причина, по которой MCP полезнее скриншотов плоттера: числа попадают в код, где их можно сравнить, пересчитать и нарисовать.

4. Что из этого считается на практике (общие классы задач)​

Класс схемыЧто даёт MCP
Аудио/линейный усилительTHD по .four (и THD+N по .fra), гармоники по узлам тракта, АЧХ/ФЧХ, полоса −3 дБ, скорость нарастания, время установления, выходное сопротивление, клиппинг, ток покоя
Импульсный преобразовательКПД ( V·I по входу/выходу), размах пульсаций, токи в катушке/ключе, тепловой режим (V·I на элементах), устойчивость по .ac, реакция на скачок нагрузки, время выхода на режим
Фильтр (активный/пассивный)АЧХ/ФЧХ, частота среза, крутизна, групповое время, чувствительность к допускам через .step, сравнение топологий
Источник питания/опорыPSRR, выходной импеданс, шум по .noise, старт, поведение при перегрузке
Каскад/транзисторРабочая точка, коэффициент усиления, входной/выходной импеданс, температурный дрейф через .step temp
Сравнение вариантовПакетный прогон многих файлов одним скриптом: открыть → симулировать → выгрузить → сводная таблица метрик
Чувствительность/разброс.step param + .meas + SQLite = гистограмма метрики по допускам, «худший случай», доля брака

5. Слой знаний и отладки​

list_ltspice_reference_docs / get_ltspice_reference — 14 официальных документов: синтаксис элементов, модели устройств, все dot-команды, схема .asc, .meas (AC/шум) с примерами, схема .meas-базы, просмотрщик волн, горячие клавиши, меню, quickstart, FAQ и TROUBLESHOOTING (сходимость, опции решателя). Инструмент намеренно требует читать их до ответа, а не сочинять синтаксис по памяти — это снимает целый класс ошибок «директива написана неверно, поэтому лог пустой».

6. Границы: чего MCP не делает​

  • Нет «умного» редактирования: только чтение текста и полная замена — точечная правка номинала идёт через разбор/перезапись содержимого.
  • Нет запуска директивы «на лету»: сначала правишь документ, потом запускаешь; набор анализов = набор директив в файле.
  • Нет управления просмотрщиком волн: нельзя добавить трейс, поставить курсоры, экспортировать картинку плоттера — только bring_to_front (окно на экран).
  • Нет готового парсера .four/.meas: это либо текст лога, либо SQLite (.db), либо свой расчёт из .raw.
  • Нет обрезки данных «на лету»: read_raw_waveforms отказывает при превышении лимита, а не урезает молча; для больших наборов — только экспорт в SQLite.
  • Ограничения LTspice, а не бриджа: Total Harmonic Distortion: 0.000000% означает «ниже шумового порога», а не ноль; гармоники, лежащие на уровне численного шума, измерять бессмысленно; смешанные тоны требуют окна, кратного периодам всех тонов, иначе утечка спектра выглядит как искажения.

7. Два способа исполнения, которые стоит держать в голове​

  • GUI через бридж — когда нужен видимый пользователю прогон, правка открытого документа, проверка «как в редакторе».
  • Пакетный LTspice.exe -b -run <net>.log — когда нужны только числа: headless, многопоточно, лог и .raw рядом с нетлистом; крупные прогоны считаются за секунды-десятки секунд. Бридж и batch взаимозаменяемы по результату, но batch не зависит от состояния GUI.
Типовая цепочка в общем виде: open_design → get_design_content (какие директивы уже есть) → при необходимости set_design_content (добавить .four/.meas/.step) → get_schematic_netlist (проверить, что реально уйдёт в счёт) → start_simulation → is_simulation_running (опрос) → get_spice_log + get_raw_info → export_raw_waveforms в SQLite → расчёт метрик и графики в коде → bring_to_front, если результат надо показать.
 
Последнее редактирование:
Но, делает все это медленно. Руками на порядок быстрее. На прогон для вычисления Кг и генерацию отчета, что умеет MCP LTspice ушло примерно 4М токенов на 8.5 рублей на Deepseek V4.1 flash 1017.
 
делает все это медленно. Руками на порядок быстрее
Зато можно поручать задачи вроде "минимизируй отклонение АЧХ от заданной, используя не больше, чем столько-то резисторов E24 1% и столько-то конденсаторов E6 5%". Руками такое делать неудобно.
 
Назад
Сверху Снизу