MATLAB MCPサーバーをClaude Codeで使う設定ガイド
MathWorks公式のMATLAB MCPサーバーをClaude Codeに登録し、MATLABコードの実行・静的解析・テスト実行を任せる手順と、セッション設定・権限・ライセンス上の注意点です。
MATLAB MCPサーバーをClaude Codeで使う設定ガイド
MATLAB MCPサーバーは、MathWorks公式のMCPサーバーです。Claude Codeに登録すると、MATLABの起動と終了、コードの実行、コードの静的解析をClaudeに任せられます。登録はclaude mcp addの1行で済みますが、MATLABのバージョン条件、セッションの扱い、ライセンスの制約は先に押さえておく必要があります。この記事は導入手順、提供されるツール、権限の絞り方、つまずきやすい点をまとめます。
MATLAB MCPサーバーとは何か
MATLAB MCPサーバーは、手元のMATLABをMCP(Model Context Protocol)経由でAIアプリケーションから操作できるようにする、MathWorks提供のサーバーです。GitHubのリポジトリ名はmatlab/matlab-mcp-core-serverで、READMEの題は「MATLAB MCP Server」です。配布されるバイナリ名はmatlab-mcp-serverになります。
できることは大きく3つです。
- MATLABの起動と終了
- MATLABコードの記述と実行
- MATLABコードのスタイルと正しさの評価
サーバー自体はMATLABを内蔵しません。手元にインストール済みのMATLABを起動して使う作りなので、MATLABのライセンスと本体が前提になります。
前提条件
導入前に確認する項目は次のとおりです。
導入前に確認すること
- MATLAB R2021a以降がインストールされ、システムのPATHに通っていること
- サーバーのバイナリを入手できること(Windows・Linuxは最新リリースのダウンロード、またはGoでのビルド)
- 既存のMATLABセッションに接続する場合は、R2023a以降であること
PATHに通っているMATLABが複数あると、サーバーは先に見つかったものを使います。特定のバージョンを使いたいときは、後述する--matlab-rootで指定します。
Claude Codeに登録する手順
バイナリを入手する
WindowsとLinuxは、リリースページから最新のバイナリをダウンロードします。macOSはターミナルでダウンロードし、実行権限を付けます。Apple siliconの場合は次のとおりです。
curl -L -o ~/Downloads/matlab-mcp-server \
https://github.com/matlab/matlab-mcp-server/releases/latest/download/matlab-mcp-server-macos-arm64
chmod +x ~/Downloads/matlab-mcp-serverIntelプロセッサーのmacは、URL末尾がmatlab-mcp-server-macos-x64のバイナリを使います。
claude mcp addで登録する
Claude Codeからは、ローカルのstdioサーバーとして登録します。バイナリは絶対パスで指定します。
claude mcp add --transport stdio matlab -- /fullpath/to/matlab-mcp-server--はClaude Code側のオプションとサーバーに渡す引数を分ける区切りです。サーバーの引数は--より後ろに書きます。登録の流れはGhidra MCPの設定ガイドと同じで、ローカルのバイナリを子プロセスとして起動する形です。
claude mcp add --transport stdio matlab -- /fullpath/to/matlab-mcp-server \
--initial-working-folder=/home/username/myproject登録後は、接続状態をclaude mcp listか、セッション内の/mcpで確認します。外すときはclaude mcp remove matlabです。
登録先のスコープは既定でlocal(自分だけ・現在のプロジェクト)です。--scope projectを付けると.mcp.jsonに書かれてチームと共有され、--scope userなら全プロジェクトで使えます。ただしバイナリのパスはマシンごとに違うので、projectスコープで共有するときは、各自の環境でパスが成立するかを先に決めておきます。
提供されるツール
READMEが挙げるツールは5つです。
| ツール | 役割 | 主な入力 |
|---|---|---|
detect_matlab_toolboxes | 役割インストール済みのMATLABとツールボックスのバージョン情報を返す | 主な入力なし |
check_matlab_code | 役割.mファイルを実行せずに静的解析し、スタイルや非推奨関数などの警告を返す | 主な入力script_path |
evaluate_matlab_code | 役割MATLABコードの文字列を評価して出力を返す | 主な入力code、project_path |
run_matlab_file | 役割.mスクリプトを実行して出力を返す | 主な入力script_path |
run_matlab_test_file | 役割MATLABのユニットテストを実行し、テスト結果を返す | 主な入力script_path |
check_matlab_codeは読み取り専用で、ファイルを書き換えません。evaluate_matlab_codeのproject_pathには作業ディレクトリの絶対パスを渡し、MATLABはそこをカレントフォルダーにします。パスはすべて絶対パスで渡す仕様です。
ツール名はClaude Code上でmcp__matlab__に続けた形になります。サーバー名をmatlabで登録した場合、静的解析はmcp__matlab__check_matlab_codeと呼ばれます。この名前は、あとで権限ルールを書くときに使います。
MCPリソースとしてコーディング規約も渡せる
ツールとは別に、サーバーはMCPのリソースを2つ公開しています。
guidelines://coding: MATLABのコーディング標準(命名、書式、コメント、性能、エラー処理)guidelines://plain-text-live-code: プレーンテキスト形式のライブスクリプトを生成するための規則
後者のライブスクリプトを実行するにはMATLAB R2025a以降が必要です。どちらもMarkdownで返るので、Claude Codeでは@でのリソース参照からコンテキストに入れ、規約に沿ったコードを書かせる使い方ができます。
起動オプションで挙動を決める
サーバーの挙動は引数で変えます。引数は、CLIフラグ、アプリ側の設定ファイル、環境変数のどれでも渡せます。環境変数名は、フラグ名の前にMW_MCP_SERVER_を付け、大文字にしてハイフンをアンダースコアへ置き換えます。--matlab-rootならMW_MCP_SERVER_MATLAB_ROOTです。両方を使うとCLIフラグが優先されます。
| 引数 | 内容 |
|---|---|
--matlab-root | 内容起動するMATLABのルートを指定。/binは含めない。省略時はPATH上で最初に見つかったMATLAB |
--initialize-matlab-on-startup | 内容trueでサーバー起動と同時にMATLABを起動。既定では最初のツール呼び出し時に起動 |
--initial-working-folder | 内容MATLABの開始フォルダー。省略時はクライアントの最初のRoot、なければユーザーのホーム系フォルダー |
--matlab-display-mode | 内容desktop(既定)はMATLABデスクトップを表示、nodesktopは表示しない |
--matlab-session-mode | 内容new / auto(既定)/ existing |
--extension-file | 内容独自ツールを定義したJSONファイル(複数指定可) |
--log-folder | 内容ログの保存先。省略時はOSの一時フォルダー |
--log-level | 内容debug / info(既定)/ warn / error |
--disable-telemetry | 内容trueで匿名の利用データ収集を止める |
MATLABの起動には時間がかかるため、既定の遅延起動だと最初のツール呼び出しが長く待たされます。気になる場合は--initialize-matlab-on-startup=trueにします。
起動中のMATLABセッションに接続する
--matlab-session-modeのexistingを使うと、すでに起動しているMATLABに接続できます。作業中の変数やワークスペースをClaudeと共有したいときに向きます。R2023a以降が条件で、準備は次の手順です。
- 初回のみ、ターミナルで
./matlab-mcp-server --setup-matlabを実行し、MATLAB側にMATLAB MCP Server Toolboxを入れる - MATLABのコマンドウィンドウで
shareMATLABSession()を実行する --matlab-session-mode=existing(またはauto)でサーバーを起動する
複数のMATLABを立ち上げているときは、最後にshareMATLABSession()を実行したセッションに接続します。毎回の手入力が面倒なら、MATLABのスタートアップスクリプトに書いておけます。existingモードでは--matlab-root、--initial-working-folder、--matlab-display-modeを併用できません。既定のautoは、接続できるセッションがあればそこへ、なければ新しいMATLABを起動します。
権限を絞って安全に使う
evaluate_matlab_codeとrun_matlab_fileは、MATLABのコードを実行します。MATLABのコードはファイルの読み書きもできるため、実行系のツールは影響範囲が広い操作です。READMEもツール呼び出しを実行前によく確認し、重要な操作には人間が関与し続けるよう求めています。
Claude Codeの権限ルールは、mcp__<サーバー名>__<ツール名>の形で個別に指定できます。読み取り専用の2つを許可し、実行系は毎回確認に回す設定の例です。
{
"permissions": {
"allow": [
"mcp__matlab__detect_matlab_toolboxes",
"mcp__matlab__check_matlab_code"
],
"ask": [
"mcp__matlab__evaluate_matlab_code",
"mcp__matlab__run_matlab_file",
"mcp__matlab__run_matlab_test_file"
]
}
}mcp__matlab__*のようにサーバー全体をワイルドカードで許可する書き方もありますが、実行系まで一括で通ってしまいます。静的解析とバージョン確認だけ自動化し、実行は確認を挟む構成が出発点として扱いやすいはずです。
使い方の例
指示は、ツールの引数に必要な絶対パスを含めると通りがよくなります。
- 「
/home/me/proj/analyze.mをcheck_matlab_codeで解析して、警告を優先度順に直して」 - 「
detect_matlab_toolboxesでStatistics ToolboxがあるかをMATLABのバージョンとあわせて確認して」 - 「修正後に
run_matlab_test_fileで/home/me/proj/tests/testAnalyze.mを実行し、失敗したテストだけ報告して」
静的解析で直し、ユニットテストで確かめる往復を回すと、MATLABコードの修正が検証つきで進みます。静的解析はスクリプトを実行しないので、まず解析から回し、実行は最後に回すと安全側に寄せられます。
つまずきやすい点
ツールの出力が大きすぎる。MATLABの出力は長くなりがちです。Claude Codeは、MCPツールの出力が10,000トークンを超えると警告を出し、既定では25,000トークンで制限します。必要ならMAX_MCP_OUTPUT_TOKENSで上限を上げられます。ただし、サーバー側が上限を宣言しないツールの結果は、50,000文字を超えるとファイルに保存される挙動も別にあります。
長い計算で応答が返らない。MATLABの計算が長引くと、Claude Codeは2分を超えたMCPツール呼び出しをバックグラウンドタスクに回します。結果はタスク通知として届き、/tasksで状況を確認できます。この自動バックグラウンド化にはClaude Code v2.1.212以降が必要です。
起動が遅い、または接続に失敗する。サーバーの起動待ちには、環境変数MCP_TIMEOUT(ミリ秒)で上限を変えられます。MATLABの初回起動が遅い環境では、--initialize-matlab-on-startupでサーバーの起動と同時にMATLABを立ち上げておく手もあります。
Windowsで他クライアントを併用するとき。READMEには、CodexがWindowsでWINDIR環境変数を渡さずMATLABを動かせない問題が載っています。Claude Codeの手順ではありませんが、同じバイナリを複数のクライアントで使うなら知っておくと役立ちます。
Claude Desktopでは手順が違う。Claude Desktopはclaude mcp addではなく、.mcpb形式のバンドルをインストールします。ファイル操作用にFilesystem拡張も別途有効にします。ここまでの手順はClaude Code向けです。
ライセンスとデータ収集
MATLAB MCPサーバーの利用には、2つの注意点があります。
1つ目はライセンスです。READMEは、MCPサーバーとMATLABの組み合わせをMathWorksのソフトウェアライセンス契約に従って使うこと、サーバーを複数ユーザーで共有しないことを求めています。共有サーバーや集中運用が必要な場合はMathWorksへの問い合わせが前提です。チームで使うときは、1人1サーバーの運用になります。
2つ目はデータ収集です。サーバーは、匿名化された利用情報をMathWorksへ送ることがあり、既定でオンです。止めたいときは--disable-telemetry=trueを指定します。
他のMCPサーバーとの組み合わせ
MATLAB MCPサーバーは、手元のソフトウェアを子プロセスとして起動し、その機能をツールに見立てて渡すタイプです。同じ型には、クラウドのCLIを権限つきで渡すaws-api-mcp-serverの設計や、データ変換の実行を渡すdbt MCPサーバーがあります。どの型でも、読み取り系は許可して書き込み系や実行系は確認に回すという分け方は共通で使えます。
まとめ
導入はバイナリの入手とclaude mcp add --transport stdio matlab -- <パス>の1行です。差が出るのは、existingモードで作業中のMATLABを共有するかどうか、そして実行系ツールの権限をどう切るかです。まず静的解析とテスト実行から任せ、実行系は確認つきで運用に乗せるところから始められます。