mcpField
C
CarMaker

CarMaker

ローカル
github.com/dimitr-io科学・教育21 週間前に更新

CarMaker について

CarMakerは、車両運動やコントローラーのテストを行うAIエージェント向けの非公式MCPサーバーです。IPG CarMakerの単独実行とCarMaker for Simulinkのセッションに対応し、変更履歴と取り消し機能を備えています。現在はアルファ版です。

主な機能

  1. 01CarMakerセッションの開始とテスト実行
  2. 02`.erg`結果ファイルの読み取り
  3. 03車両データとSimulink制御パラメーターの編集
  4. 04変更履歴の確認と変更の取り消し
  5. 05単独実行とSimulinkセッションへの対応

活用シーン

  1. 01制動やレーンチェンジのテスト結果を確認
  2. 02車両質量ごとの横加速度を比較
  3. 03制御パラメーターを変えてテストを再実行
  4. 04エージェントによる変更を取り消す

MCP 対応

MCPサーバーは、ローカルのIPG CarMakerセッション、テスト実行、`.erg`結果、プロジェクトデータ、制御パラメーター操作をMCPクライアントに公開します。MATLAB接続にはCarMaker for SimulinkとMATLABが必要ですが、単独実行では不要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dimitr-io-carmaker": {
"command": "uvx",
"args": [
"carmaker-mcp"
],
"env": {
"CM_PROJECT": "<CM_PROJECT>",
"CM_MODEL": "<CM_MODEL>",
"CM_MATLAB_SESSION": "<CM_MATLAB_SESSION>",
"CM_POPUP_TIMEOUT": "<CM_POPUP_TIMEOUT>",
"CM_ENABLE": "<CM_ENABLE>",
"CM_DISABLE": "<CM_DISABLE>"
}
}
}
}
起動コマンドuvx carmaker-mcp
設定が必要な環境変数
CM_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypicarmaker-mcp0.2.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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 のバージョンが限られているためです。

MATLABPythonuvx の引数リリースページのバンドル
R2024b3.12--python 3.12 --with "matlabengine==24.2.*"...-R2024b-py312.mcpb
R2024a3.11--python 3.11 --with "matlabengine==24.1.*"...-R2024a-py311.mcpb
R2023b3.11--python 3.11 --with "matlabengine==23.2.*"...-R2023b-py311.mcpb
R2023a3.10--python 3.10 --with "matlabengine==9.14.*"...-R2023a-py310.mcpb
R2022b3.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-mcpCarMaker 側の操作:セッション、テスト実行、実行制御、結果、プロジェクトデータ、変更ログと取り消し機能を備えたコントローラーパラメーター
MATLAB MCP serverMATLAB 側の操作: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_EXECarMaker がサポートする、インストール済みの最新 MATLABセッションの開始に使用する MATLAB 実行ファイルです
CM_MATLAB_DIR<project>/src_cm4slMATLAB の起動フォルダーです(cmenv.m がある場所)
CM_MATLAB_SESSIONcm_mcpMATLAB がエンジンを共有する際の名前です
CM_RESULT_DIRSなし結果ファイルの検索対象に追加するフォルダーです
CM_STATE_DIR%USERPROFILE%\.carmaker-mcpバックアップ、変更ログ、server.log の保存先です(プロジェクト内には保存されません)。MATLAB と CarMaker からもこのフォルダーが見える必要があるため、AppData の下には置かないでください
CM_ENGINE_TIMEOUT30MATLAB への呼び出しを中止するまでの秒数です
CM_LOG_LEVELINFOserver.log の詳細度です

ツール

各ツールは、読み取り専用か、状態を変更するか、破壊的な操作を行うかをクライアントに伝えるため、必要に応じてクライアントは確認を求められます。各パラメーターの説明は docs/tools.mdにあります。

セッションと実行

ツール内容
cm_session_startMATLAB、モデル、CarMaker GUIのうち、起動していないものを起動します
cm_doctorセットアップを確認し、問題の修正方法を案内します
cm_statusシミュレーションの状態、アクティブなモデル、プロジェクトフォルダーを表示します
cm_load_testrunCarMaker 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_timeoutCarMaker GUIの確認や報告内容を表示し、ポップアップに自動で応答させます

結果

ツール内容
cm_results_list最新の結果ファイルを表示します
cm_results_summary結果ファイル内の量の最初、最後、最小、最大、平均を表示します。量の名前を検索できます
cm_results_read結果ファイルから時系列データを読み取ります
cm_output_quantities, cm_output_quantities_edit実行時に結果ファイルへ書き込まれる量を確認し、追加または削除します
cm_movie_open, cm_movie_snapshotIPGMovieを開き、3Dビューの画像を取得します。直近の実行または結果ファイルの任意の時点を指定できます

プロジェクトデータとパラメーター

ツール内容
cm_list, cm_readテストラン、車両、ドライバー、タイヤ、その他のプロジェクトファイルを一覧表示して読み取ります
cm_edit, cm_clone, cm_createプロジェクトファイルのキーを変更します(編集した行のみが変更されます)。ファイルをコピーするか、新規作成します
cm_list_workspace_vars, cm_get_workspace_var, cm_set_workspace_varMATLABのベースワークスペースとSimulinkモデルワークスペースを操作します。通常、コントローラーパラメーターはここにあります
cm_model_get, cm_model_set, cm_model_saveSimulinkのブロックとモデルのパラメーターを操作し、モデルを保存します
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 の製品は同梱も再配布もされません。

ドキュメントと貢献

関連プロジェクト:pycarmaker は、単独実行の CarMaker プログラムのコマンドポートと通信します。このプロジェクトは CarMaker for Simulink にも対応し、IPG 独自のインターフェースを使用しており、pycarmaker とのコードの共有はありません。

ライセンス

MIT。詳細は LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。