CarMaker
PYPI · CARMAKER-MCP
Drive IPG CarMaker for Simulink: run test runs, read results, edit vehicle data and parameters.
Available components
Last scanned (6 hours ago)
Scores higher than 93% of PyPI servers
Category Testing and QA
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- 1 of 16 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to dimitr-io/carmaker-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability78
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 8019 tokens (~138/item across 58 items; 54 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management57
- Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (93% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 56 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +16
- Malware scan: unverified → pass ▲ security
- 4 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- 2 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 0
- Stability: 0.40 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Schema quality: 106 → 138 ▼ functional
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Package version: 0.2.2 → 0.3.0 functional
- 30 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 25 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed pypi/carmaker-mcp@0.3.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | dimitr-io/carmaker-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/dimitr-io/carmaker-mcp/.github/workflows/release.yml@refs/tags/v0.3.0 |
| Rekor log index | 3634638913 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:8119a31ef770373f7ce5c9f0d28754822651ceee99d356629e333db20427e6ca |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | setuptools.build_meta |
Background: Why install scripts are a supply-chain risk →
Dependencies 16 packages
| Packages resolved | 16 |
|---|---|
| Stale | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
cm_changelog Change log ~62
Recorded changes (file keys, workspace variables, model parameters, GUI settings) with old and new values.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Newest entries to return |
| session | – | – | Session id (default: this session; 'all' for every session) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
cm_clone Copy a project data file ~97
Copy a project file to a new name in the same kind's folder. Never overwrites. A copied test run keeps the source's driver and knowledge (`driver`): check them for another vehicle.
| Name | Type | Req | Description |
|---|---|---|---|
| base | string | yes | Existing file to copy |
| kind | string | yes | Kind of project data; selects the folder below <project>/Data |
| new_name | string | yes | Name of the copy (must not exist) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_create Create a project data file ~125
Write a new project file, for example a tyre property file that differs from an existing one. Never overwrites; the file is logged and cm_revert_all moves it to the trash folder. To change a file that exists use cm_edit, to copy one cm_clone.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | The whole text of the file, at most 2 MB |
| kind | string | yes | Kind of project data; selects the folder below <project>/Data |
| name | string | yes | Name of the new file relative to the kind's folder (must not exist) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_diff Compare two project data files ~96
Keys only in a, only in b, and those whose values differ ([a, b]), e.g. two vehicles or a test run and its clone.
| Name | Type | Req | Description |
|---|---|---|---|
| a | string | yes | First file, relative to the kind's folder |
| b | string | yes | Second file |
| kind | string | yes | Kind of project data; selects the folder below <project>/Data |
| prefix | – | – | Only keys starting with this |
Structured output declared, but exposes no named fields.
No examples provided.
cm_doctor Check the setup ~68
Check the setup: CarMaker install, Python version, MATLAB release and engine, shared MATLAB session, GUI, project folder. Each failed check comes with its fix. ok: at least one mode is ready (see ready); all_checks_passed: everything, the MATLAB session included.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
cm_driver_adaption Driver adaption ~294
Let IPGDriver learn the car (basic) or the car on this circuit (race), and save the knowledge. It takes minutes (basic about 2 standalone, 5 to 20 with MATLAB; race as long as the test run allows): run it only when the car changed noticeably, the race driver lacks knowledge, or the user asks, and tell the user the duration first. Start returns at once; then 'wait' until state is done/failed.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | wait: until it ends or timeout_s. close: end the CarMaker GUI the server opened for standalone adaptions (it stays open for the next one; it ends with the server) |
| kind | string | – | basic: learn the car (needed first); race: laps of a closed circuit |
| knowledge | – | – | Knowledge set to learn into (default: the active one, else DefaultDriverKnowledge) |
| learning_rate | number | – | race: 0 sensitive .. 1 aggressive |
| mode | string | – | auto: the MATLAB session if connected |
| save | boolean | – | Save the knowledge (template file or test run; backed up) |
| testrun | – | – | Load this test run first (needed standalone) |
| timeout_s | number | – | Longest time to wait in s, at most 50 (larger values are cut to 50); call again if not finished |
Structured output declared, but exposes no named fields.
No examples provided.
cm_dva_release Release DVA overrides ~18
Release all quantities from DVA control.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
cm_dva_write Overwrite a quantity (DVA) ~98
Overwrite a quantity during a run via Direct Variable Access.
| Name | Type | Req | Description |
|---|---|---|---|
| duration_ms | integer | – | How long the override lasts in ms (-1: until released or the run ends) |
| mode | string | – | Absolute value, offset or factor; Ramp variants blend in |
| name | string | yes | Quantity to overwrite, e.g. 'DM.Gas' |
| value | number | yes | Value, offset or factor, depending on mode |
Structured output declared, but exposes no named fields.
No examples provided.
cm_edit Edit a project data file ~139
Change keys in a project file in place (backed up first, logged; only the edited lines change). Requires an idle simulation; load the test run again afterwards. Driver parameters belong in the driver template (kind 'driver', 'Template/<name>'), which other test runs share: say which changed.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | Kind of project data; selects the folder below <project>/Data |
| name | string | yes | File name relative to the kind's folder |
| overrides | object | yes | Keys to set, e.g. {'Road.FName': 'SKIDPAD.rd5'}; a null value removes the key |
Structured output declared, but exposes no named fields.
No examples provided.
cm_get_workspace_var Read a workspace variable ~84
Value of a variable or field. MATLAB objects are described, not converted: read their fields.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Variable or field, e.g. 'Kp_12' or 'Table.Value' |
| scope | string | – | 'base' for the MATLAB base workspace, or the name of a loaded Simulink model for that model's workspace |
No output schema declared.
No examples provided.
cm_guide Read a section of the guide ~51
A section of this server's guide (the same text as the resource carmaker://guide).
| Name | Type | Req | Description |
|---|---|---|---|
| topic | – | – | e.g. 'ipgdriver', 'driver', 'parameters'; none lists the topics |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
cm_list List project data files ~81
Names of project data files of one kind (test runs, vehicles, drivers, tyres...).
| Name | Type | Req | Description |
|---|---|---|---|
| include_hidden | boolean | – | Also list names starting with a dot |
| kind | string | yes | Kind of project data; selects the folder below <project>/Data |
| pattern | – | – | Wildcard filter on the name, e.g. '*Brak*' |
Structured output declared, but exposes no named fields.
No examples provided.
cm_list_workspace_vars List workspace variables ~92
Variables (name, class, size) of the MATLAB base workspace or of a Simulink model's workspace. Controller parameters usually live in the model workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| pattern | – | – | Wildcard filter on the name, e.g. 'Kp_*' |
| scope | string | – | 'base' for the MATLAB base workspace, or the name of a loaded Simulink model for that model's workspace |
Structured output declared, but exposes no named fields.
No examples provided.
cm_live Read live quantities ~46
Current values of CarMaker quantities during a run (or the last values after it).
| Name | Type | Req | Description |
|---|---|---|---|
| quantities | array | yes | CarMaker quantity names, e.g. ['Time', 'Car.v'] |
Structured output declared, but exposes no named fields.
No examples provided.
cm_load_testrun Load a test run ~89
Load a test run into the CarMaker GUI. Requires an idle simulation. Find names with cm_list('testrun').
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | Do not let the GUI ask about unsaved data; that data is discarded |
| name | string | yes | Test run relative to Data/TestRun, e.g. 'Examples/BasicFunctions/Driver/BackAndForth' |
Structured output declared, but exposes no named fields.
No examples provided.
cm_log Read the CarMaker session log ~65
Last lines of the newest CarMaker session log of the project. Use it when a run aborts or does not start.
| Name | Type | Req | Description |
|---|---|---|---|
| level | string | – | warning: warnings and errors only; error: errors only |
| lines | integer | – | Number of lines from the end |
Structured output declared, but exposes no named fields.
No examples provided.
cm_model_get Read a Simulink parameter ~58
get_param on a loaded Simulink model or block.
| Name | Type | Req | Description |
|---|---|---|---|
| param | string | yes | Parameter name, e.g. 'Gain' |
| path | string | yes | Model or block path, e.g. 'MyModel/Controller/Gain' |
No output schema declared.
No examples provided.
cm_model_logs_save Save Simulink's logged data to a MAT file ~300
After a CarMaker for Simulink run: write what Simulink logged (signals marked for logging and To Workspace blocks) to a MAT file, with the base workspace and the model workspace as one struct each (variables: signals, base_workspace, model_workspace, info); the answer lists signal_names. Requires an idle simulation. The result file (.erg) holds CarMaker's quantities, this the Simulink side. To see whether a signal is logged, run with save_logs=true and read signal_names.
| Name | Type | Req | Description |
|---|---|---|---|
| base_workspace | boolean | – | Include the base workspace's variables |
| file | – | – | MAT file to write, inside the project (default: next to the last result file, with the same name) |
| format | string | – | dataset: a Simulink.SimulationData.Dataset. struct: plain arrays (name, time, values, units, block) that load without Simulink |
| logs | string | – | inspector: every signal the Simulation Data Inspector holds for the last run (logged signals and To Workspace blocks, complete). workspace: the logging variables in the base workspace as they are |
| model | – | – | Loaded Simulink model (default: the active one) |
| model_workspace | boolean | – | Include the model workspace's variables |
| overwrite | boolean | – | Replace the file if it exists |
| timeout_s | number | – | Longest time MATLAB may take to write the file |
Structured output declared, but exposes no named fields.
No examples provided.
cm_model_save Save a Simulink model ~43
Save a loaded Simulink model. The file must be inside the project; it is backed up first.
| Name | Type | Req | Description |
|---|---|---|---|
| model | string | yes | Name of the loaded model |
Structured output declared, but exposes no named fields.
No examples provided.
cm_model_set Set a Simulink parameter ~85
set_param on a loaded Simulink model or block. Logged; cm_revert_all restores the old value.
| Name | Type | Req | Description |
|---|---|---|---|
| param | string | yes | Parameter name |
| path | string | yes | Model or block path |
| save | boolean | – | Also back up and save the model file |
| value | – | yes | New value (numbers are converted to text as Simulink expects) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_movie_open Open IPGMovie ~111
Open IPGMovie, CarMaker's 3D animation window (or take over one that is open). Open it BEFORE a run: it records a run only while it is open, and cm_movie_snapshot can then show any moment of it. Needs the MATLAB session; without it use cm_standalone_launch(movie=true).
| Name | Type | Req | Description |
|---|---|---|---|
| restart | boolean | – | Close a running IPGMovie and start it anew: the way out when its pictures fail with an internal error. It then holds no run |
Structured output declared, but exposes no named fields.
No examples provided.
cm_movie_snapshot Take a picture in IPGMovie ~285
A picture of IPGMovie's 3D view, returned as an image. After a run it shows any moment of the last run (time_s), provided IPGMovie was open during that run. During a run, without time_s, it shows the IPGMovie window as it is at that moment (in the window's own size). With erg it replays a saved result file, which must hold the vehicle's motion (cm_output_quantities_edit(preset='movie') before that run). Do not pass time_s during a run: that makes IPGMovie stop following the run. Needs the MATLAB session's IPGMovie (cm_movie_open); a standalone IPGMovie (movie=true) has no pictures.
| Name | Type | Req | Description |
|---|---|---|---|
| camera | – | – | Camera view: 'DEFAULT', "Bird's Eye View", 'Left Side', 'Right Side', 'Sitting In Vehicle (A)', or one from the project (default: keep the view) |
| erg | – | – | Replay this result file instead of the last run (absolute path, or relative to the project) |
| height | integer | – | Picture height in pixels (not during a run) |
| time_s | – | – | Simulation time of the picture in s (default: the latest moment IPGMovie holds) |
| width | integer | – | Picture width in pixels (not during a run) |
No output schema declared.
No examples provided.
cm_output_quantities Read the output quantities ~73
The quantities the next run writes to its result file, per storage rate (names may hold wildcards), with the sample times. movie_replay says whether such a result file can be replayed in IPGMovie. What a finished result file holds: cm_results_summary(erg, search='*').
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
cm_output_quantities_edit Change the output quantities ~160
Add quantities to, or remove them from, the project's output-quantities file (backed up first, logged, restored by cm_revert_all). Applies from the next start. Requires an idle simulation. Find names with cm_live (it reads any quantity) or in another result file.
| Name | Type | Req | Description |
|---|---|---|---|
| add | – | – | Quantities to store as well, e.g. ['Car.az', 'PT.Motor*.Trq']; wildcards * and ? allowed |
| preset | – | – | movie: add what IPGMovie needs to replay the vehicle from a result file |
| rate | string | – | Storage rate for added quantities (sample times: cm_output_quantities) |
| remove | – | – | Entries to take out, spelled as they are listed |
Structured output declared, but exposes no named fields.
No examples provided.
cm_popup_timeout Let GUI pop-ups answer themselves ~125
Let GUI pop-ups raised by this server's commands answer themselves with their DEFAULT choice, so that a question such as 'Vehicle not saved. All changes will be lost. OK to continue?' cannot block a run. The default answer there discards the unsaved changes. Read what was answered with cm_popups. Stays until set back, cm_revert_all or a GUI restart.
| Name | Type | Req | Description |
|---|---|---|---|
| seconds | number | yes | Seconds until a pop-up answers itself; 0 = never shown; -1 = wait for a click in the GUI (the normal setting) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_popups Read GUI pop-ups ~125
Pop-up messages the CarMaker GUI raised for this server's commands (type info/warn/err/question, text, index of the answer given) and the current pop-up timeout. Also the "Internal Debugger" dialog that the GUI or IPGMovie shows after an error of its own (type 'internal error', with the program and the call stack): it is read and then closed. Reading empties the GUI's buffer (it keeps five). cm_load_testrun, cm_start_sim and cm_wait_end already return new ones as 'popups'.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
cm_read Read a project data file ~194
Key / value pairs of a CarMaker infofile, 300 at a time: filter by keys, prefix or search, or page with offset. For a test run first `driver` (its template or 'TestRun', knowledge, main limits) and, also for a vehicle, `standalone`: false names the vehicle's Simulink parts (runs need the MATLAB session).
| Name | Type | Req | Description |
|---|---|---|---|
| keys | – | – | Only these keys |
| kind | string | yes | Kind of project data; selects the folder below <project>/Data |
| name | string | yes | File name relative to the kind's folder, as cm_list returns it |
| offset | integer | – | Skip this many keys (paging: next_offset) |
| prefix | – | – | Only keys starting with this, e.g. 'Vehicle' or 'DrivMan.' |
| search | – | – | Only keys containing this, any case, e.g. 'Control.Kind' |
Structured output declared, but exposes no named fields.
No examples provided.
cm_restore Restore files of an earlier session ~37
Restore project files from the backups of an earlier session. Files only.
| Name | Type | Req | Description |
|---|---|---|---|
| session | string | yes | Session id as shown by cm_changelog |
Structured output declared, but exposes no named fields.
No examples provided.
cm_results_crossings Times at which a quantity reaches values ~152
Interpolated times at which a quantity crosses each value, and the time between the first crossings of consecutive values (lap or sector times from distance gates); with `at`, the values of other quantities there (the speed at 75 m).
| Name | Type | Req | Description |
|---|---|---|---|
| at | – | – | Other quantities to read at each first crossing, e.g. ['Car.v', 'Car.ax'] |
| direction | string | – | Which crossings |
| erg | string | yes | Result file (.erg): absolute path, or relative to the project |
| quantity | string | yes | e.g. 'Car.Distance' for gates along the course |
| values | array | yes | Values to find, e.g. gate distances in m |
Structured output declared, but exposes no named fields.
No examples provided.
cm_results_export Export a result file ~172
Write quantities of a result file at full resolution (no thinning) to a MAT file (one double variable per quantity, dots as underscores, plus quantity_names and units) or a CSV file (header 'Time [s],Car.v [m/s],...': name and unit), in any folder of this computer. Never overwrites.
| Name | Type | Req | Description |
|---|---|---|---|
| erg | string | yes | Result file (.erg): absolute path, or relative to the project |
| file | – | – | Target .mat or .csv (absolute, or relative to the result file's folder); default next to it |
| format | string | – | When file is not given |
| quantities | – | – | Default: all |
| t_max | – | – | End of the time window in s |
| t_min | – | – | Start of the time window in s |
Structured output declared, but exposes no named fields.
No examples provided.
cm_results_list List result files ~48
Newest .erg result files under the project's SimOutput folder, CM_RESULT_DIRS and the folders this session's runs wrote to.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of files |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
cm_results_plot Plot result files in IPGControl ~159
Plot quantities of result files in IPGControl, IPG's plotting program; needs no MATLAB. The window stays open for the user (the next plot replaces it) and a picture comes back as an image. This server has no MATLAB evaluation: for MATLAB figures use a MATLAB server, or cm_results_export.
| Name | Type | Req | Description |
|---|---|---|---|
| ergs | array | yes | Result files (.erg), absolute or relative to the project; several are overlaid |
| picture | boolean | – | Also return a picture of the plot |
| quantities | array | yes | Quantities to plot, e.g. ['Car.ay', 'Car.YawRate'] |
| x | – | – | Quantity for the x axis (default: Time), e.g. 'Car.Distance' |
No output schema declared.
No examples provided.
cm_results_read Read time series from a result file ~111
Time series from a result file, decimated to at most max_points samples.
| Name | Type | Req | Description |
|---|---|---|---|
| erg | string | yes | Result file (.erg): absolute path, or relative to the project |
| max_points | integer | – | Samples are thinned to at most this many per quantity |
| quantities | array | yes | CarMaker quantity names, e.g. ['Time', 'Car.v'] |
| t_max | – | – | End of the time window in s |
| t_min | – | – | Start of the time window in s |
Structured output declared, but exposes no named fields.
No examples provided.
cm_results_summary Summarise a result file ~103
First / last / min / max / mean and unit of quantities in a result file, plus rows and duration.
| Name | Type | Req | Description |
|---|---|---|---|
| erg | string | yes | Result file (.erg): absolute path, or relative to the project |
| quantities | – | – | Quantities to summarise (default: Time, Car.v) |
| search | – | – | Instead of a summary, list the quantity names that contain this text ('PT.') or match this wildcard pattern ('Car.v*'; '*' lists all) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_revert_all Undo this session's changes ~47
Undo every change made in this server session: workspace values and model parameters in reverse order, backed-up files put back (created files go to a trash folder), GUI settings restored.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
cm_session_start Start the CarMaker for Simulink session ~247
Bring up a CarMaker for Simulink session as far as it is missing: start MATLAB (visible, in the project's src_cm4sl folder, engine shared), run cmenv, open the Simulink model and open the CarMaker GUI. Nothing is restarted or closed. Returns ready=true, or ready=false with what it is waiting for: call again until ready. Without a model it opens none and lists models_loaded and models_found to choose from. Many projects need their own setup script before the model compiles: if init_scripts_found lists one, pass it as init.
| Name | Type | Req | Description |
|---|---|---|---|
| init | – | – | The project's own MATLAB setup script, run once per MATLAB session before the model is opened (default: CM_MATLAB_INIT). A name from init_scripts_found, or a full path |
| max_wait_s | number | – | Longest time to wait in s, at most 50 (larger values are cut to 50); call again if not finished |
| model | – | – | Simulink model to open: a name on the MATLAB path, a path as listed in models_found, or a full path (default: CM_MODEL) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_set_workspace_var Set a workspace variable ~147
Set a variable or field. The old value is logged and cm_revert_all restores it. Model-workspace changes live in memory until cm_model_save. Requires an idle simulation. overruled_by in the answer: the model has a variable of that name in its own workspace and uses that one, so set it there.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Variable or field, e.g. 'Kp_12' or 'Table.Value' |
| scope | string | – | 'base' for the MATLAB base workspace, or the name of a loaded Simulink model for that model's workspace |
| value | – | yes | Number, string, list or nested list (matrix) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_standalone_attach Attach to a running CarMaker program ~175
Attach to a CarMaker simulation program that is already running, for example one started from a CarMaker Office window.
| Name | Type | Req | Description |
|---|---|---|---|
| overrides | – | – | Test-run keys to change in memory only, e.g. {'Vehicle': 'Car_B'} for another car. Vehicle keys (Body.mass) do not reach a standalone run: clone the vehicle |
| pid | integer | yes | Process id from cm_standalone_servers |
| quantities | – | – | Quantities to store |
| speed | – | – | x real time; omit for CarMaker's maximum. Slower only if the user asks |
| start | boolean | – | Start the run at once (needs testrun) |
| stop_after_s | – | – | Safety stop at this simulation time in s |
| testrun | – | – | Test run to configure (needed to start a run) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_standalone_close Close a standalone instance ~50
Disconnect; for instances this server launched, also stop the CarMaker process.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | – | – | Standalone instance id such as 'sa1' (may be omitted while there is only one) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_standalone_control Control a standalone run ~94
Start, pause, resume or stop the simulation of a standalone instance, or open its IPGMovie. A study with movie=true runs on one instance: cm_standalone_status shows it.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | movie: (re)open IPGMovie for the program |
| instance | – | – | Standalone instance id such as 'sa1' (may be omitted while there is only one) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_standalone_dva_write Overwrite a quantity in a standalone run (DVA) ~92
Overwrite a quantity in a running standalone simulation (Direct Variable Access).
| Name | Type | Req | Description |
|---|---|---|---|
| duration_ms | integer | – | How long the override lasts in ms (-1: until the run ends) |
| instance | – | – | Standalone instance id such as 'sa1' (may be omitted while there is only one) |
| name | string | yes | Quantity to overwrite |
| value | number | yes | Absolute value |
Structured output declared, but exposes no named fields.
No examples provided.
cm_standalone_launch Launch a standalone CarMaker run ~287
Start a NEW independent CarMaker simulation program (not connected to MATLAB) and run a test run on it. Only for test runs whose vehicle does not need a Simulink controller. Results go to the project's SimOutput; see cm_standalone_results. start=false only opens CarMaker (and IPGMovie).
| Name | Type | Req | Description |
|---|---|---|---|
| driver | – | – | Driver template values for this program only, in a copy removed when it closes |
| executable | – | – | CarMaker executable (default: the stock one of the install) |
| movie | boolean | – | Show the run in IPGMovie (the program has no window; IPGMovie closes with it) |
| overrides | – | – | Test-run keys to change in memory only, e.g. {'Vehicle': 'Car_B'} for another car. Vehicle keys (Body.mass) do not reach a standalone run: clone the vehicle |
| quantities | – | – | Quantities to store (default: Time, Car.v, Car.YawRate, Car.ax, Car.ay, Car.Distance) |
| speed | – | – | x real time; omit for CarMaker's maximum. Slower only if the user asks |
| start | boolean | – | Start the run at once |
| stop_after_s | – | – | Safety stop at this simulation time in s (null: none) |
| testrun | string | yes | Test run relative to Data/TestRun |
Structured output declared, but exposes no named fields.
No examples provided.
cm_standalone_results Result files of a standalone run ~56
Result .erg files of the instance's run (read them with cm_results_summary / cm_results_read).
| Name | Type | Req | Description |
|---|---|---|---|
| instance | – | – | Standalone instance id such as 'sa1' (may be omitted while there is only one) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_standalone_servers List running CarMaker programs ~47
CarMaker simulation programs running on this machine (pid, description, whether this server manages it). A CarMaker Office window you opened shows up once its application is started.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
cm_standalone_status Standalone instance status ~60
State of a standalone instance plus live values.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | – | – | Standalone instance id such as 'sa1' (may be omitted while there is only one) |
| quantities | – | – | Live quantities to read (default: Time, Car.v) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_standalone_wait_end Wait for a standalone run to end ~103
Wait until the instance's simulation has finished. finished=true: simulation time and distance, error flag and log errors. finished=false: call again to keep waiting.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | – | – | Standalone instance id such as 'sa1' (may be omitted while there is only one) |
| timeout_s | number | – | Longest time to wait in s, at most 50 (larger values are cut to 50); call again if not finished |
Structured output declared, but exposes no named fields.
No examples provided.
cm_start_sim Start the simulation ~200
Start the loaded test run. Returns once it is running; fails at once, with Simulink's error, if the model does not compile. Then call cm_wait_end until it reports finished.
| Name | Type | Req | Description |
|---|---|---|---|
| save | string | – | save: write a result file (GUI storage mode becomes 'Save all', cm_revert_all puts it back). collect: buffer only. keep: leave the GUI setting alone |
| save_logs | boolean | – | Also save what Simulink logged in this run to a MAT file next to the result file (a Simulink Dataset, for MATLAB; for Python call cm_model_logs_save(format='struct', file=...)); cm_wait_end returns l… |
| speed | – | – | x real time; omit for CarMaker's maximum. Slower only if the user asks |
| start_timeout_s | number | – | How long the start may take (a Simulink model may compile first) |
| Name | Type | Req | Description |
|---|---|---|---|
| after_s | number | – | – |
| carmaker_project_restored | object | – | – |
| matlab_folder_restored | object | – | – |
| note | string | – | – |
| popups | array | – | – |
| save_mode | – | – | – |
| started | boolean | – | – |
| state | string | – | – |
No examples provided.
cm_status Simulation status ~124
The MATLAB session (CarMaker for Simulink) only; standalone work needs none of it (cm_doctor). Simulation state (sim_status; sim_status_code is CarMaker's raw value, -2 idle, 0 or more running), matlab_simstate (Simulink's model state: 'terminated' is normal when idle), active model, project directory, last end status, the GUI's storage mode (save_mode) and gui_all_saved (false: the GUI holds unsaved data and will ask before a load; true is no guarantee).
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| active_model | – | – | – |
| connected | boolean | – | – |
| details | object | – | – |
| end_status | – | – | – |
| gui_all_saved | boolean | – | – |
| matlab_simstate | – | – | – |
| project_dir | – | – | – |
| save_mode | string | – | – |
| session_id | – | – | – |
| sim_status | string | – | – |
| sim_status_code | – | – | – |
| standalone_note | string | – | – |
No examples provided.
cm_stop_sim Stop the simulation ~51
Stop the running simulation. With wait_s > 0 it returns what cm_wait_end returns.
| Name | Type | Req | Description |
|---|---|---|---|
| wait_s | number | – | Wait this long for the simulation to become idle (0: do not wait) |
| Name | Type | Req | Description |
|---|---|---|---|
| distance_m | number | – | – |
| elapsed_s | number | – | – |
| end_status | – | – | – |
| finished | boolean | – | – |
| live | object | – | – |
| log_errors | array | – | – |
| log_warnings | array | – | – |
| logs_error | string | – | – |
| logs_file | string | – | – |
| note | string | – | – |
| poll_errors | integer | – | – |
| popups | array | – | – |
| result_file | – | – | – |
| sim_time_s | number | – | – |
| simulink_error | string | – | – |
| state | string | – | – |
| stop_requested | boolean | – | – |
| testrun | string | – | – |
| waited_s | number | – | – |
No examples provided.
cm_study_cancel Cancel a parameter study ~70
Stop the run in progress, skip the remaining ones and restore the changed workspace values. Only cancel a study this conversation started.
| Name | Type | Req | Description |
|---|---|---|---|
| study | string | yes | Id of the study to cancel, as cm_study_start returned it. It must be named: a study is not cancelled by default |
Structured output declared, but exposes no named fields.
No examples provided.
How do I install the CarMaker MCP server?
CarMaker runs locally as a PyPI package, launched with uvx carmaker-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · carmaker-mcp
claude mcp add dimitr-io-carmaker-mcp -- uvx carmaker-mcp
What is the CarMaker MCP server?
CarMaker is an MCP server listed in the public MCP registry as io.github.dimitr-io/carmaker-mcp. Drive IPG CarMaker for Simulink: run test runs, read results, edit vehicle data and parameters. This page covers its PyPI package (carmaker-mcp).
Is the CarMaker MCP server safe to use?
CarMaker scores 90 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the CarMaker MCP server expose?
CarMaker exposes 54 tools: cm_session_start, cm_doctor, cm_status, cm_load_testrun, cm_start_sim, and 49 more. Their descriptions and schemas cost roughly 6,980 tokens of context every time the server is loaded.
Is the CarMaker MCP server still maintained?
CarMaker is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the CarMaker MCP server under?
CarMaker declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.