mcpField
N
ngspice-mcp

ngspice-mcp

ローカル
github.com/gtnoble科学・教育1980 週間前に更新

ngspice-mcp について

ngspice-mcpは、MCPサーバーを介してAI LLMなどのMCPクライアントにngspiceの回路シミュレーション機能を提供します。ネットリストの読み込み、シミュレーション実行、プロットのベクターデータ取得に対応します。

主な機能

  1. 01回路とネットリストの読み込み
  2. 02ngspiceシミュレーションの実行
  3. 03プロットとベクターの一覧表示
  4. 04複数形式でのベクターデータ取得
  5. 05stdout・stderrリソースの参照

活用シーン

  1. 01回路ネットリストを読み込んでシミュレーション
  2. 02DC、AC、過渡解析の実行
  3. 03指定したシミュレーションベクターと区間のデータ取得

MCP 対応

回路の読み込み、シミュレーション、データ取得のMCPツールに加え、stdout、stderr、利用ガイドのリソースを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

ngspice-mcp

標準化されたプロトコルインターフェースを通じて、ngspice の回路シミュレーション機能を利用できる Model Context Protocol(MCP)サーバーです。このサーバーにより、AI 言語モデルは制御された構造的な方法で ngspice とやり取りできます。

機能

  • ngspice の共有ライブラリインターフェースとの連携
  • 標準化された MCP プロトコルの実装
  • 構造化データにアクセスできる同期処理
  • 包括的な出力の取得とリダイレクト
  • 複数の表現形式に対応したベクターデータの処理
  • サーバーモードとライブラリモードの両方をサポート
  • テストスイートを内蔵

必要条件

  • D コンパイラー(DMD/LDC)
  • ngspice 共有ライブラリ
  • MCP サーバーライブラリ(d-mcp-server)
  • D ビルドシステム(dub)

インストール

  1. システム要件がインストールされていることを確認します
  2. リポジトリをクローンします
  3. dub を使用してビルドします。
dub build --config=server

使い方

サーバーは次のコマンドで起動できます。

./ngspice-mcp [options]
コマンドラインオプション
  • --working-dir、-d:回路ファイルの作業ディレクトリを設定します(デフォルト:現在のディレクトリ)
利用可能なツール
回路の読み込み
  • loadCircuit:回路ネットリストを直接読み込みます
  • loadNetlistFromFile:ファイルからネットリストを読み込みます

ネットリストの例:

RC Circuit
R1 in out 1k
C1 out 0 1u
.end
シミュレーション
  • runSimulation:シミュレーションコマンドを実行します

よく使用するコマンド:

  • op:DC 動作点
  • dc source start stop step
  • ac dec points fstart fend
  • tran step tstop
データアクセス
  • getPlotNames:利用可能なシミュレーションプロットを一覧表示します
  • getVectorNames:特定のプロット内のベクトルを一覧表示します
  • getVectorData:次のオプションを指定してベクターデータを取得します。
    • 振幅・位相表現
    • 直交座標(実数・虚数)表現
    • 両方の表現
    • 任意の間隔選択
リソース
  • stdout://:ngspice の標準出力ストリーム
  • stderr://:ngspice のエラー出力ストリーム
  • usage://:包括的な使い方ガイド

開発

プロジェクト構成
ngspice-mcp/
├── source/
│   ├── app.d           # Main application
│   ├── bindings/       # ngspice C API bindings
│   ├── database/       # SQLite database handling
│   ├── parser/         # Netlist parsing
│   └── server/         # MCP server implementation
├── resources/          # Resource files
└── bin/               # Build outputs
ビルド設定
  1. サーバーモード
dub build --config=server
  1. ライブラリモード
dub build --config=library
  1. ユニットテスト
dub test --config=unittest
テスト

テストスイートを実行します。

dub test

テストでは、次の項目を確認します。

  • ngspice バインディング
  • サーバー機能
  • ツールの検証
  • リソースの処理
  • エラーケース

技術詳細

アーキテクチャ

サーバーは、次の主要コンポーネントを実装しています。

  1. NgspiceServer:サーバーの中核となる実装

    • ツールの登録と処理
    • リソース管理
    • 出力ストリームの取得
    • ベクターデータの処理
  2. 出力システム

    • 標準出力/標準エラー出力の取得
    • ストリームのバッファリング
    • リソース通知
  3. ベクトル処理

    • 複素数の処理
    • 科学的記数法でのフォーマット
    • 間隔選択
    • 複数の表現形式
データベースシステム
  • モデルパラメーターの保存
  • 効率的なインデックス作成とクエリ
  • トランザクションのサポート
  • 同時アクセスの処理

ライセンス

MIT License。詳細は dub.json を参照してください。

Copyright © 2024, Garret Noble

貢献

貢献を歓迎します。次の点を確認してください。

  1. コードがプロジェクトのスタイルと標準に準拠していること
  2. 新機能にはテストが含まれていること
  3. 必要に応じてドキュメントが更新されていること
  4. コミットメッセージが明確で説明的であること

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。