Skip to main content
Glama
ossenna-hq

ltspice-mcp

by ossenna-hq

仓库来源: 此公共集成分支基于上游 cognitohazard/ltspice-mcp 标签 v0.5.0(提交 4dc456000e1a436ef37a585c23ab35954a8caf04e)。 本分支中的新增内容提供了与安装无关的部署示例和文档。未修改任何上游服务器源代码。

ltspice-mcp

正在进行中。 核心功能可用,但预计会有粗糙之处和破坏性变更。

一个 MCP 服务器,将 LLM 助手(Claude 及任何其他 MCP 客户端)连接到真实的电路仿真:LTspice 和 ngspice,以及直接编辑 LTspice .asc 原理图。仿真结果以结构化数字返回——截止频率、超调量、相位裕度、上升时间,以及按名称读回的每个器件的 小信号工作点参数(gm、gds、vth 等)——因此助手可以在你于 LTspice 中打开的同一文件中设计、验证和迭代电路,而无需手动解析原始文件。基于 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 DesktopCursorWindsurfGemini CLIContinueClineZed 等——将这段 mcpServers 配置添加到客户端的 MCP 配置文件中(每个客户端都记录了自己的路径):

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

需要 Python 3.11+。用 ltspice-mcp --help 验证。同一服务器还以两个别名发布——circuit-mcpngspice-mcp——因此 uvx circuit-mcp / uvx ngspice-mcpuvx ltspice-mcp 的等效替代,如果你觉得这些名称更容易发现的话。

Web 客户端(claude.ai、ChatGPT)需要 stdio→HTTP 桥接,例如 mcp-proxy——只能在完全受你控制的网络上暴露此服务器,因为它会在 allowed_paths 内写入文件并生成进程。

还提供了 Claude Desktop 扩展:在 packaging/mcpb/ 中构建 .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 kΩ,找出效率下降的位置。" — 参数扫描,每次运行都有结果。

  • "表征此 NMOS:gm 和 gm/ID 与 VGS 的关系。" — 编写 .dc Vgs 测试文件,使用 .save @m1[gm] @m1[id],在 ngspice 上运行,并将 gm/ID 表作为一个 CSV 返回(无需 .control 块,无需解析原始文件)。

  • "为低侧开关寻找 N 沟道功率 MOSFET,并测量导通状态压降。" — 在加载的库中搜索零件(find_model),将其放入脉冲栅瞬态中,并从 .meas 结果中读取 Vds(on) 和负载电流。

  • "将此差分对构建为可在 LTspice 中打开的原理图。" — 将组件放置并连线到真实的 .asc 文件中,并带有正交路由和引脚碰撞检查。

  • "这个环路稳定吗?" — 环路增益的 AC 分析;报告每个交叉点的相位和增益裕度,而不仅仅是第一个。

  • "这个串联 RLC 的谐振频率和 Q 值是多少?" — 运行 AC 扫描,并报告每个峰值的中心频率、Q 值和 −3 dB 带宽。

警告与它影响的数字一起出现。 像 ngspice 这样的仿真器可能会在日志深处打印一次"奇异矩阵",然后完成运行并写出完全合理的数字——手动读取时看起来一切正常。当你向服务器请求其中一个数字时,隐藏的行会附加到该数字上,出现在紧邻值的 observations 字段中,因此故障会出现在你正在查看的地方,而不是容易被忽略的地方。

在同一文件上进行协同设计

所有操作都基于普通的 LTspice 和 SPICE 文件,因此工作在你和助手之间来回传递,而不是停留在聊天中:

  • 在 LTspice 中绘制原理图,然后交给助手:"工作点是多少?""为什么输出不动?""添加补偿并检查相位裕度。"

  • 或者反过来:助手设计并验证电路,然后写入 .asc;你在 LTspice 中打开它,检查并手动调整。你的手动编辑就是文件的新状态——助手会在下一次请求时从那里继续。

  • 变更可以在设计过程中双向流动:在 GUI 中调整一个值并请求重新验证,或者让助手在你提交之前扫描你正在考虑的变更。

功能

仿真与测量。 运行 LTspice 或 ngspice,并直接解析二进制输出。测量在服务器端计算并以数字返回:时域(上升/下降、超调、稳定、延迟、周期/占空比/抖动、RMS、THD)、频域(滤波器截止频率和滚降、任意频率下的增益和相位、稳定裕度、带 Q 值的谐振峰、积分噪声)、DC 工作点,以及 .MEAS 指令结果(包括失败的)。每个器件的 小信号工作点参数(gmgdsvth 等)在两个仿真器上都按名称返回——LTspice 通过自动添加的 .options logopinfo 块,ngspice 通过 .save @dev[param] 轨迹。使用 export_waveform 读取 .dc 扫描中的集合作为 gm/ID 表,或使用 operating_point 读取单个偏置点(以 m1.gm / @m1[gm] 形式寻址,无需解析原始文件)。

原理图和 netlist 编辑。 创建和编辑真实的 LTspice .asc 文件——放置组件、连接引脚、标记网络——并在写入前进行验证:会与引脚碰撞、重叠连接点或对角运行的连线会被拒绝,每次编辑都会返回关于浮动引脚或悬空标签的警告。会话中的编辑可以撤销。普通 netlist(.cir/.net)在文本级别获得相同的操作,外加静态验证,在仿真之前捕获格式错误的卡片。

扫描和蒙特卡洛。 多维参数扫描和蒙特卡洛,支持每个组件的容差、.MODEL 工艺变化和 Pelgrom W·L 器件失配。每次测量的统计量跨运行聚合,任何单次运行都可以提取出来,像独立仿真一样分析。

任务与信任。 仿真作为可取消的任务运行,具有超时和并发上限;长时间运行立即返回任务 ID,任务状态在服务器重启后仍然存在。结果报告事实而非结论:完成的运行携带仿真器自身的警告、未产生任何结果的测量,以及作为结构化观察的极端节点值。判断结果是否可信由读取它的模型决定。

支持的仿真器

仿真器

状态

LTspice

主要。Windows 原生,WSL2(通过 interop 使用 Windows LTspice.exe),Linux 通过 Wine。.asc 原理图编辑需要(需要 .asy 符号库)。

ngspice

一流:仿真、解析、诊断、分析。无需 LTspice 安装的开源路径。

QSPICE、Xyce

支持但次要。

配置

开箱即用,使用默认值。要自定义,请将 ltspice-mcp.example.toml 复制为 ltspice-mcp.toml;任何设置都可以用 LTSPICE_MCP_ 前缀的环境变量覆盖,--config PATHLTSPICE_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 临时目录:LTspice 的 .MEAS 结果通过 SQLite .db 文件存储,这些文件在 UNC 路径(\\wsl.localhost\...)上会失败,如果没有重定向,测量数据会从日志中静默消失。

.asc 编辑的 .asy 符号路径在 Windows 和 WSL 上自动检测;使用 [schematic] symbol_pathsLTSPICE_MCP_SYMBOL_PATHS 覆盖。

工具配置文件

配置文件

工具

使用场景

full(默认)

49

任何 MCP 客户端、自动化、非代理 LLM

agentic

41

具有原生文件访问(读取/编辑/写入)的 LLM 代理

agentic 配置文件去掉了 netlist 编辑包装器和库会话管理——有能力的代理通过直接文件编辑完成的工作——并保留仿真生命周期、二进制 .raw 解析、批处理编排和 .asc 几何工具。skills/ 目录(skills/ltspice/SKILL.mdskills/ngspice/SKILL.md)包含与之配套的领域知识:将相关技能复制到客户端的持久指令位置。

运行位置。 服务器会调用本地的 LTspice/ngspice,并从磁盘读取电路文件,因此它必须运行在模拟器和文件所在的位置。两种配置可用:本机上的 MCP 主机(Claude Desktop、Claude Code、Cursor、Gemini CLI、Codex 等),或沙箱可以安装 ngspice 并注册服务器的基于浏览器的云代理(已通过 Claude 验证)。LTspice 仅限本地使用(Windows 应用);ngspice 是开源的,在两种环境中都可以使用。没有沙箱的消费级 Web 聊天没有模拟器,也没有文件访问权限,因此无法直接运行此服务器;如果你想要这种 UI,可以将其桥接到你控制的机器上(例如 mcp-proxy)。

底层机制:工具级循环

对于“design a 1 kHz RC low-pass and verify it”,助手实际做的是。它写出网表(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 负责管理它们。作业元数据持久化保存在每个电路的 sidecar 文件中({dir}/.ltspice-mcp/jobs/——将 .ltspice-mcp/ 添加到你的 .gitignore),MCP 资源(spice://results/...spice://netlists/...spice://config)会暴露作业、信号、测量结果和配置供浏览。

每个工具都声明 MCP 注解(readOnlyHintdestructiveHintidempotentHintopenWorldHint);返回数据的工具会为 structuredContent 自省声明 outputSchema

工具

描述

create_netlist

从内容字符串创建新的网表

create_schematic

创建一个空的 .asc,准备进行增量编辑

read_circuit

读取电路文件(.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

通过 LTspice 将 .asc 导出为 .net(与之前的导出进行差异比较)

validate_netlist

在仿真前对网表或原理图进行静态预检

trace_net

在引脚 / net:NAME / (x,y) 处追踪网络上的每个引脚/标签/导线;标记意外短路

reset_schematic

.asc 还原到本次会话编辑前的快照

diff_circuit

两个电路文件之间的结构差异

apply_schematic_ops

在一个事务中应用多个 .asc 编辑;是仅需确认的变更操作(move_componentremove_componentset_component_attributeadd_net_labelremove_net_labelremove_wire)的所在地

run_simulation

运行仿真 — 短运行同步,长运行异步(作业 ID);设置批处理标志,处理 ngspice 无头原始数据方言,路由 raw/log 产物,呈现收敛/超时错误(无需手动解析原始文件)

check_job

按 ID 检查作业状态,或列出所有作业

cancel_job

取消正在运行的仿真或批处理;终止模拟器进程

signal_stats

最小值、最大值、平均值、RMS、峰峰值(AC 的 dB/相位)

get_waveform

信号在窗口内的抽取最小/最大值统计包络 — 查看形状,然后重新请求更窄的窗口以放大

export_waveform

将一个或多个信号以全保真 CSV 格式导出到磁盘(所有分析类型;.step 的 tidy/long 格式);接受设备工作点参数(m1.gm/@m1[gm])— 在 .dc 扫描中,这是 gm/ID 表读取;返回路径供您自行计算

plot_waveform

交互式 HTML 图表(瞬态 / DC / Bode 双面板,带 ac_structure 角 + 非最小相位标记 / 噪声 / .step 叠加)生成在电路旁边并在浏览器中打开;用于查看形状,而非测量

query_value

特定时间/频率下的信号值(或设备工作点参数 m1.gm/@m1[gm]);step_axis+step_value 选择 .step 运行

operating_point

DC 工作点:所有节点电压、支路电流和每个设备的工作点参数(gm/gds/vth/…),在 LTspice(自动 .options logopinfo)和 ngspice 上,可寻址为 m1.gm/@m1[gm]device= 限定为一个设备

simulation_summary

完整摘要:仿真类型、信号、测量、警告

edge_metrics

一个瞬态边缘的上升/下降时间和转换速率

pulse_response

阶跃响应的过冲、欠冲、稳定时间

timing_between

两个瞬态信号之间的传播延迟

periodic_metrics

振荡信号的周期、频率、占空比、抖动

thd

通过 FFT 计算周期瞬态的总谐波失真(THD/THD+N);相干采样以获得精确结果;呈现所有条件

measurement_stats

在扫描或蒙特卡洛运行中聚合 .MEAS 标量

bode_metrics

mode 进行 AC/Bode 分析:filterslopepointcrossingall_steps=true 用于逐步结果

stability_metrics

环路增益稳定性:所有单位增益 / -180° 交叉点及每个交叉点的裕度

resonance

AC 峰值,每个峰值带 Q 因子和 -3 dB 带宽

ac_structure

AC 响应的极点/零点结构:净阶数、角频率范围 + Q、非最小相位 / RHP 零点、传输延迟(供人工审查的事实)

noise_integral

.noise 频谱密度积分到频带上的总 RMS(sqrt(∫ density² df));报告频带和样本数

configure_sweep

配置多参数扫描(线性或对数)

run_sweep

执行配置的扫描(异步,返回作业 ID)

configure_montecarlo

配置蒙特卡洛:容差、.MODEL 变化、Pelgrom 失配

run_montecarlo

执行配置的蒙特卡洛分析(异步,返回作业 ID)

batch_results

扫描/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