CarMaker について
CarMakerは、IPG CarMakerで車両運動テストを行うエージェント向けのMCPサーバーです。テスト実行、結果の読み取り、車両・コントローラーパラメーターの編集に加え、変更の取り消しにも対応します。
主な機能
- 01CarMakerセッションとテストの開始
- 02`.erg`結果の読み取り
- 03車両・コントローラーパラメーターの編集
- 04順次実行するパラメータースタディ
- 05エージェントによる変更の取り消し
活用シーン
- 01制動テストで停止距離を測定
- 02コントローラーパラメーター変更後のヨーレート比較
- 03車両質量ごとの横加速度の比較
- 04テスト中に加えたプロジェクト変更の取り消し
MCP 対応
MCPクライアントに、CarMakerセッション、テスト実行、結果、プロジェクトデータ、コントローラーパラメーターの操作を公開します。MATLAB接続セッションとスタンドアロン実行に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx carmaker-mcpCM_PROJECTCarMaker project folder. All writes are confined to it.CM_MODELSimulink model that cm_session_start opens (name on the MATLAB path, or a file).CM_MATLAB_SESSIONName under which MATLAB shares its engine.CM_POPUP_TIMEOUTSeconds after which CarMaker GUI pop-ups answer themselves with their default choice. Not set: they wait for a click.CM_ENABLEOptional tools, comma separated: tcl (raw Tcl in the GUI), experimental (Simulink structure edits).CM_DISABLETool groups to switch off, comma separated: standalone, study, matlab.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
carmaker-mcp
AI エージェントがコンピューター上の IPG CarMaker を操作できる MCP サーバーです。セッションの開始、テストランの実行と結果の読み取り、車両データや Simulink コントローラーのパラメーターの変更、および変更内容の取り消しができます。
非公式のコミュニティプロジェクトであり、IPG Automotive または MathWorks とは提携しておらず、推奨も受けていません。CarMaker と MATLAB/Simulink のライセンスはご自身でご用意ください。このリポジトリには、IPG または MathWorks のコードやデータは含まれていません。
ステータス:アルファ版。 1 つの環境(CarMaker 14.1.1、MATLAB R2024b、Windows 11)で開発およびテストされています。 docs/verification.md では、実際のソフトウェアで確認済みの項目と未確認の項目を一覧にしています。
目次: できること · 対象外のこと · 要件 · セットアップ · MATLAB MCP サーバーとの併用 · 設定 · ツール · 安全性とプライバシー · トラブルシューティング · 仕組み
できること
サーバーに接続すると、エージェントに次のようなことを依頼できます。
- 「制動テストランを実行して、停止距離を教えてください。」
- 「コントローラーモデルの
Kp_yawを 1.5 に設定し、スラロームをもう一度実行してヨーレートを比較してください。」 - 「車両質量を 280、300、320 kg にしてレーンチェンジを試し、横加速度を表にまとめてください。」
- 「最後のランが中断されました。なぜですか?」
- 「変更した内容をすべて元に戻してください。」
このサーバーは 2 つの方法で動作し、エージェントは車両に適した方法を選びます。
| MATLAB 接続セッション | スタンドアロン実行 | |
|---|---|---|
| 用途 | コントローラーが Simulink モデルである車両(CarMaker for Simulink) | CarMaker の組み込みコントローラーを使用する車両 |
| 必要なもの | モデルが入った MATLAB と CarMaker GUI(サーバーから両方を起動できます) | CarMaker のみ。MATLAB やウィンドウは不要です |
具体的な使用例: docs/examples.md。
対応範囲外
このサーバーは、Formula Student チームでの車両ダイナミクスおよびコントローラー開発向けに作られており、各シミュレーションは単独実行か CarMaker for Simulink 実行のいずれかでした。CarMaker ではこれ以外にも多くのことができますが、以下はこのサーバーの対応範囲外であり、試験も行われていません。
非対応(対応するツールはありません):
- その他のプラットフォームと製品: Linux、TruckMaker、MotorcycleMaker、CarMaker HIL、CarMaker Office Extended(リアルタイムハードウェア、Fail Safe Tester、CAN、FlexRay、SOME/IP、XCP などのバスインターフェース)。
- CarMaker 独自のテスト自動化: Test Manager、テストシリーズ、テストレポート、並列(HPC)実行、スタートアップファイルを使ったバッチモード。代わりに、このサーバーでは独自のパラメータスタディを実行し、シミュレーションを1回ずつ順番に処理します。
- シナリオの作成: Scenario Editor、道路、交通、センサー、環境、OpenSCENARIO のインポート。
cm_editは既存ファイルのキーを変更しますが、これらの要素を作成するものではありません。 - 大半の可視化機能: Movie NX、IPGControl、Instruments、動画のエクスポート、Model Check。IPGMovie では単一画像のみです。
- その他の結果形式: 読み込みに対応しているのは
.ergファイルのみで、MDF や ASCII には対応していません。 - シミュレーションプログラムの再ビルド: C コードのモデル、または Simulink Coder で生成されたモデル。
- リモートマシン: CarMaker と MATLAB は、サーバーを実行するコンピューター上で動作している必要があります。
動作する可能性はありますが、未試験です:
- FMU、FMU としてエクスポートされた CarMaker、サードパーティ製タイヤモデル、その他の協調シミュレーションツール。
- 暗号化または保護されたデータファイル。
- 上記以外のバージョンの CarMaker と MATLAB、複数の MATLAB セッションまたは CarMaker GUI の同時実行。
- 複数の単独実行の並列処理、単独実行の一時停止と再開、単独実行でのパラメータスタディ。
- 交通、センサー、運転支援機能を使用したテスト実行。これらを妨げる要因はありませんが、これまでの検証ではいずれも使用せずに車両ダイナミクスのシミュレーションを行っています。
各ツールの検証状況は docs/verification.mdに記載されています。 他の環境での報告も歓迎します。
要件
- Windows 10 または 11
- Python API を備えた IPG CarMaker(14.1.1 で開発)
- MATLAB 連携セッションの場合:CarMaker for Simulink と MATLAB R2022b 以降(使用する CarMaker が対応している範囲。[ステップ1](#1-check-your-machine)の表を参照。試験済みなのは R2024b のみ)
- uv(サーバーとその Python 環境を取得します。pip も使用できます。詳しくは docs/setup.mdを参照してください)
- MCP クライアント:Claude Code、Claude Desktop、GitHub Copilot を備えた VS Code、Codex、Antigravity、Cursor など
セットアップ
1. マシンを確認する
uvx carmaker-mcp doctor
これにより、CarMaker と MATLAB のインストール状況を確認し、適合しない点とその修正方法を示して、使用しているマシンに合った uvx の引数を表示します。引数は次のようになります。
uvx --python 3.12 --with matlabengine==24.2.* carmaker-mcp
追加の引数が2つ必要です。そのため、ツールが適切な値を割り出します。
--python 3.12は、CarMaker と MATLAB のリリースの両方で動作する Python のバージョンを選択します。この指定がないと、uvxが両方で使えない新しい Python を選ぶ場合があります。--with "matlabengine==24.2.*"は、お使いの MATLAB リリース用の MATLAB エンジンパッケージを追加します。スタンドアロン実行のみを使用する場合は省略してください。
どちらも MATLAB のリリースによって異なります。MathWorks はリリースごとに1つのエンジンパッケージを公開しており、それぞれインストールできる Python のバージョンが限られているためです。
| MATLAB | Python | uvx の引数 | リリースページのバンドル |
|---|---|---|---|
| R2024b | 3.12 | --python 3.12 --with "matlabengine==24.2.*" | ...-R2024b-py312.mcpb |
| R2024a | 3.11 | --python 3.11 --with "matlabengine==24.1.*" | ...-R2024a-py311.mcpb |
| R2023b | 3.11 | --python 3.11 --with "matlabengine==23.2.*" | ...-R2023b-py311.mcpb |
| R2023a | 3.10 | --python 3.10 --with "matlabengine==9.14.*" | ...-R2023a-py310.mcpb |
| R2022b | 3.10 | --python 3.10 --with "matlabengine==9.13.*" | ...-R2022b-py310.mcpb |
| なし(スタンドアロン実行のみ) | 3.12 | --python 3.12 | ...-standalone-py312.mcpb |
実際のソフトウェアで動作確認済みなのは R2024b の行のみです。それ以外は公開されているエンジンパッケージの要件に基づくもので、未テストです。報告をお待ちしています。MATLAB R2022a 以前は、エンジンパッケージがこのサーバーでサポートされているものより古い Python を必要とするため、MATLAB 接続セッションでは使用できません(スタンドアロン実行は引き続き動作します)。
CarMaker をインストールせずにツールを確認するには、次を実行してください。uvx carmaker-mcp --mock
2. MCP クライアントにサーバーを登録する
どのクライアントでも必要なものは同じです。コマンド uvx、手順 1 の引数、環境変数として設定する設定値です。通常、設定する値は次のとおりです。
CM_PROJECT:CarMaker プロジェクトのフォルダーです。CM_MATLAB_INIT:通常、プロジェクトの MATLAB スクリプト(フォルダーをパスに追加してモデルを開くもの)を実行して作業を始める場合は、そのスクリプト名をここに指定すると、エージェントも実行します。CM_MODEL:セッション開始時にエージェントが開く Simulink モデルです。MATLAB のパス上の名前、またはプロジェクトのsrc_cm4slフォルダーからの相対パスを指定します。省略すると、エージェントは見つかったモデルを提示し、その中から選ぶか、ユーザーに確認します。
以下からクライアントを選んでください。各例では MATLAB R2024b と Python 3.12 を想定しています。引数は doctor の出力に置き換えてください。または、シェルで設定されているすべての CM_ 変数を入力した状態で、サーバーにエントリーを書き込ませることもできます。
uvx carmaker-mcp config --client vscode # or claude-code, claude-desktop, codex, antigravity, cursor
Claude Code
ターミナルで実行します。
claude mcp add carmaker --env CM_PROJECT="C:\CM_Projects\my-project" --env CM_MODEL="MyModel" -- uvx --python 3.12 --with "matlabengine==24.2.*" carmaker-mcp
-- の前に --env NAME="value" を追加して、設定を追加できます。--scope project を指定すると、現在のフォルダーにある .mcp.json にエントリーが追加され、後から env ブロックを編集できます。指定しない場合は、いったん削除してから追加し直してください(claude mcp remove carmaker)。サーバーが接続されているかどうかは、claude mcp list で確認できます。
Claude Desktop
ワンクリックバンドル。 MATLAB のリリースに対応する .mcpb ファイルを最新リリースからダウンロードし(手順 1 の表にファイル名があります)、Settings > Extensions にドラッグします。ダイアログでプロジェクトフォルダー、モデル、およびプロジェクトにある場合は MATLAB のセットアップスクリプトを入力します。後から変更するには Configure をクリックします。バンドルに含まれるのはサーバーだけで、Python 環境は含まれません。Claude Desktop は初回使用時に uv で環境を構築するため、uv をインストールしておく必要があります。
手動で設定する場合。 Settings > Developer > Edit Config を開くと、claude_desktop_config.json が表示されます。エントリーを追加して、Claude Desktop を再起動します。
{
"mcpServers": {
"carmaker": {
"command": "uvx",
"args": ["--python", "3.12", "--with", "matlabengine==24.2.*", "carmaker-mcp"],
"env": {
"CM_PROJECT": "C:\\CM_Projects\\my-project",
"CM_MODEL": "MyModel"
}
}
}
}
GitHub Copilot in Visual Studio Code
ワークスペースに .vscode/mcp.json を作成します(すべてのワークスペースに設定する場合は、コマンドパレットで MCP: Open User Configuration を選択します)。
{
"servers": {
"carmaker": {
"type": "stdio",
"command": "uvx",
"args": ["--python", "3.12", "--with", "matlabengine==24.2.*", "carmaker-mcp"],
"env": {
"CM_PROJECT": "C:\\CM_Projects\\my-project",
"CM_MODEL": "MyModel"
}
}
}
}
エントリーの上にある Start をクリックしてから、エージェントモードで Copilot Chat を使用します。
Codex
ターミナルで実行します。
codex mcp add carmaker --env CM_PROJECT="C:\CM_Projects\my-project" --env CM_MODEL="MyModel" -- uvx --python 3.12 --with "matlabengine==24.2.*" carmaker-mcp
または、C:\Users\<username>\.codex\config.toml を編集します。
[mcp_servers.carmaker]
command = "uvx"
args = ["--python", "3.12", "--with", "matlabengine==24.2.*", "carmaker-mcp"]
env_vars = ["WINDIR"]
[mcp_servers.carmaker.env]
CM_PROJECT = "C:\\CM_Projects\\my-project"
CM_MODEL = "MyModel"
Codex は制限された環境でサーバーを起動します。env_vars = ["WINDIR"] を指定すると、MATLAB のライブラリに必要な Windows の環境変数が引き継がれます。
Antigravity
エージェントパネルで ... メニューを開き、MCP Servers > Manage MCP Servers > View raw config を選択します。開いた mcp_config.json にエントリーを追加して保存し、サーバーリストで Refresh をクリックします。
{
"mcpServers": {
"carmaker": {
"command": "uvx",
"args": ["--python", "3.12", "--with", "matlabengine==24.2.*", "carmaker-mcp"],
"env": {
"CM_PROJECT": "C:\\CM_Projects\\my-project",
"CM_MODEL": "MyModel"
}
}
}
}
Cursor and other clients
Cursor の場合は、プロジェクトに .cursor/mcp.json(すべてのプロジェクトに設定する場合は ~/.cursor/mcp.json)を作成し、Antigravity の例と同じ内容を記述します。ほとんどの他のクライアントも、同じ mcpServers 形式を使用します。
JSON と TOML では、Windows のパスはバックスラッシュを 2 つ重ねるか、スラッシュで記述してください。これまでこのサーバーで使用されたのは Claude Code のみです。他のエントリーは、各クライアントのドキュメントに記載されている形式に従っています。
3. セッションを開始する
たとえば、「CarMaker を起動して、制動テストを実行して」とエージェントに依頼します。まだ開いていない場合は MATLAB、モデル、CarMaker GUI を開きますが、何も終了しません。
自分で MATLAB と CarMaker を開く場合は、サーバーが接続できるように、MATLAB セッションごとに 1 回実行するか(または startup.m に記述します)。
matlab.engine.shareEngine('cm_mcp')
スタンドアロンの実行では、どちらも必要ありません。
MATLAB MCP サーバーと併用する
CarMaker for Simulink で作業する場合は、MathWorks の MATLAB MCP Core Server も接続すると便利です。これは任意であり、 単独で実行する場合は必要ありません。2 つのサーバーはそれぞれ異なる役割を担います。
| サーバー | 用途 |
|---|---|
| carmaker-mcp | CarMaker 側の操作:セッション、テスト実行、実行制御、結果、プロジェクトデータ、変更ログと取り消し機能を備えたコントローラーパラメーター |
| MATLAB MCP server | MATLAB 側の操作:MATLAB コードの作成、確認、実行(後処理スクリプト、プロット)、および Simulink モデルの確認 |
両方を使う際に知っておくべきこと:
- 同じ MATLAB セッションで両方を動作させます(開いている MATLAB を使うよう MATLAB サーバーを設定してください。詳細はその README を参照してください)。 こうすることで、両方から同じモデルとワークスペースを参照できます。開発中はこの方法で両方を使用しました。
- MATLAB は一度に 1 つの処理しか実行できません。モデルのコンパイル中やシミュレーションの実行中は、MATLAB サーバー経由の呼び出しは待機します。このサーバーの実行ツールはその動作を考慮し、時間制限付きの待機を繰り返すように設計されています。
- 実行の開始と停止には、このサーバーのツールを使います。これにより、実行(結果ファイル、エラー、保存モード)を追跡できます。
- MATLAB サーバー経由でスクリプトを実行すると、MATLAB の作業フォルダーが CarMaker プロジェクトの外に移動することがあります。その場合、CarMaker for Simulink は次回の起動時にプロジェクトディレクトリについて確認を求め、起動を停止します。このサーバーは、テスト実行を読み込む前または開始する前にフォルダーを元に戻し、そのことを結果に表示します。
- MATLAB サーバー経由で行った変更は、このサーバーの変更ログには記録されず、
cm_revert_allでも取り消されません。 - 複数の MATLAB リリースがインストールされている場合は、MATLAB サーバーが CarMaker と同じリリースで動作するようにしてください(リリース名は
carmaker-mcp doctorで確認できます)。MATLAB サーバーがより新しいリリースを起動すると、モデルも CarMaker セッションも認識できません。
1 つの CarMaker で複数の会話を行う場合。 クライアントと会話ごとにそれぞれサーバーが起動しますが、すべて同じ MATLAB と CarMaker を操作します。そのうち 1 つがパラメータースタディを実行している間、ほかのサーバーは読み込み、開始、停止を拒否し、誰が何を実行しているかを表示します。cm_status では study_running と表示されます。スタディ以外ではこのような制御は行われないため、2 つの会話がそれぞれ単一実行を開始すると、互いに干渉します。
設定
設定はすべてクライアントのエントリーにある環境変数で、上記の CM_PROJECT や CM_MODEL のように設定します。
共通
| 変数 | デフォルト | 意味 |
|---|---|---|
CM_PROJECT | 実行中の CarMaker GUI から読み込み | CarMaker のプロジェクトフォルダーです。サーバーが書き込みを行うのはこのフォルダーだけです。セッションを新規に開始する場合に必要です |
CM_MODEL | なし | セッション開始時に開く Simulink モデルです |
CM_MATLAB_INIT | なし | プロジェクト独自の MATLAB セットアップスクリプト(src_cm4sl 内、またはフルパス)です。セッション開始時に一度実行されます。通常、フォルダーをパスに追加してモデルを開くスクリプトを実行する場合に指定してください。指定しないとモデルをコンパイルできない場合があります |
CM_POPUP_TIMEOUT | 未設定 | CarMaker のポップアップがデフォルトの選択肢で自動応答するまでの秒数です。これにより、質問によって実行がブロックされることを防げます。未設定の場合は、クリックされるまで待機します。安全性を参照してください |
CM_DISABLE | なし | モデルのツール一覧を短くするために無効にするツールグループです。standalone、study、matlab、movie を指定します |
CM_ENABLE | なし | 有効にするオプションのツールです。tcl(CarMaker GUI での生の Tcl)、experimental(Simulink ブロックの追加と削除)を指定します |
詳細設定
| 変数 | デフォルト | 意味 |
|---|---|---|
CM_HOME | 最新の C:\IPG\carmaker\win64-* | CarMaker のインストールフォルダーです |
CM_MATLAB_EXE | CarMaker がサポートする、インストール済みの最新 MATLAB | セッションの開始に使用する MATLAB 実行ファイルです |
CM_MATLAB_DIR | <project>/src_cm4sl | MATLAB の起動フォルダーです(cmenv.m がある場所) |
CM_MATLAB_SESSION | cm_mcp | MATLAB がエンジンを共有する際の名前です |
CM_RESULT_DIRS | なし | 結果ファイルの検索対象に追加するフォルダーです |
CM_STATE_DIR | %USERPROFILE%\.carmaker-mcp | バックアップ、変更ログ、server.log の保存先です(プロジェクト内には保存されません)。MATLAB と CarMaker からもこのフォルダーが見える必要があるため、AppData の下には置かないでください |
CM_ENGINE_TIMEOUT | 30 | MATLAB への呼び出しを中止するまでの秒数です |
CM_LOG_LEVEL | INFO | server.log の詳細度です |
ツール
各ツールは、読み取り専用か、状態を変更するか、破壊的な操作を行うかをクライアントに伝えるため、必要に応じてクライアントは確認を求められます。各パラメーターの説明は docs/tools.mdにあります。
セッションと実行
| ツール | 内容 |
|---|---|
cm_session_start | MATLAB、モデル、CarMaker GUIのうち、起動していないものを起動します |
cm_doctor | セットアップを確認し、問題の修正方法を案内します |
cm_status | シミュレーションの状態、アクティブなモデル、プロジェクトフォルダーを表示します |
cm_load_testrun | CarMaker GUIにテストランを読み込みます |
cm_start_sim, cm_stop_sim | シミュレーションを開始・停止します。実行時には、デフォルトで結果ファイルが書き込まれます |
cm_wait_end | 実行の終了を待ち、終了ステータス、シミュレーション時間、距離、結果ファイルを返します |
cm_live | シミュレーションの実行中に量を読み取ります |
cm_dva_write, cm_dva_release | 実行中に量を上書きします(Direct Variable Access) |
cm_log | たとえば実行が中断された後などに、CarMakerのセッションログを読み取ります |
cm_popups, cm_popup_timeout | CarMaker GUIの確認や報告内容を表示し、ポップアップに自動で応答させます |
結果
| ツール | 内容 |
|---|---|
cm_results_list | 最新の結果ファイルを表示します |
cm_results_summary | 結果ファイル内の量の最初、最後、最小、最大、平均を表示します。量の名前を検索できます |
cm_results_read | 結果ファイルから時系列データを読み取ります |
cm_output_quantities, cm_output_quantities_edit | 実行時に結果ファイルへ書き込まれる量を確認し、追加または削除します |
cm_movie_open, cm_movie_snapshot | IPGMovieを開き、3Dビューの画像を取得します。直近の実行または結果ファイルの任意の時点を指定できます |
プロジェクトデータとパラメーター
| ツール | 内容 |
|---|---|
cm_list, cm_read | テストラン、車両、ドライバー、タイヤ、その他のプロジェクトファイルを一覧表示して読み取ります |
cm_edit, cm_clone, cm_create | プロジェクトファイルのキーを変更します(編集した行のみが変更されます)。ファイルをコピーするか、新規作成します |
cm_list_workspace_vars, cm_get_workspace_var, cm_set_workspace_var | MATLABのベースワークスペースとSimulinkモデルワークスペースを操作します。通常、コントローラーパラメーターはここにあります |
cm_model_get, cm_model_set, cm_model_save | Simulinkのブロックとモデルのパラメーターを操作し、モデルを保存します |
cm_model_logs_save | 実行後、Simulinkが記録したデータ(記録された信号、To Workspaceブロック)と両方のワークスペースをMATファイルに保存します。cm_start_simおよびcm_study_startのsave_logsを使用すると、すべての実行で自動的に保存されます |
cm_study_start, cm_study_wait, cm_study_status, cm_study_cancel | ファイルを変更せずに、複数のパラメーターセットで1つのテストランを実行し、結果を表にまとめます |
スタンドアロン実行(MATLABなし)
| ツール | 内容 |
|---|---|
cm_standalone_launch | 独立したCarMakerプロセスを起動し、そのプロセスでテストランを実行します |
cm_standalone_status, cm_standalone_wait_end, cm_standalone_results | 実行の状況を確認し、結果ファイルを取得します |
cm_standalone_control, cm_standalone_dva_write | 一時停止、再開、停止を行い、量を上書きします |
cm_standalone_servers, cm_standalone_attach | すでに実行中のCarMakerプログラムを見つけて接続します |
cm_standalone_close | プロセスを停止します |
履歴
| ツール | 内容 |
|---|---|
cm_changelog | このセッションで変更された内容を、変更前と変更後の値とともに表示します |
cm_revert_all | このセッションでの変更をすべて取り消します |
cm_restore | 以前のセッションのバックアップからファイルを復元します |
サーバーは、リソース(carmaker://guide、carmaker://status、carmaker://changelog、
carmaker://log)と3つのプロンプト(run_and_summarise、compare_settings、undo_session)も提供します。
安全性とプライバシー
このサーバーはシミュレーションを開始し、プロジェクトファイルと実行中の Simulink モデルをその場で編集できます。信頼できるエージェントのみを接続してください。
作業を保護する仕組み:
- 各ファイルは最初に変更する前にバックアップされ、変更のたびに変更前の値がログに記録されます。また、
cm_revert_allを実行するとセッションの変更を元に戻せます。 - ファイルへの書き込みはプロジェクトフォルダー内に限られ、シミュレーションが停止しているときだけ行われます。プロジェクトファイルを削除するツールはありません。
- 生の Tcl と Simulink 構造の編集は、
CM_ENABLEで有効にしない限り無効です。 - デフォルトでは、CarMaker のポップアップはクリックされるまで待機します。
CM_POPUP_TIMEOUTを設定すると、「Vehicle not saved. All changes will be lost. OK to continue?」のような質問にはデフォルトの回答が適用され、CarMaker GUI の未保存の変更は破棄されます。
実行時に生成される結果ファイルとログファイルは、プロジェクトの SimOutput フォルダーに書き込まれます。変更を元に戻しても、これらは削除されません。
このサーバーはテレメトリを収集せず、独自にネットワーク接続を確立することもありません。お使いのマシン上の MATLAB と CarMaker とのみ通信します。詳細: docs/safety.md。
トラブルシューティング
まず uvx carmaker-mcp doctor を実行してください。ほとんどのセットアップの問題と、その解決方法が表示されます。
| 症状 | 原因と解決方法 |
|---|---|
| 「No shared MATLAB session」 | MATLAB が終了しているか、エンジンを共有していません。エージェントにセッションを開始させるか、MATLAB で matlab.engine.shareEngine('cm_mcp') を実行してください |
matlabengine のインストール中に uvx が失敗する | 指定するバージョンは MATLAB のリリースと一致している必要があり、その MATLAB がインストールされている必要があります。doctor が表示する引数を使用してください |
| 「CarMaker ships no cmapi for Python 3.x」 | --python 3.12(またはメッセージに表示される別のバージョン)を追加してください |
| 読み込みまたは開始時にツール呼び出しが停止する | CarMaker GUI に確認の質問が表示されています。回答するか、CM_POPUP_TIMEOUT を確認してください |
| 単独実行時に「too many licenses in use」と表示される | CarMaker for Simulink を使用している MATLAB が開いており、ライセンスを保持しています。そのモデルまたは MATLAB を閉じてください |
待機ツールが finished: false を返す | エラーではありません。1 回の呼び出しでの待機時間は最大 45 秒で、待機は繰り返し実行されます |
詳細:docs/troubleshooting.md。
サーバー独自のログは、状態フォルダー内の server.log です。
仕組み
- MATLAB 接続セッション: サーバーは MATLAB Engine for Python を通じて MATLAB に接続し、CarMaker for Simulink 独自の
cmguicmd(GUI の Tcl/ScriptControl インターフェース)を介して CarMaker GUI にコマンドを送信します。 - 単独実行: CarMaker の別プロセスを起動して制御するために、CarMaker のインストール先から読み込んだ IPG の Python API
cmapiを使用します。 - プロジェクトファイルは CarMaker の infofile 形式に対応したバイト列を保持するエディターで編集され、結果は
.ergファイル用の NumPy リーダーで読み取られます(MATLAB のcmreadと照合済み)。
IPG または MathWorks の製品は同梱も再配布もされません。
ドキュメントと貢献
- 詳細なセットアップ手順(pip、更新、単一ファイル実行可能ファイル)
- セッションの例
- ツールリファレンス
- 検証済みの項目
- 貢献:ほかの CarMaker および MATLAB バージョンでのテストレポートを特に歓迎します
- セキュリティポリシー
関連プロジェクト:pycarmaker は、単独実行の CarMaker プログラムのコマンドポートと通信します。このプロジェクトは CarMaker for Simulink にも対応し、IPG 独自のインターフェースを使用しており、pycarmaker とのコードの共有はありません。
ライセンス
MIT。詳細は LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。