MATLAB MCP Core Server を活用した最適化エージェントの作り方
※この投稿は 2026 年 1 月 26 日に Artificial Intelligence へ 投稿されたものの抄訳です。
—
![]() |
Co-author: Tom Couture
Tom Couture は最適化(Optimization)のプロダクトマネージャーです。このブログ記事では、彼が私と一緒に行った、新しい MATLAB MCP Core Server を使った最適化エージェントを構築する方法を紹介します。
|
Tom のような方であれば、MATLAB で最適化問題を設定するのに、目的関数や制約を定義し、ソルバーを選び、オプションを微調整するなど、何時間も費やした経験があるかもしれません。では、これが実現できたらどうでしょうか——それらすべてを代わりにやってくれる AI エージェントと会話しつつ、最適化自体は手元の MATLAB で実行できるとしたら? まるで「ポケットの中の小さな Tom」のように。
そこで登場するのが、強力な Optimization Toolbox™ と組み合わせて利用できる MATLAB MCP Core Server です。この記事では、実際のエンジニアリング課題を解ける最適化エージェントを作成する方法を紹介します。シンプルな制約付き最適化から、サロゲートモデルを使った計算コストの高い CFD ベースの設計最適化まで取り扱います。
エージェントが最初に行うべきこと:ツールボックスの確認

AI アシスタント(Claude Desktop®、GitHub Copilot®、または任意の MCP 対応クライアント)へのプロンプトの例は次のとおりです:
“Check which MATLAB toolboxes I have installed, specifically looking for Optimization Toolbox and Global Optimization Toolbox.”
日本語訳:インストールされている MATLAB のツールボックスを確認してください。特に Optimization Toolbox と Global Optimization Toolbox を探してください。
エージェントは detect_matlab_toolboxes ツールを呼び出し、次のような結果を返します:
これは非常に重要です。使用できるソルバーは、あなたが保有しているライセンスに完全に依存しているためです。Optimization Toolbox がない? その場合、エージェントは fminsearch に切り替える必要があることを判断します。Global Optimization Toolbox がある?素晴らしい! これにより、計算コストの高いシミュレーションには surrogateopt を利用できます。
例 1:構造梁の設計最適化
問題設定
矩形断面の梁について、その重量を最小化することを目指します。ただし、以下の条件を満たす必要があります:
- 最大応力の制約(降伏応力を超えてはならない)
- 最大たわみの制約(許容たわみを超えてはならない)
- 幅と高さの上下限
“I need to optimize a cantilever beam design. The beam has length L=5m, carries a tip load P=10kN, made of steel with E=200 GPa and yield stress=250 MPa. I want to minimize the cross-sectional area (width × height) while keeping tip deflection under 10mm and max stress under the yield stress. Width should be between 50-200mm, height between 100-500mm. Please set this up and solve it using MATLAB.”
日本語訳:片持ち梁の設計を最適化したいです。梁の長さ L = 5 m、先端荷重 P = 10 kN、材料は E = 200 GPa、降伏応力は 250 MPa の鋼です。断面積(幅 × 高さ)を最小化したいのですが、先端たわみを 10 mm 以下、最大応力を降伏応力以下に保つ必要があります。幅は 50–200 mm、高さは 100–500 mm の範囲にしてください。これを MATLAB を使って設定し、解いてください。
エージェントは次のコードを生成して実行しました:
幅 80.2 mm、高さ 189.4 mm の最適な梁が得られ、どちらの制約も境界でちょうど満たしています。これは、適切に定式化された最適化問題ならまさに期待される挙動です。

なぜこの問題に対して fmincon ソルバーを使用したのか、その理由の一部は、私と Claude とのやり取りを見ると確認できます:
例 2:応答曲面を用いた CFD ベースの最適化
蓋駆動キャビティ流れ問題
蓋駆動キャビティ流れは CFD における「Hello World」とも言える問題です。上部の壁(“蓋・lid”)が一定速度で動く正方形キャビティで、ナビエ–ストークス方程式を解いて流れ場を求めます。このデモでは、日本の同僚である Michio が MATLAB のみで実装したコードを使用します。コードは GitHub にあります:2D Lid-Driven Cavity Flow Solver
エージェントに対して与えた質問は次のとおりです:
“I have a CFD solver in the folder 2D-Lid-Driven-Cavity-Flow-Incompressible-Navier-Stokes-Solver. I want to optimize the lid velocity and Reynolds number to minimize the maximum vorticity in the secondary corner vortex of a lid-driven cavity flow. Reynolds number should be between 100 and 1000, and lid velocity between 0.5 and 2.0 m/s.”
日本語訳:フォルダ 2D-Lid-Driven-Cavity-Flow-Incompressible-Navier-Stokes-Solver に CFD ソルバーがあります。蓋駆動キャビティ流れの二次コーナー渦における最大渦度を最小化するために、蓋速度とレイノルズ数を最適化したいです。レイノルズ数は 100〜1000、蓋速度は 0.5〜2.0 m/s の範囲にしてください。
なぜサロゲート最適化なのか?
|
What’s New
|
Why It Matters
|
|
高価な関数のサロゲート(応答曲面)を構築する
|
実際の CFD シミュレーションの回数を減らせる
|
|
放射基底関数(RBF)補間を使用
|
複雑な応答面でも正確に近似できる
|
|
グローバル探索が可能
|
局所解にハマらない
|
|
並列評価をサポート
|
CPU コアを最大活用できる
|

次は?
MATLAB MCP Core Server と Optimization Toolbox の組み合わせは、エンジニアリング最適化の新しい形を切り開きます。
ドキュメント、コードエディタ、コマンドウィンドウを行き来するのではなく、AI と会話しながら次のようなことができるようになります:
- 利用可能なソルバーを知るためにツールボックスをチェックする
- 自然言語で記述した内容から問題を定式化する
- ローカルの MATLAB でコードを書いて実行する
- エラーが出てもコピー&ペーストなしで自動的に反復して改善する
自分でも試してみたい場合は、MATLAB MCP Core Server のリポジトリにアクセスし、セットアップ手順に従ってください。サーバーは 5 つのコアツールを提供していますが、Optimization Toolbox に含まれる 100 以上の関数と組み合わせれば、可能性は無限大です。
最適化を楽しんでください!
See Also
- Releasing the MATLAB MCP Core Server on GitHub
- Surrogate Optimization Documentation
- 2D Lid-Driven Cavity Flow Solver
- Category:
- Artificial Intelligence,
- 機能と使い方,
- 生成AI



Comments
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.