Skip to main content
Glama
ossenna-hq

ltspice-mcp

by ossenna-hq

リポジトリの由来: この公開インテグレーションフォークは、上流の cognitohazard/ltspice-mcp タグ v0.5.0(コミット 4dc456000e1a436ef37a585c23ab35954a8caf04e)に基づいています。 このブランチでの追加分は、インストールに依存しないデプロイ例とドキュメントを提供するものです。 上流のサーバーソースは一切変更されていません。

ltspice-mcp

開発中。 コア機能は使用可能ですが、荒削りな部分や破壊的変更があることを想定してください。

LLMアシスタント(Claude、およびその他のMCPクライアント)を実際の回路シミュレーションに接続するMCPサーバーです。LTspiceとngspice、さらにLTspiceの.asc回路図の直接編集に対応しています。シミュレーション結果は構造化された数値として返されます — カットオフ周波数、オーバーシュート、位相余裕、立ち上がり時間、そしてデバイスごとの小信号動作点パラメータ(gm、gds、vth、…)を名前で読み戻します — そのため、アシスタントはLTspiceで開いているのと同じファイルで回路の設計、検証、反復を、rawfileを手で解析することなく行えます。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 — 1コマンド(グローバルにインストールする場合は -s project を省略):

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

その他のクライアントClaude DesktopCursorWindsurfGemini CLIContinueClineZed など — クライアントのMCP設定ファイルにこの mcpServers スタンザを追加します(各クライアントが独自のパスをドキュメント化しています):

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

Python 3.11+ が必要です。ltspice-mcp --help で確認してください。同じサーバーは circuit-mcpngspice-mcp という2つのエイリアス名でも公開されているため、uvx circuit-mcp / uvx ngspice-mcp は、どちらかの名前の方が見つけやすい場合、uvx ltspice-mcp の代替としてそのまま使用できます。

Webクライアント(claude.ai、ChatGPT)には、mcp-proxy などのstdio→HTTPブリッジが必要です — このサーバーは 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を調整して再実行します。1回あたり数秒です。

同じように機能する他のリクエスト:

  • 「このレギュレータのステップ応答のオーバーシュートと整定時間は?」 — 過渡解析を実行し、波形から両方を測定します。立ち上がり時間、リンギング周波数、最終値も含みます。

  • 「5%の抵抗で200回のモンテカルロを実行し、出力のばらつきを教えてください。」 — 実行ごとにコンポーネントを変動させ、バッチをシミュレートし、測定ごとに平均、シグマ、最悪値を報告します。

  • 「負荷を100 Ωから10 kΩまでスイープし、効率が低下する場所を見つけてください。」 — 実行ごとの結果付きのパラメータスイープ。

  • 「このNMOSを特性評価してください: gmとgm/ID対VGS。」.dc Vgs デッキを .save @m1[gm] @m1[id] 付きで書き込み、ngspiceで実行し、gm/IDテーブルを1つのCSVとして返します(.control ブロックもrawfile解析も不要)。

  • 「ローサイドスイッチ用のNチャネルパワーMOSFETを見つけ、オン状態のドロップを測定してください。」 — ロードされたライブラリから部品を検索し(find_model)、パルスゲート過渡解析に配置し、Vds(on)と負荷電流を .meas 結果から読み戻します。

  • 「この差動ペアをLTspiceで開ける回路図として構築してください。」 — 直交ルーティングとピン衝突チェック付きで、コンポーネントを実際の .asc に配置し、配線します。

  • 「このループは安定していますか?」 — ループゲインのAC解析。すべてのクロスオーバーで位相余裕とゲイン余裕を報告します(最初のものだけでなく)。

  • 「この直列RLCの共振周波数とQは?」 — ACスイープを実行し、各ピークの中心周波数、Q、−3 dB帯域幅を報告します。

警告は影響する数値に付随します。 ngspiceのようなシミュレータは、開くことのないログの奥深くに "singular matrix" を1回出力し、その後実行を完了して完全に妥当な数値を書き出すことがあります — 手動で読んでも何もおかしく見えません。サーバーにそれらの数値の1つを要求すると、埋もれた行がその値のすぐ隣の observations フィールドに付随して表示されるため、失敗はスクロールして通り過ぎる場所ではなく、すでに確認している場所に現れます。

同じファイルでの共同設計

すべての操作は通常のLTspiceおよびSPICEファイルで行われるため、作業はチャット内に閉じ込められるのではなく、あなたとアシスタントの間で行き来します:

  • LTspiceで回路図をスケッチし、それを渡します: "バイアス点は?""出力が動かないのはなぜ?""補償を追加して位相余裕を確認してください。"

  • または逆に: アシスタントが回路を設計・検証し、.asc を書き込みます。あなたはLTspiceで開き、検査し、手動で調整します。手動編集は単にファイルの新しい状態であり、アシスタントは次のリクエストでそこから続行します。

  • 変更は設計途中でどちらの方向にも流れます: GUIで値を調整して再検証を依頼するか、アシスタントに検討中の変更をスイープさせてからコミットします。

機能

シミュレーションと測定。 LTspiceまたはngspiceを実行し、バイナリ出力を直接解析します。測定はサーバー側で計算され、数値として返されます: 時間領域(立ち上がり/立ち下がり、オーバーシュート、整定、遅延、周期/デューティ/ジッタ、RMS、THD)、周波数領域(フィルタのカットオフとロールオフ、任意の周波数でのゲインと位相、安定性マージン、Q付き共振ピーク、積分ノイズ)、DC動作点、および失敗したものを含む .MEAS ディレクティブ結果。デバイスごとの小信号動作点パラメータ(gmgdsvth、…)は、両方のシミュレータで名前付きで返されます — LTspiceではログに自動追加された .options logopinfo ブロックを介して、ngspiceでは .save @dev[param] トレースを介して。.dc スイープ全体でセットをgm/IDテーブルとして export_waveform で読み取るか、operating_point で単一のバイアス点を読み取ります(m1.gm / @m1[gm] として指定。rawfile解析は不要)。

回路図とネットリストの編集。 実際のLTspice .asc ファイルを作成・編集します — コンポーネントの配置、ピンの配線、ネットのラベル付け — 書き込み前に検証が行われます: ピンと衝突する配線、ジャンクションと重なる配線、または斜めに走る配線は拒否され、すべての編集でフローティングピンやぶら下がりラベルに関する警告が返されます。セッションの編集は元に戻せます。プレーンなネットリスト(.cir/.net)は、テキストレベルで同じ操作に加えて、シミュレーションを費やす前に不正なカードを検出する静的検証パスが適用されます。

スイープとモンテカルロ。 多次元パラメータスイープと、コンポーネントごとの許容差、.MODEL プロセス変動、Pelgrom W·L デバイスミスマッチを備えたモンテカルロ。測定ごとの統計が実行全体で集計され、任意の単一実行を抽出してスタンドアロンのシミュレーションのように分析できます。

ジョブと信頼。 シミュレーションは、タイムアウトと同時実行数の上限を持つキャンセル可能なジョブとして実行されます。長時間の実行はジョブIDを即座に返し、ジョブ状態はサーバー再起動後も維持されます。結果は事実を報告し、判定は行いません: 完了した実行には、シミュレータ自身の警告、何も生成しなかった測定、極端なノード値が構造化された観察として含まれます。結果が信頼できるかどうかの判断は、それを読むモデルに委ねられます。

対応シミュレータ

シミュレータ

ステータス

LTspice

プライマリ。Windowsネイティブ、WSL2(Windows LTspice.exe を interop 経由)、Linux は Wine 経由。.asc 回路図編集に必要(.asy シンボルライブラリが必要)。

ngspice

ファーストクラス: シミュレート、解析、診断、分析。LTspiceインストール不要のオープンソースパス。

QSPICE, Xyce

対応していますが、セカンダリ。

設定

デフォルトでそのまま動作します。カスタマイズするには、ltspice-mcp.example.tomlltspice-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の一時ディレクトリにリダイレクトされます: LTspiceの .MEAS 結果は、UNCパス(\\wsl.localhost\...)で失敗するSQLite .db ファイルを経由するため、リダイレクトがないと測定データはログから静かに消えてしまいます。

.asc 編集用の .asy シンボルパスは、WindowsとWSLで自動検出されます。[schematic] symbol_paths または LTSPICE_MCP_SYMBOL_PATHS で上書きします。

ツールプロファイル

プロファイル

ツール

ユースケース

full(デフォルト)

49

任意のMCPクライアント、自動化、非エージェントLLM

agentic

41

ネイティブファイルアクセス(Read/Edit/Write)を持つLLMエージェント

agentic プロファイルは、ネットリスト編集ラッパーとライブラリセッション管理を削除します — 有能なエージェントが直接ファイル編集で行う作業 — シミュレーションライフサイクル、バイナリ .raw 解析、バッチオーケストレーション、.asc ジオメトリツールを保持します。skills/ ディレクトリ(skills/ltspice/SKILL.mdskills/ngspice/SKILL.md)には、それと組み合わせるドメイン知識が含まれています: 関連するスキルをクライアントの永続的な指示の場所にコピーしてください。

実行場所。 サーバーはローカルのLTspice/ngspiceにシェルアウトし、ディスクから回路ファイルを読み込むため、シミュレータとファイルが存在する場所で実行する必要があります。機能するセットアップは2つあります。自分のマシン上のローカルMCPホスト(Claude Desktop、Claude Code、Cursor、Gemini CLI、Codex、…)、またはサンドボックスにngspiceをインストールしてサーバーを登録できるブラウザベースのクラウドエージェント(Claudeで検証済み)です。LTspiceはローカルのみ(Windowsアプリ)です。ngspiceはオープンソースで、どちらの環境でも動作します。サンドボックスのない一般向けWebチャットにはシミュレータもファイルアクセスもないため、このサーバーを直接実行できません。そのUIが必要な場合は、管理下のマシンにブリッジしてください(例: mcp-proxy)。

内部の仕組み: ツールレベルのループ

アシスタントが「1 kHz RCローパスを設計して検証する」ために実際に行うこと。ネットリストを書き込み(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

次に3つのツールを駆動します:

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/.gitignore.ltspice-mcp/を追加してください)に永続化され、MCPリソース(spice://results/...spice://netlists/...spice://config)はジョブ、信号、測定値、設定をブラウジング用に公開します。

すべてのツールはMCPアノテーション(readOnlyHintdestructiveHintidempotentHintopenWorldHint)を宣言します。データを返すツールは、structuredContentイントロスペクション用のoutputSchemaを宣言します。

ツール

説明

create_netlist

コンテンツ文字列から新しいネットリストを作成します

create_schematic

増分編集に対応した空の .asc を作成します

read_circuit

回路ファイルを読み取ります (.cir のネットリストテキスト、.asc の回路図レイアウト)

list_components

コンポーネントを一覧表示します (オプションのプレフィックスフィルタ付き)。または参照指定で1つを検索します

set_component_value

1つのコンポーネント値を設定するか、values ディクショナリで複数を一括設定します

parameter

すべての .PARAM 値を読み取るか、1つを設定します

edit_directive

SPICE ディレクティブ (.tran, .ac, .lib, ...) を追加または削除します

add_component

コンポーネントを追加します。ピン位置、バウンディングボックス、重なり警告を返します

connect

ウェイポイントルーティングで参照指定の2つのピンを配線します。ピンの衝突、ジャンクション、斜め配線を検証します

symbol_info

シンボルのピン位置、方向、バウンディングボックス、説明

component_info

配置済みコンポーネントのピン位置、バウンディングボックス、属性

export_netlist

LTspice 経由で .asc.net にエクスポートします (前回のエクスポートとの差分付き)

validate_netlist

シミュレーション前にネットリストまたは回路図に対して静的な事前チェックを行います

trace_net

ピン / net:NAME / (x,y) でネット上のすべてのピン/ラベル/配線をトレースします。偶発的なショートをフラグします

reset_schematic

.asc をこのセッションの編集前スナップショットに戻します

diff_circuit

2つの回路ファイル間の構造的差分

apply_schematic_ops

多数の .asc 編集を1つのトランザクションで適用します。ack のみのミューテーション操作 (move_component, remove_component, set_component_attribute, add_net_label, remove_net_label, remove_wire) の本拠地です

run_simulation

シミュレーションを実行します — 短時間の実行は同期、長時間の実行は非同期 (ジョブ ID) です。バッチフラグを設定し、ngspice のヘッダーレス raw 方言を処理し、raw/log アーティファクトをルーティングし、収束/タイムアウトエラーを表面化します (raw ファイルの手動解析は不要)

check_job

ID でジョブのステータスを確認するか、すべてのジョブを一覧表示します

cancel_job

実行中のシミュレーションまたはバッチをキャンセルします。シミュレータプロセスを強制終了します

signal_stats

最小値、最大値、平均値、RMS、ピークツーピーク (AC の場合は dB/位相)

get_waveform

ウィンドウ内の信号のデシメーションされた最小/最大統計エンベロープ — 形状を確認してから、より狭いウィンドウを再リクエストしてズームします

export_waveform

1つ以上の信号をフル忠実度の 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 動作点: LTspice (自動 .options logopinfo) と ngspice 上のすべてのノード電圧、ブランチ電流、デバイスごとの動作点パラメータ (gm/gds/vth/…)。m1.gm/@m1[gm] としてアドレス指定可能。device= で1つのデバイスにスコープを絞ります

simulation_summary

完全なサマリー: シミュレーションタイプ、信号、測定値、警告

edge_metrics

1つの過渡エッジの立ち上がり/立ち下がり時間とスルーレート

pulse_response

ステップ応答のオーバーシュート、アンダーシュート、整定時間

timing_between

2つの過渡信号間の伝搬遅延

periodic_metrics

発振信号の周期、周波数、デューティサイクル、ジッタ

thd

FFT による周期過渡信号の全高調波歪み (THD/THD+N)。正確な結果のためのコヒーレントサンプリング。すべての条件を表面化します

measurement_stats

スイープまたはモンテカルロ実行全体で .MEAS スカラーを集計します

bode_metrics

mode による AC/Bode 解析: filter, slope, point, crossing。ステップごとの結果には all_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