Simulink モデルを GitHub Copilot と MATLAB MCP サーバーで実行する方法
※この投稿は 2025 年 12 月 10 日に Guy in Simulink へ 投稿されたものの抄訳です。
—
MATLAB MCP サーバー
MathWorksは最近、MATLAB MCP Core Server の初版を GitHub で公開しました。Model Context Protocol(MCP)に馴染みがない方は、Wikipediaのページ「Model Context Protocol – Wikipedia」をざっと見てみるとよいでしょう。簡単に言えば、これは OpenAI や Anthropic といった主要な AI プロバイダーが、あらゆるものとやり取りするために採用しているプロトコルです。
MathWorks が MCP サーバーを提供するということは、Claude Desktop や VS Code の GitHub Copilot のようなツールが、生成したコードを MATLAB に実行させ、その出力を受け取り、自動で反復できるようになったということです。私の同僚である Yann Debray さんと Akshay Paul さんがブログで説明しているように、もう人間がツール間でコードを手動でコピー&ペーストする必要はありません!
この投稿では、VS Code の GitHub Copilot を使って Simulink モデルをシミュレーションする MATLAB コードを生成する、私の最初の試みを紹介します。
免責事項: ここで説明することは、本当はすべて MATLAB デスクトップ内でやりたいのですが、現時点ではまだできません。いつか可能になると確信していますし、そのときは喜んでまたブログを書きたいと思います。
チャレンジ

Setupセットアップ
MATLAB MCP Core Server のダウンロード
MATLAB MCP Serverの最新リリースをダウンロードします。私の場合 Windowsではこれになります:
Visual Studio Code のダウンロード
GitHub Copilot Chat 拡張機能
今回やりたいことのために、GitHub Copilot Chat 拡張機能をインストールします。VS Code の拡張機能パネルで検索し、インストールをクリックしてください。



もし馴染みがない場合は、こちらの手順に従って Copilot アカウントを設定してください: Set up GitHub Copilot in VS Code。このブログ投稿の内容を再現するだけなら、GitHub Copilot の無料アカウントで十分です。
サインインすると、無料で利用できるモデルの簡単な一覧が表示されます。有料サブスクリプションを持っている場合は、さらに多くのモデルが表示されます。

Visual Studio Code で MATLAB MCP サーバーを登録
MATLAB MCP サーバーが正しく構成されているかを確認する最も簡単な方法は、利用可能な MATLAB ツールボックスを尋ねることです。
この時点ではまだ構成していないので、Copilot チャットで質問すると、次のような結果になります

より具体的には、MathWorksは「Add an MCP server to a workspace mcp.json file」のセクションにある手順に従うことを推奨しています。このファイルは、.vscodeという名前のフォルダに配置する必要があります。

このファイルの構文については、こちらで説明されています。最低限、command フィールドは、先ほどダウンロードした MATLAB MCP サーバーの実行ファイルのフルパスを指す必要があります。私の場合は、使用する MATLAB のバージョンと初期作業フォルダを指定するために引数も追加しました。私の mcp.json は次のようになっています:


Simulink モデルのオープンとシミュレーション
「stepSim.m という名前のMATLABスクリプトを作成し、Simulinkモデル BasicModelingSimpleSystem.slx をステップ入力信号でシミュレーションし、ログされた信号『x』をプロットしてください。」という感じです。
選択したモデルによっては、Copilot がコードを生成する前にモデルを理解するために MATLAB コードを実行しようとする場合があります。私の場合、Copilot は get_param や find_system といったコマンドを実行し、モデルの内容、指定されたステップ入力の設定方法、そして信号「x」がどのようにログされているかを確認しようとしました。



残りの部分は「ログされた信号『x』の抽出を試みる」というロジックで、ここでは扱いません。
上のコードを見て最初に思ったことは以下のとおりです:
- 行5〜7の exist チェックは不要です。ファイルがプロジェクト内にあることは分かっています。
- load_system を使う必要はありません。sim コマンドがモデルをロードします。
- in = [t u]; という行は古い書き方なので、Simulink.SimulationData.Dataset を使うよりモダンな構文にしたいです。
- sim コマンドは、より新しい Simulink.SimulationInput オブジェクトの構文を使ってほしいです。
コードを実行して結果をプロットすると、次のようになりました:
まとめ
今回の実験から得られた結論は以下のとおりです:
- 良かった点:MATLAB MCP サーバーによって、GitHub Copilot が MATLAB スクリプトを作成し、実行できることを確認しました。
- 課題となった点:AI コーディングアシスタントは魔法ではないということ。あいまいな依頼は、意図した通りのコードにならない可能性が高いです。
次はあなたの番です
MATLAB MCP サーバーを試してみましたか?もし試されたこと、これから試したいアイデアあればぜひコメントで教えてください。



댓글
댓글을 남기려면 링크 를 클릭하여 MathWorks 계정에 로그인하거나 계정을 새로 만드십시오.