ltspice-mcp
Происхождение репозитория: этот публичный интеграционный форк основан на теге
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-mcpClaude 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. Требуется для редактирования схем |
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.
Профили инструментов
Профиль | Инструменты | Сценарий использования |
| 49 | Любой MCP-клиент, автоматизация, неагентные LLM |
| 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 |
| Создать новый netlist из строки содержимого |
| Создать пустой |
| Прочитать файл схемы (текст netlist для |
| Перечислить компоненты (опциональный фильтр по префиксу) или найти компонент по обозначению |
| Установить значение одного компонента или пакетно задать несколько значений через словарь |
| Прочитать все значения |
| Добавить или удалить директивы SPICE ( |
| Добавить компонент; возвращает позиции выводов, ограничивающую рамку, предупреждения о перекрытиях |
| Соединить два вывода по обозначению с маршрутизацией через промежуточные точки; проверяет конфликты выводов, узлы, диагонали |
| Позиции выводов символа, направления, ограничивающая рамка, описание |
| Позиции выводов размещённого компонента, ограничивающая рамка, атрибуты |
| Экспортировать |
| Статические предварительные проверки netlist или схемы перед симуляцией |
| Каждый вывод/метку/провод на цепи по выводу / |
| Откатить |
| Структурный diff между двумя файлами схем |
| Применить множество правок |
| Запустить симуляцию — синхронно для коротких прогонов, асинхронно (ID задания) для длинных; устанавливает флаги пакетного режима, поддерживает диалект ngspice headerless-raw, направляет артефакты raw/log, выводит ошибки сходимости/тайм-аута (без ручного разбора raw-файла) |
| Проверить статус задания по ID или вывести список всех заданий |
| Отменить выполняемую симуляцию или пакет; завершает процесс(ы) симулятора |
| Мин., макс., среднее, RMS, размах (пик-пик) (дБ/фаза для AC) |
| Прореженная статистическая огибающая (мин/макс) сигнала в окне — посмотрите форму, затем повторно запросите более узкое окно для масштабирования |
| Выгрузка одного или нескольких сигналов в CSV на диск с полной точностью (все типы анализа; tidy/long для |
| Интерактивный HTML-график (переходный процесс / DC / двухпанельный Боде с углом |
| Значение сигнала в конкретный момент времени / на конкретной частоте (или параметр рабочей точки прибора, |
| Рабочая точка по постоянному току: все напряжения узлов, токи ветвей и параметры рабочей точки каждого прибора (gm/gds/vth/…) в LTspice (авто |
| Полная сводка: тип симуляции, сигналы, измерения, предупреждения |
| Время нарастания/спада и скорость нарастания (slew rate) для одного фронта переходного процесса |
| Перерегулирование, провал, время установления для реакции на ступенчатый сигнал |
| Задержка распространения между двумя сигналами переходного процесса |
| Период, частота, коэффициент заполнения, джиттер колебательного сигнала |
| Суммарные гармонические искажения (THD/THD+N) периодического переходного процесса через БПФ; когерентная дискретизация для точного результата; выявляет все условия |
| Агрегировать скалярные значения |
| Анализ AC/Боде по |
| Устойчивость по петлевому усилению: все пересечения единичного усиления / -180° с запасами для каждого пересечения |
| Пики АЧХ с добротностью Q и полосой -3 дБ для каждого пика |
| Структура полюсов/нулей АЧХ: порядок цепи, диапазоны угловых частот + Q, неминимальная фаза / ноль в правой полуплоскости (RHP-zero), транспортная задержка (факты для просмотра человеком) |
| Интегрировать спектральную плотность |
| Настроить многопараметрическую развёртку (линейную или логарифмическую) |
| Выполнить настроенную развёртку (асинхронно, возвращает ID задания) |
| Настроить Монте-Карло: допуски, вариацию |
| Выполнить настроенный анализ Монте-Карло (асинхронно, возвращает ID задания) |
| Прогресс задания Sweep/MC, статистика по каждому сигналу или данные по каждому прогону |
| Найти кандидатов моделей по имени (по умолчанию нечёткий поиск, |
| Загрузить файл |
| Выгрузить ранее загруженную библиотеку |
| Перечислить загруженные библиотеки, опционально с именами моделей |
| Обнаруженные симуляторы, конфигурация, пути песочницы, состояние выполнения |
| Недавно использованные схемы и задания из постоянного индекса |
Разработка
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
Maintenance
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
- AlicenseBqualityDmaintenanceAI-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.2828GPL 3.0
- FlicenseCqualityDmaintenanceMCP server for automating LTspice on macOS, enabling simulation, schematic generation, data extraction, verification, and rendering via natural language or agents.7115
- AlicenseNot gradedqualityBmaintenanceThis MCP server enables agents to control LTspice on macOS for running simulations, generating schematics, extracting data, and automating verification workflows.MIT
- AlicenseAqualityBmaintenanceAn 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.4826GPL 3.0
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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