Skip to main content
Glama
ossenna-hq

ltspice-mcp

by ossenna-hq

Происхождение репозитория: этот публичный интеграционный форк основан на теге v0.5.0 (коммит 4dc456000e1a436ef37a585c23ab35954a8caf04e) вышестоящего репозитория cognitohazard/ltspice-mcp. Дополнения в этой ветке содержат примеры развёртывания и документацию, не зависящие от способа установки. Исходный код вышестоящего сервера не изменялся.

ltspice-mcp

В разработке. Основная функциональность работает, но возможны шероховатости и критические изменения.

MCP-сервер, который подключает LLM-ассистентов (Claude и любые другие MCP-клиенты) к реальному схемотехническому моделированию: LTspice и ngspice, а также прямое редактирование LTspice-схем .asc. Результаты моделирования возвращаются в виде структурированных чисел — частоты среза, перерегулирование, запас по фазе, время нарастания и малосигнальные параметры рабочей точки для каждого прибора (gm, gds, vth, …), считываемые по имени, — так что ассистент может проектировать, проверять и итерировать схемы в тех же файлах, которые вы открываете в LTspice, без ручного разбора raw-файлов. Построено на spicelib.

Быстрый старт

В Claude Code установите плагин:

/plugin marketplace add cognitohazard/ltspice-mcp
/plugin install ltspice-mcp

Вам также понадобится LTspice или ngspice на хосте (автоматически определяются в Windows, Linux и macOS; в WSL укажите путь к LTspice явно — заметки по WSL). Редактирование схем работает и без симулятора. Требуется uv; сам сервер загружается из PyPI при первом использовании.

Установка вручную (любой MCP-клиент)

Установите сервер, затем укажите его вашему клиенту:

uv tool install ltspice-mcp     # or: pip install ltspice-mcp / pipx install ltspice-mcp

Claude Code — одна команда (уберите -s project, чтобы установить глобально):

claude mcp add -s project ltspice -- ltspice-mcp

Другие клиентыClaude Desktop, Cursor, Windsurf, Gemini CLI, Continue, Cline, Zed и другие — добавьте этот блок mcpServers в конфигурационный файл MCP вашего клиента (каждый клиент документирует свой путь):

{
  "mcpServers": {
    "ltspice": { "command": "ltspice-mcp", "args": [] }
  }
}

Требуется Python 3.11+. Проверьте с помощью ltspice-mcp --help. Тот же сервер также публикуется под двумя псевдонимами — circuit-mcp и ngspice-mcp — так что uvx circuit-mcp / uvx ngspice-mcp являются полноценными заменами uvx ltspice-mcp, если одно из этих имён вам удобнее.

Веб-клиентам (claude.ai, ChatGPT) нужен мост stdio→HTTP, например mcp-proxy — запускайте этот сервер только в полностью контролируемой сети, поскольку он записывает файлы и запускает процессы внутри allowed_paths.

Также доступно расширение для Claude Desktop: соберите .mcpb в packaging/mcpb/ и перетащите его на Claude Desktop для установки в один клик с нативным выбором папки для каталога схем. Как и плагин, оно оборачивает PyPI-пакет и требует uv и симулятор на хосте (LTspice или ngspice не входят в комплект).

Related MCP server: ltspice-mcp

Использование

После подключения вы можете просить о работе со схемами на обычном языке. Ассистент проектирует схему и решает, что измерять; сервер запускает симулятор, разбирает бинарный вывод и возвращает числа. Он сообщает, что дал запуск, включая предупреждения самого симулятора, и оставляет решение о том, хорош ли результат, вам и ассистенту.

«Сместите этот NMOS-каскад с общим истоком в насыщение при заданном токе стока и сообщите gm/ID.»

Ассистент записывает нетлист, решает рабочую точку в LTspice и считывает рабочую точку прибора по имени — ток стока, gm, gds, VDS против VDSAT, чтобы подтвердить насыщение, и gm/ID, по которому подбирают размеры аналоговые проектировщики. Если смещение неверное, он подправляет опорное напряжение затвора или W/L и запускает снова — пара секунд на проход.

Другие запросы, которые работают так же:

  • «Каковы перерегулирование и время установления переходной характеристики этого стабилизатора?» — выполняет анализ переходных процессов и измеряет оба параметра по форме сигнала, а также время нарастания, частоту колебаний и установившееся значение.

  • «Прогоните 200 прогонов Монте-Карло с резисторами с допуском 5% и скажите разброс выхода.» — возмущает компоненты в каждом прогоне, моделирует пакет и сообщает среднее, сигму и наихудшие значения для каждого измерения.

  • «Просканируйте нагрузку от 100 Ом до 10 кОм и найдите, где падает КПД.» — параметрическое сканирование с результатами для каждого запуска.

  • «Охарактеризуйте этот NMOS: gm и gm/ID от VGS.» — записывает .dc Vgs-деку с .save @m1[gm] @m1[id], запускает её в ngspice и возвращает таблицу gm/ID одним CSV (без .control-блока и без разбора raw-файлов).

  • «Найдите N-канальный силовой MOSFET для нижнего ключа и измерьте падение во включённом состоянии.» — ищет компонент в загруженных библиотеках (find_model), помещает его в переходный анализ с импульсным затвором и считывает Vds(вкл) и ток нагрузки из результатов .meas.

  • «Соберите эту дифференциальную пару как схему, которую я открою в LTspice.» — размещает и соединяет компоненты в настоящий .asc с ортогональной трассировкой и проверкой коллизий выводов.

  • «Устойчива ли эта петля?» — анализ переменного тока коэффициента усиления петли; сообщает запас по фазе и амплитуде на каждой частоте среза, а не только на первой.

  • «Каковы резонансная частота и добротность этого последовательного RLC?» — выполняет развёртку по переменному току и сообщает центральную частоту, добротность и полосу пропускания по −3 дБ для каждого пика.

Предупреждение приходит вместе с числом, на которое оно влияет. Такой симулятор, как ngspice, может один раз вывести «singular matrix» глубоко в логе, который вы бы никогда не открыли, затем завершить запуск и всё равно записать вполне правдоподобные числа — прочитайте их вручную, и ничто не покажется подозрительным. Попросите сервер об одном из этих чисел — и погребённая строка прикрепится к нему, в поле observations рядом со значением, так что сбой проявится там, куда вы уже смотрите, а не там, где его легко прокрутить.

Совместная работа над одними и теми же файлами

Всё работает с обычными файлами LTspice и SPICE, так что работа переходит между вами и ассистентом, а не остаётся внутри чата:

  • Нарисуйте схему в LTspice, затем передайте её: «какая рабочая точка?», «почему выход не двигается?», «добавьте коррекцию и проверьте запас по фазе.»

  • Или наоборот: ассистент проектирует и проверяет схему и записывает .asc; вы открываете его в LTspice, просматриваете и правите вручную. Ваши ручные правки просто становятся новым состоянием файла — ассистент продолжит с них в следующем запросе.

  • Изменения могут идти в любом направлении в процессе проектирования: измените значение в графическом интерфейсе и попросите перепроверить, или пусть ассистент прогонит изменение, которое вы рассматриваете, прежде чем вы его зафиксируете.

Что он делает

Моделирование и измерения. Запускает LTspice или ngspice и напрямую разбирает бинарный вывод. Измерения вычисляются на стороне сервера и возвращаются числами: во временно́й области (нарастание/спад, перерегулирование, установление, задержка, период/скважность/джиттер, СКЗ, КГИ), в частотной (частоты среза фильтров и спад, усиление и фаза на любой частоте, запасы устойчивости, резонансные пики с добротностью, интегральный шум), рабочие точки по постоянному току и результаты директив .MEAS, включая неудачные. Малосигнальные параметры рабочей точки для каждого прибора (gm, gds, vth, …) возвращаются по имени на обоих симуляторах — в LTspice через автоматически добавляемый блок .options logopinfo в логе, в ngspice через трассы .save @dev[param]. Считайте набор по развёртке .dc как таблицу gm/ID с помощью export_waveform или одну рабочую точку с помощью operating_point (адресуйте их как m1.gm / @m1[gm], без разбора raw-файлов).

Редактирование схем и нетлистов. Создаёт и редактирует настоящие файлы LTspice .asc — размещает компоненты, соединяет выводы, подписывает цепи — с проверкой перед записью: соединение, которое столкнётся с выводом, пересечёт узел или пройдёт по диагонали, будет отклонено, а каждая правка возвращает предупреждения о висячих выводах или неподключённых метках. Правки сеанса можно откатить. Обычные нетлисты (.cir/.net) получают те же операции на текстовом уровне, плюс статическую проверку, которая ловит некорректные карты до запуска моделирования.

Развёртки и Монте-Карло. Многомерные параметрические развёртки и Монте-Карло с допусками компонентов, технологическими вариациями .MODEL и разбросом приборов W·L по Пелгрому. Статистика по каждому измерению агрегируется по запускам, а любой отдельный запуск можно извлечь и проанализировать как самостоятельное моделирование.

Задачи и доверие. Моделирование выполняется как отменяемые задачи с тайм-аутами и ограничением параллелизма; длительные запуски немедленно возвращают идентификатор задачи, и состояние задачи переживает перезапуск сервера. Результаты сообщают факты, а не вердикты: завершённый запуск несёт собственные предупреждения симулятора, измерения, которые ничего не дали, и экстремальные значения узлов в виде структурированных наблюдений. Суждение о том, заслуживает ли результат доверия, остаётся модели, которая его читает.

Поддерживаемые симуляторы

Симулятор

Статус

LTspice

Основной. Windows нативно, WSL2 (Windows LTspice.exe через interop), Linux через Wine. Требуется для редактирования схем .asc (нужны библиотеки символов .asy).

ngspice

Первоклассный: моделирование, разбор, диагностика, анализ. Путь с открытым исходным кодом без установки LTspice.

QSPICE, Xyce

Поддерживаются, но вторичны.

Конфигурация

Работает с настройками по умолчанию из коробки. Для настройки скопируйте ltspice-mcp.example.toml в ltspice-mcp.toml; любой параметр можно переопределить переменной окружения с префиксом LTSPICE_MCP_, а --config PATH или LTSPICE_MCP_CONFIG выбирает файл. Ключевые параметры:

[simulator]
default = "ltspice"      # ltspice, ngspice, qspice, xyce (null = auto-detect)
path = ""                # explicit executable path (required on WSL)
ngbehavior = "hsa"       # ngspice compat mode; unset = spicelib default, "hsa" fixes sectioned .lib corner select

[security]
allowed_paths = ["."]    # sandbox: only these directories are accessible

[simulation]
max_parallel = 4
timeout = 300.0          # seconds

[tools]
profile = "full"         # or "agentic"

[state]
persist_jobs = true

Полный список параметров см. в src/ltspice_mcp/config.py ([analysis], [schematic], [logging], ...).

В WSL LTspice.exe запускается через Windows interop (не Wine), и spicelib не может автоматически обнаружить его через границу WSL. Укажите путь на стороне Windows явно:

[simulator]
path = "/mnt/c/Program Files/ADI/LTspice/LTspice.exe"

Вывод моделирования автоматически перенаправляется во временный каталог Windows: результаты .MEAS LTspice проходят через файлы SQLite .db, которые не работают с UNC-путями (\\wsl.localhost\...), и без перенаправления данные измерений молча исчезают из логов.

Пути к символам .asy для редактирования .asc определяются автоматически в Windows и WSL; переопределите с помощью [schematic] symbol_paths или LTSPICE_MCP_SYMBOL_PATHS.

Профили инструментов

Профиль

Инструменты

Сценарий использования

full (по умолчанию)

49

Любой MCP-клиент, автоматизация, неагентные LLM

agentic

41

LLM-агенты с нативным доступом к файлам (Read/Edit/Write)

Профиль agentic убирает обёртки редактирования нетлистов и управление сеансами библиотек — работу, которую способный агент выполняет прямым редактированием файлов — и оставляет жизненный цикл моделирования, разбор бинарных .raw, пакетную оркестрацию и геометрические инструменты .asc. Каталог skills/ (skills/ltspice/SKILL.md, skills/ngspice/SKILL.md) содержит предметные знания, которые идут с ним в пару: скопируйте соответствующий навык в расположение постоянных инструкций вашего клиента.

Где это работает. Сервер вызывает локальный LTspice/ngspice и читает файлы схем с диска, поэтому он должен работать там, где находятся симулятор и файлы. Работают два варианта: локальный MCP-хост (Claude Desktop, Claude Code, Cursor, Gemini CLI, Codex, …) на вашей машине или браузерный облачный агент, чья песочница может установить ngspice и зарегистрировать сервер (проверено с Claude). LTspice работает только локально (это приложение для Windows); ngspice — с открытым исходным кодом и работает и там, и там. Обычный веб-чат без песочницы не имеет ни симулятора, ни доступа к файлам, поэтому не может запустить этот сервер напрямую; подключите его к машине, которой вы управляете (например, через mcp-proxy), если хотите использовать этот интерфейс.

Под капотом: цикл на уровне инструментов

Что на самом деле делает ассистент для задачи «спроектировать ФНЧ на RC с частотой 1 кГц и проверить его». Он записывает нетлист (R=1k, C=159.155n → fc = 1 kHz):

* rc.cir — RC low-pass
V1 in 0 AC 1
R1 in out 1k
C1 out 0 159.155n
.ac dec 50 1 1Meg
.end

затем вызывает три инструмента:

validate_netlist(path="rc.cir")
  → OK: directives valid, element arities check out — safe to simulate

run_simulation(netlist="rc.cir")
  → {"job_id": "sim_a3f1", "status": "completed", "raw_file": ".../rc.raw", ...}

bode_metrics(raw_file=".../rc.raw", signal="V(out)", mode="filter")

и получает в ответ скаляры, а не график:

{
  "signal": "V(out)",
  "filter_type": "lowpass",
  "passband_gain_db": 0.0,
  "passband_ripple_db": 0.02,
  "cutoff_low_hz": null,
  "cutoff_high_hz": 1000.4,
  "stopband_rejection_db": 59.97,
  "rolloff_slope_db_per_decade": -19.9,
  "estimated_order": 1,
  "warnings": []
}

(сокращено — полный ответ также включает границы полосы пропускания и ширину переходной полосы)

Если результат не соответствует цели → set_component_value, повторный запуск, повторное измерение. Долгие симуляции возвращают ID задания вместо блокировки; check_job/cancel_job управляют ими. Метаданные заданий сохраняются в сопутствующих файлах для каждой схемы ({dir}/.ltspice-mcp/jobs/ — добавьте .ltspice-mcp/ в ваш .gitignore), а MCP-ресурсы (spice://results/..., spice://netlists/..., spice://config) предоставляют задания, сигналы, измерения и конфигурацию для просмотра.

Каждый инструмент объявляет MCP-аннотации (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); инструменты, возвращающие данные, объявляют outputSchema для интроспекции structuredContent.

Tool

Description

create_netlist

Создать новый netlist из строки содержимого

create_schematic

Создать пустой .asc, готовый к инкрементальному редактированию

read_circuit

Прочитать файл схемы (текст netlist для .cir, графическое представление схемы для .asc)

list_components

Перечислить компоненты (опциональный фильтр по префиксу) или найти компонент по обозначению

set_component_value

Установить значение одного компонента или пакетно задать несколько значений через словарь values

parameter

Прочитать все значения .PARAM или установить одно значение

edit_directive

Добавить или удалить директивы SPICE (.tran, .ac, .lib, ...)

add_component

Добавить компонент; возвращает позиции выводов, ограничивающую рамку, предупреждения о перекрытиях

connect

Соединить два вывода по обозначению с маршрутизацией через промежуточные точки; проверяет конфликты выводов, узлы, диагонали

symbol_info

Позиции выводов символа, направления, ограничивающая рамка, описание

component_info

Позиции выводов размещённого компонента, ограничивающая рамка, атрибуты

export_netlist

Экспортировать .asc в .net через LTspice (со сравнением с предыдущим экспортом)

validate_netlist

Статические предварительные проверки netlist или схемы перед симуляцией

trace_net

Каждый вывод/метку/провод на цепи по выводу / net:NAME / (x,y); помечает случайные короткие замыкания

reset_schematic

Откатить .asc к снимку до редактирования из этой сессии

diff_circuit

Структурный diff между двумя файлами схем

apply_schematic_ops

Применить множество правок .asc за одну транзакцию; основное место для мутационных операций, возвращающих только подтверждение (move_component, remove_component, set_component_attribute, add_net_label, remove_net_label, remove_wire)

run_simulation

Запустить симуляцию — синхронно для коротких прогонов, асинхронно (ID задания) для длинных; устанавливает флаги пакетного режима, поддерживает диалект ngspice headerless-raw, направляет артефакты raw/log, выводит ошибки сходимости/тайм-аута (без ручного разбора raw-файла)

check_job

Проверить статус задания по ID или вывести список всех заданий

cancel_job

Отменить выполняемую симуляцию или пакет; завершает процесс(ы) симулятора

signal_stats

Мин., макс., среднее, RMS, размах (пик-пик) (дБ/фаза для AC)

get_waveform

Прореженная статистическая огибающая (мин/макс) сигнала в окне — посмотрите форму, затем повторно запросите более узкое окно для масштабирования

export_waveform

Выгрузка одного или нескольких сигналов в CSV на диск с полной точностью (все типы анализа; tidy/long для .step); принимает параметры рабочей точки прибора (m1.gm/@m1[gm]) — при развёртке .dc это чтение таблицы gm/ID; возвращает путь для самостоятельного вычисления

plot_waveform

Интерактивный HTML-график (переходный процесс / DC / двухпанельный Боде с углом ac_structure + маркерами неминимальной фазы / шум / наложение .step), записываемый рядом со схемой и открываемый в вашем браузере; для просмотра формы, а не измерений

query_value

Значение сигнала в конкретный момент времени / на конкретной частоте (или параметр рабочей точки прибора, m1.gm/@m1[gm]); step_axis+step_value выбирает прогон .step

operating_point

Рабочая точка по постоянному току: все напряжения узлов, токи ветвей и параметры рабочей точки каждого прибора (gm/gds/vth/…) в LTspice (авто .options logopinfo) и ngspice, доступные как m1.gm/@m1[gm]; device= ограничивает область до одного прибора

simulation_summary

Полная сводка: тип симуляции, сигналы, измерения, предупреждения

edge_metrics

Время нарастания/спада и скорость нарастания (slew rate) для одного фронта переходного процесса

pulse_response

Перерегулирование, провал, время установления для реакции на ступенчатый сигнал

timing_between

Задержка распространения между двумя сигналами переходного процесса

periodic_metrics

Период, частота, коэффициент заполнения, джиттер колебательного сигнала

thd

Суммарные гармонические искажения (THD/THD+N) периодического переходного процесса через БПФ; когерентная дискретизация для точного результата; выявляет все условия

measurement_stats

Агрегировать скалярные значения .MEAS в рамках развёртки или прогона Монте-Карло

bode_metrics

Анализ AC/Боде по mode: filter, slope, point, crossing; all_steps=true для результатов по каждому шагу

stability_metrics

Устойчивость по петлевому усилению: все пересечения единичного усиления / -180° с запасами для каждого пересечения

resonance

Пики АЧХ с добротностью Q и полосой -3 дБ для каждого пика

ac_structure

Структура полюсов/нулей АЧХ: порядок цепи, диапазоны угловых частот + Q, неминимальная фаза / ноль в правой полуплоскости (RHP-zero), транспортная задержка (факты для просмотра человеком)

noise_integral

Интегрировать спектральную плотность .noise до полного СКЗ в полосе (sqrt(∫ density² df)); сообщает полосу и количество отсчётов

configure_sweep

Настроить многопараметрическую развёртку (линейную или логарифмическую)

run_sweep

Выполнить настроенную развёртку (асинхронно, возвращает ID задания)

configure_montecarlo

Настроить Монте-Карло: допуски, вариацию .MODEL, рассогласование Пельгрома (Pelgrom mismatch)

run_montecarlo

Выполнить настроенный анализ Монте-Карло (асинхронно, возвращает ID задания)

batch_results

Прогресс задания Sweep/MC, статистика по каждому сигналу или данные по каждому прогону

find_model

Найти кандидатов моделей по имени (по умолчанию нечёткий поиск, exact=true для точного)

load_library

Загрузить файл .lib/.mod или каталог библиотек

unload_library

Выгрузить ранее загруженную библиотеку

list_libraries

Перечислить загруженные библиотеки, опционально с именами моделей

server_status

Обнаруженные симуляторы, конфигурация, пути песочницы, состояние выполнения

recent

Недавно использованные схемы и задания из постоянного индекса

Разработка

uv sync                        # install runtime + dev dependencies
uv run pytest tests/ -v        # tests
uv run pyright                 # type checking
uv run ruff check src/ tests/  # lint
uv run ltspice-mcp             # run the server (stdio)

Подробнее: docs/DESIGN.md (область применения, архитектура, нецели) и docs/spice_lex.md (внутреннее устройство SPICE-парсера).

Лицензия

GPL-3.0

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    AI-powered circuit design through simulation — an MCP server that gives language models direct access to SPICE circuit simulation via ngspice, enabling natural language circuit description and automated netlist generation, simulation, measurement, and spec verification.
    28
    28
    GPL 3.0
  • F
    license
    C
    quality
    D
    maintenance
    MCP server for automating LTspice on macOS, enabling simulation, schematic generation, data extraction, verification, and rendering via natural language or agents.
    71
    15
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that connects LLM assistants to real circuit simulation: LTspice and ngspice, plus direct editing of LTspice .asc schematics. Simulation results come back as structured numbers so the assistant can design, verify, and iterate on circuits.
    48
    26
    GPL 3.0

View all related MCP servers

Related MCP Connectors

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ossenna-hq/MCP_LTSpice'

If you have feedback or need assistance with the MCP directory API, please join our Discord server