ltspice-mcp
リポジトリの由来: この公開インテグレーションフォークは、上流の
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-mcpClaude Code — 1コマンド(グローバルにインストールする場合は -s project を省略):
claude mcp add -s project ltspice -- ltspice-mcpその他のクライアント — Claude Desktop、Cursor、Windsurf、Gemini CLI、Continue、Cline、Zed など — クライアントのMCP設定ファイルにこの mcpServers スタンザを追加します(各クライアントが独自のパスをドキュメント化しています):
{
"mcpServers": {
"ltspice": { "command": "ltspice-mcp", "args": [] }
}
}Python 3.11+ が必要です。ltspice-mcp --help で確認してください。同じサーバーは circuit-mcp と ngspice-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 ディレクティブ結果。デバイスごとの小信号動作点パラメータ(gm、gds、vth、…)は、両方のシミュレータで名前付きで返されます — 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 経由。 |
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の一時ディレクトリにリダイレクトされます: LTspiceの .MEAS 結果は、UNCパス(\\wsl.localhost\...)で失敗するSQLite .db ファイルを経由するため、リダイレクトがないと測定データはログから静かに消えてしまいます。
.asc 編集用の .asy シンボルパスは、WindowsとWSLで自動検出されます。[schematic] symbol_paths または LTSPICE_MCP_SYMBOL_PATHS で上書きします。
ツールプロファイル
プロファイル | ツール | ユースケース |
| 49 | 任意のMCPクライアント、自動化、非エージェントLLM |
| 41 | ネイティブファイルアクセス(Read/Edit/Write)を持つLLMエージェント |
agentic プロファイルは、ネットリスト編集ラッパーとライブラリセッション管理を削除します — 有能なエージェントが直接ファイル編集で行う作業 — シミュレーションライフサイクル、バイナリ .raw 解析、バッチオーケストレーション、.asc ジオメトリツールを保持します。skills/ ディレクトリ(skills/ltspice/SKILL.md、skills/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アノテーション(readOnlyHint、destructiveHint、idempotentHint、openWorldHint)を宣言します。データを返すツールは、structuredContentイントロスペクション用のoutputSchemaを宣言します。
ツール | 説明 |
| コンテンツ文字列から新しいネットリストを作成します |
| 増分編集に対応した空の |
| 回路ファイルを読み取ります ( |
| コンポーネントを一覧表示します (オプションのプレフィックスフィルタ付き)。または参照指定で1つを検索します |
| 1つのコンポーネント値を設定するか、 |
| すべての |
| SPICE ディレクティブ ( |
| コンポーネントを追加します。ピン位置、バウンディングボックス、重なり警告を返します |
| ウェイポイントルーティングで参照指定の2つのピンを配線します。ピンの衝突、ジャンクション、斜め配線を検証します |
| シンボルのピン位置、方向、バウンディングボックス、説明 |
| 配置済みコンポーネントのピン位置、バウンディングボックス、属性 |
| LTspice 経由で |
| シミュレーション前にネットリストまたは回路図に対して静的な事前チェックを行います |
| ピン / |
|
|
| 2つの回路ファイル間の構造的差分 |
| 多数の |
| シミュレーションを実行します — 短時間の実行は同期、長時間の実行は非同期 (ジョブ ID) です。バッチフラグを設定し、ngspice のヘッダーレス raw 方言を処理し、raw/log アーティファクトをルーティングし、収束/タイムアウトエラーを表面化します (raw ファイルの手動解析は不要) |
| ID でジョブのステータスを確認するか、すべてのジョブを一覧表示します |
| 実行中のシミュレーションまたはバッチをキャンセルします。シミュレータプロセスを強制終了します |
| 最小値、最大値、平均値、RMS、ピークツーピーク (AC の場合は dB/位相) |
| ウィンドウ内の信号のデシメーションされた最小/最大統計エンベロープ — 形状を確認してから、より狭いウィンドウを再リクエストしてズームします |
| 1つ以上の信号をフル忠実度の CSV としてディスクに出力します (すべての解析タイプに対応。 |
| インタラクティブな HTML チャート (過渡 / DC / Bode デュアルパネル、 |
| 特定の時間/周波数での信号値 (またはデバイス動作点パラメータ |
| DC 動作点: LTspice (自動 |
| 完全なサマリー: シミュレーションタイプ、信号、測定値、警告 |
| 1つの過渡エッジの立ち上がり/立ち下がり時間とスルーレート |
| ステップ応答のオーバーシュート、アンダーシュート、整定時間 |
| 2つの過渡信号間の伝搬遅延 |
| 発振信号の周期、周波数、デューティサイクル、ジッタ |
| FFT による周期過渡信号の全高調波歪み (THD/THD+N)。正確な結果のためのコヒーレントサンプリング。すべての条件を表面化します |
| スイープまたはモンテカルロ実行全体で |
|
|
| ループゲイン安定性: すべてのユニティゲイン / -180° 交差と、交差ごとのマージン |
| AC ピークと、ピークごとの Q 値および -3 dB 帯域幅 |
| AC 応答の極/零点構造: ネット次数、コーナー範囲 + Q、非最小位相 / RHP 零点、輸送遅延 (人間が確認するための事実) |
|
|
| マルチパラメータスイープ (線形または対数) を構成します |
| 構成済みのスイープを実行します (非同期、ジョブ ID を返します) |
| モンテカルロを構成します: トレランス、 |
| 構成済みのモンテカルロ解析を実行します (非同期、ジョブ ID を返します) |
| スイープ/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