MATLAB MCP Integration について
MATLAB MCP Integration は、MATLAB Engine API for Python を介して、LLM エージェントや Claude Desktop などのクライアントから共有 MATLAB セッションでコードを実行できる MCP サーバーです。AI ワークフローに MATLAB を組み込みたい利用者を対象としています。
主な機能
- 01runMatlabCode ツールによる MATLAB コードの実行
- 02getVariable ツールによるワークスペース変数の取得
- 03結果とエラーの構造化 JSON 出力
- 04エンジン呼び出しの非同期実行によるブロッキング回避
- 05既存の共有 MATLAB セッションへの接続
活用シーン
- 01LLM から MATLAB スクリプトを実行し計算結果を受け取る
- 02Claude Desktop から MATLAB のワークスペース変数を読み取る
- 03開いている MATLAB セッションで分析を繰り返し実行する
MCP 対応
MCP サーバーとして、runMatlabCode と getVariable のツールを MCP クライアントに提供し、共有 MATLAB エンジン経由で実行します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MATLAB MCP 統合
これは、MATLAB 用の Model Context Protocol(MCP)サーバーの実装です。MATLAB Engine API for Python を使用して、MCP クライアント(LLM エージェントや Claude Desktop など)が共有 MATLAB セッションを操作できるようにします。
機能
- MATLAB コードの実行:
runMatlabCodeツールを使用して、任意の MATLAB コードスニペットを実行します。 - 変数の取得:
getVariableツールを使用して、MATLAB ワークスペース内の変数の値を取得します。 - 構造化された通信: ツールは結果とエラーを構造化 JSON として返すため、クライアントからプログラムで簡単に利用できます。
- ノンブロッキング実行: サーバーのブロッキングを防ぐため、MATLAB エンジンの呼び出しは
asyncio.to_threadを使用して非同期で実行されます。 - 標準ロギング: Python の標準
loggingモジュールを使用し、クライアントのログで確認できるようにstderrに出力します。 - 共有セッション: 既存の共有 MATLAB セッションに接続します。
ヒント
DEVIN による MatlabMCP の Wikipedia です。 アーキテクチャの詳細で図解入りの情報については、DeepWiki をご覧ください。
要件
- Python 3.12 以降
- MATLAB(R2023a 以降を推奨。MATLAB Engine API for Python との互換性をご確認ください)と、MATLAB Engine API for Python がインストールされていること。
numpyPython パッケージ。
インストール
-
このリポジトリをクローンします:
git clone https://github.com/jigarbhoye04/MatlabMCP.git cd MatlabMCP -
Python 仮想環境をセットアップします(推奨):
# まだインストールしていない場合は uv をインストールします:https://github.com/astral-sh/uv uv init uv venv source .venv/bin/activate # Windows の場合:.venv\Scripts\activate -
依存関係をインストールします:
uv pip sync -
MATLAB がインストールされ、MATLAB Engine API for Python が Python 環境用に設定されていることを確認します。詳しくは MATLAB ドキュメントをご覧ください。
-
MATLAB を起動してエンジンを共有します: MATLAB のコマンドウィンドウで次のコマンドを実行します:
matlab.engine.shareEngineMATLAB で
matlab.engine.isEngineSharedを実行すると、共有状態を確認できます(trueまたは1が返されます)。MCP サーバーは接続にこの共有エンジンを必要とします。
設定(Claude Desktop の場合)
このサーバーを Claude Desktop で使用するには:
-
Claude Desktop -> Settings -> Developer -> Edit Config に移動します。
-
claude_desktop_config.jsonが開きます。mcpServersセクションにMatlabMCPの設定を追加するか、既存の設定を変更します:{ "mcpServers": { "MatlabMCP": { "command": "C:\\Users\\username\\.local\\bin\\uv.exe", // uv 実行ファイルへのパス "args": [ "--directory", "C:\\Users\\username\\Desktop\\MatlabMCP\\", // クローンしたリポジトリディレクトリへの絶対パス "run", "main.py" ] // 必要に応じて環境変数を追加します(任意) // "env": { // "MY_VAR": "value" // } } // 他にも MCP サーバーがある場合は、ここに追加します } } -
重要:
C:\\Users\\username\\...のパスを、ご使用のシステムに合った絶対パスに置き換えてください。 -
ファイルを保存し、Claude Desktop を再起動します。
-
ロギング: サーバーログ(Python の
loggingモジュールによるもの)は Claude Desktop の MCP ログファイルに表示されます(macOS ではtail -f ~/Library/Logs/Claude/mcp-server-MatlabMCP.logを実行するか、Windows では%APPDATA%\Claude\logs\を確認してください)。
開発
プロジェクト構成:
MatlabMCP/
├── .venv/ # Virtual environment created by uv
├── Docs/
│ └── Images/
│ └── Updates.md # Documentation for updates and changes
├── main.py # The MCP server script
├── pyproject.toml # Project metadata and dependencies
├── README.md # This file
└── uv.lock # Lock file for dependencies
ドキュメント
サーバーの機能、使用方法、開発に関するメモの詳細については、Updates をご覧ください。
貢献
貢献を歓迎します!ご提案や改善点があれば、お気軽に issue を作成するか、プルリクエストを送信してください。
一緒にさらに良いものにしていきましょう!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。