この記事で扱っていること
- LabVIEWでMCPサーバーを立ててClaudeからLabVIEWを動かす方法
を紹介しています。
注意:すべてのエラーを確認しているわけではないので、記事の内容を実装する際には自己責任でお願いします。また、エラー配線は適当な部分があるので適宜修正してください。
LabVIEWでも2025 Q3バージョンからAIサービスであるNigelが使用可能になっていますが、世の中AIサービスの進化が驚異的なスピードで進んでいて、日々様々なことができるようになっています。
単に相談相手、情報検索の補助といった役割にとどまらず、実際に特定のファイル操作をしたり、PC内の他のアプリケーションの動作をユーザーの代わりになってやってくれるようになるなど、便利になる中、LabVIEWでもこうした流れになるための方法として、MCP Server Toolkitが公開されており、今回の記事ではこれについて紹介していきます。
なお、MCPって何なの?という部分についての詳しい説明は今回の趣旨ではないですが、AIモデルと他のアプリケーションの間で連携を行うための約束事(Model Context Protocolというプロトコル)だと考えてください。
LabVIEWがサーバーとなり、AIモデル(以下で紹介するのはClaude)がクライアントとなり、クライアント側からの指示をサーバーば受け取って、サーバー側が処理し、その結果をクライアントに返すための仕組みになっています。
何ができるのか?
LabVIEW MCP Server Toolkitを使用することで、MCPサーバーを立ててそこに対してAIチャットサービス、例えばClaude Desktopからアクセスすることができます。
アクセスすることによって、Claude DesktopがLabVIEWが立てたMCP サーバーに登録したviに対し制御器に値を渡して実行、その結果を受け取って、チャット画面に表示できるようになります。

Claude Desktopからアクセスして操作できるプログラムは、ツールと呼ばれます。
やりとりできるデータタイプには制限があるものの、基本的にはLabVIEWのどんなviでもツールになりえるようです。

ちなみに、やりとりできるデータタイプの制限として、Claude DesktopからLabVIEWに渡せるのは、数値、文字列、ブールのスカラー値(配列は渡せない)であるのに対して、LabVIEWからClaude Desktopに値を返せるのは、数値、文字列、ブールのスカラー値や配列、そしてピクチャデータも渡せますが、クラスタは渡すことができません。
環境の準備
LabVIEWの標準機能でMCPサーバーを立てられるわけではなく、専用のツールキットが公開されているのでこれを利用します。
が、このツールキットを使用するにはさらに前準備として以下のパッケージが必要です。(MCP server toolkit含めすべて無料で、VIパッケージマネージャからインストールするだけですが)
- IG HTTP Server Toolkit
- JKI JSONText

さらに、これらとは別にNode.jsのインストールも必要になります。
Node.jsはVIパッケージマネージャではなく、https://nodejs.org/ja/downloadのサイトからWindowsインストーラを入手してインストールします。
AIサービスとしてはClaude Desktopを使用するとしてこれもインストールしておきます。
Claude Desktopは無料版でも以下で紹介する内容は使えますが、有償ライセンスを購入した場合に比べて割とすぐに「会話の上限」が来てしまいます。
最初お試しに使う分にはそれでも問題ないと思いますが、本格的に使おうとなると有償ライセンスの購入を検討した方がいいかもしれません。
上で紹介したそれぞれのソフトを揃えたら、Claude Desktopにて環境設定のためのClaude_desktop_configuration.jsonファイルに対して、特定の内容を追加しておきます。
”’ { “mcpServers”: { “vi-scripting-server”: { “command”: “npx”, “args”: [ “mcp-remote”, “http://127.0.0.1:36987/mcp/server” ], “env”: { } } } } ”’
追加時の見た目は以下の図を参考にしてみてください。

設定をしたら、一度Claude Desktopを完全に終了します。
(これ以降でも、LabVIEW側から新しくサーバー用のmain.viを実行するたびに、Claude Desktopは完全に終了した状態から新規で開く必要があります。)

サンプルで慣れる
環境設定ができたら、サンプルを使って動作を確かめてみます。
サンプルファインダからサンプルが見つかり、二つの種類がありますが、今回はsimple MCP Serverの方を例にとります。

Main.viのブロックダイアグラムを見ると、MCP Server Toolkitの関数としては3つしか使われておらず、そのうちの二つはサーバーを開くのと閉じるための関数になっています。

サーバーを開く関数では、サーバーの名前と、どんなことを行うサーバーなのかの説明が簡単に書かれています。
次にある関数はイベント登録ですが、これはもうこういう使い方をするもんだと思ってください。Claude Desktopがこのサーバーにアクセスするとこのユーザイベントが実行されますが、特に触る必要はありません。
大事なのはそのあとのAdd Toolと書かれた関数で、この関数に対して、ツールとしたいvi、つまりClaude Desktopから操作したいviのパスを入力します。

このサンプルでは、Get System Stats.viが対象となっていて、サンプルのプロジェクトにあるこのviを開くと、PCのメモリ状態などを調べ結果を返すプログラムだとわかります。
つまり、このサンプルでは、Claude DesktopからGet System Statsのプログラムを実行して現在のPCのCPUやメモリ使用状況についての情報を取得することができる、ということになります。

では実際にClaude Desktopとのやり取りを開始します。
Claude Desktopを開く前に、このmain.viを実行しておき、そのあとにClaude Desktopを開きます。
あとは、Claude Desktopのチャット入力画面で、例えば「LabVIEWのサーバーにアクセスして、何ができるかを教えてください」などと入力します。

設定がうまくいっていると、サーバーにアクセスすることができた、といったメッセージが出て、場合によってはそのままツールであるGet System Statsが実行され現在のCPUやメモリの状態についての情報が表示されます。
(実際にGet System Stats.viを開くと、このviが実行されていることがわかります)

Simple MCP Serverのサンプルでできるのはここまでですが、Add Toolの関数に渡すviを増やすとそれだけできることも増えます。
簡単な注意点
サンプルで使われているGet System Stats.vi以外のviをツールにする場合の簡単な注意点としては
- Viの説明は丁寧に記述する
- Viのコネクタペーンは必ず設定する(特に表示器側)
といった点が挙げられます。
まず、viの説明として、そのviがどういう役割、処理を行うかをきちんと記述します。
記述する場所は、VIプロパティのドキュメントカテゴリの部分で、そのviの役割をはじめ、制御器や表示器の意味についても書いておきます。
どうやらこれらの説明分をAIモデル側が読んで、どんな命令が来た時にどのツールを実行するかを判断しているようなので、この部分があいまいだとうまくチャットからの指示でプログラムを実行できません。
(ただし、サンプルで使われているGet System Stats.viは実はviの説明の内容と実際の操作が全く違います。本来は修正されているべきですが・・・)

次に、viのコネクタペーンが重要で、Claude Desktopから値を変えられる、あるいはLabVIEWから値を受け取れるのはすべてコネクタペーンに設定したものになります。
制御器に対するコネクタペーン、つまり入力側は0個でもいいのですが、表示器に対するコネクタペーン、つまり出力側は0個だと、Claude Desktopを開いた時点でmain.viの方のステータスでエラーが表示され、LabVIEWへアクセスすることができなくなります。
特にClaude Desktopへの値の返しが必要ない場合でも、何かしらの表示器はコネクタペーンに設定するようにします。

今回の記事では、LabVIEW MCP Server Toolkitを用いてClaude DesktopからLabVIEWにアクセスし、チャット形式でLabVIEWプログラムの操作を行う方法を紹介しました。
LabVIEWのプログラムとして色々作りこめば、チャット形式の会話を進めていくだけで済むようになり、LabVIEWの操作も苦手だ、億劫だ、という方にとっても便利だと思います。
ここまで読んでいただきありがとうございました。

コメント