bio_img_japan-community

MATLAB ユーザーコミュニティー

MATLAB & Simulink ユーザーコミュニティー向け日本語ブログ

MCP で実現する、ローカル AI エージェントによる MATLAB 活用

※この投稿は 2026 年 1 月 21 日に Artificial Intelligence へ 投稿されたものの抄訳です。
Guest writer: Abhijit Bhattacharjee

Abhijit は MathWorks のアプリケーションエンジニアで、AI の専門家です。ここ数か月は特に Agentic AI を中心に、この分野の最新かつ最先端の技術でお客様を支援しています。

同僚 Mike のすばらしい記事 NVIDIA DGX Spark 上で LLM を動かし、MATLAB から接続する方法 を踏まえて、ワークフローを逆転できないか試してみたくなりました。つまり、MATLAB が LLM(大規模言語モデル)を呼び出す代わりに、ローカル LLM エージェントに MATLAB を呼び出させたらどうだろう?ということです。そうすれば MATLAB 全体そのものがエージェントの道具となり、LLM が書いたコードを実行し、検証し、処理する準備が整います。
しかも一番良いのは何かというと、何もネットワークの外に出ることなく、すべてローカルで処理されることです。
幸いにも私は手元に NVIDIA DGX Spark 実機を入手しました。
こちらで DGX Spark の仕様をさらに確認できますが、ここで重要なのは、本格的なエンジニアリング作業ができる規模のローカル LLM を扱えるだけの十分な VRAM(128GB)を備えていることです。

ローカル LLM のセットアップ

Mike と同じく、私は gpt-oss-120b モデルを選びました。信頼できるツール呼び出し性能と、mixture-of-experts(MoE) としての高い性能が理由で、これは 1200 億個のパラメータのうち一部だけを能動的に使うため、計算負荷を抑えられます。ただし私は彼より少し複雑な道を選び、モデル実行のために llama.cpp をソースからコンパイルすることにしました。これもバックエンドに llama.cpp を使う Ollama より、さらに多くの tokens-per-second(tps)を引き出せないか試したかったからです。難しそうに聞こえるかもしれませんが、リポジトリにある包括的なドキュメントのおかげで、実際にはそれほど大変ではありません。
ローカルモデルを使うには、適切なパラメータを付けて llama-server を起動する必要があります。以下は、DGX Spark 上で gpt-oss-120b を動かすために最適化した私の起動コマンドです。
llama-server \
-m models/gpt-oss-120b/Q4_K_M/gpt-oss-120b-Q4_K_M-00001-of-00002.gguf \
–host 0.0.0.0 –port 8080 \
-ngl 999 \
-fa on \
-t 10 \
-c 0 \
-b 2048 -ub 2048 \
-ctk q8_0 -ctv q8_0 \
–no-mmap \
–jinja \
–reasoning-format auto \
–chat-template-kwargs “{\”reasoning_effort\”: \”medium\”}” \
–temp 1.0 \
–top-p 1.0 \
–top-k 0
このように実行することで、いくつかの最適化を指定できました。たとえば –no-mmap はメモリマップドファイル I/O を無効にします(DGX Spark のようなユニファイドメモリアーキテクチャでは不要です)。また -fa on は flash attention カーネルを有効にし、長いトークン列の処理を高速化します。

ローカルモデルで行う Agentic AI コーディング

さて、MATLAB を呼び出し可能なツールとして使う前に、まずは MATLAB の外からこのローカルモデルとやり取りする方法が必要でした。ここれは人気の Agentic AI 用ターミナルアプリケーション OpenCode をハーネスとして利用します。OpenCode ではローカルモデルをさまざまな方法で設定できます。その簡単な方法の一つが、opencode.json 設定ファイルを使うことです。
もう一つやりたいことは、OpenCode が私のマシン上のローカル MATLAB MCP Core Server インスタンスを接続できるようにすることです。Model Context Protocol(MCP)とその仕組みを知りたい場合は、この話題に関する最近のブログ記事、たとえば こちら をぜひご覧ください。
もう少し JSON を調整し、最終的に ローカル LLM(エンドポイントアドレスは 192.168.108.170)とローカル MATLAB MCP 接続の両方を設定する完全な opencode.json ファイルは次のようになりました。
{
“$schema”: “https://opencode.ai/config.json”,
“provider”: {
“llama.cpp”: {
“npm”: “@ai-sdk/openai-compatible”,
“name”: “llama.cpp (abhijit-spark)”,
“options”: {
“baseURL”: “http://192.168.108.170:8080/v1”
},
“models”: {
“gpt-oss-120b-GGUF”: {
“name”: “gpt-oss-120b”
}
}
}
},
“mcp”: {
“MATLAB MCP”: {
“type”: “local”,
“command”: [
“C:\\Users\\abhijit\\Local Content\\Apps\\matlab-mcp-core-server-win64.exe”,
“–matlab-root=C:\\Program Files\\MATLAB\\R2025b”
],
“enabled”: true,
}
}
}
上記のようにすべて設定すると、OpenCode を起動したときに、ローカルモデルが選択され利用可能であること、そして MATLAB MCP が接続され動作していることを示す画面が表示されます。

バイブコーディングを始めましょう!

MATLAB MCP Core Server を有効にした状態でこれがどう動くかを確かめるために、MATLAB に標準で付属するデータセットを使ったデータ解析を行う次のプロンプトを入力します。
Create a MATLAB script that loads carbig dataset and creates 3 plots showcasing how different car properties affect MPG. Use default positions for any figures you create.(carbig データセットを読み込み、さまざまな車両特性が MPG にどのように影響するかを示す 3 つのプロットを作成する MATLAB スクリプトを作成してください。作成する図の位置はすべて既定値を使用してください。)
Train an ensemble regression model using this data to predict MPG from weight, horsepower, displacement, and acceleration. Show me the model statistics and diagnostic plots. (このデータを使ってアンサンブル回帰モデルを学習し、重量、馬力、排気量、加速度から MPG を予測してください。モデル統計量と診断プロットを表示してください。)
Use the MATLAB MCP to execute and test your code. (MATLAB MCP を使ってコードを実行し、テストしてください。)
通常 Claude Opus や GPT-5.2 のような最先端モデルでは、MCP を呼び出す必要がある場合、わざわざ指定する必要はありません。そうした LLM は自動的にそれを判断してくれます。ただ、gpt-oss-120b については、あまり長く空回りしないよう、少し追加のガイダンスを与えることにしました。以下はこのセッションの動画です。

これがその仕組みの肝です。ローカル LLM エージェントが MATLAB をプロのように使いこなし、自分のハードウェア上ですべて動作しているため、データがクラウドへ流出することはありません。DGX Spark には gpt-oss-120b のようなモデルを実用的にするだけの十分な性能があり、これを MATLAB MCP Core Server に接続すると、全体のセットアップは驚くほど自然でまるで MATLAB が AI の道具箱の中のツールになったかのようです。
完璧かというと、残念ながらそうではありません。それでもすでに十分に良く、少しプロンプトを調整すれば、あるいは Devstral 2 のようなより強力なモデルを使えば、さらに良くなります。
このワークフローは、これから何が来るのかを示しています。つまり、ローカル AI エージェントによって支えられるエンジニアリングであり、完全にプライベートで、完全に自分の制御下にあり、そして正直なところ……かなり楽しく使えます。
|
  • print

댓글

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