CarMaker
PYPI · CARMAKER-MCP
Drive IPG CarMaker for Simulink: run test runs, read results, edit vehicle data and parameters.
Available components
Last scanned (7 hours ago)
Scores higher than 90% 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 & Transparency74
- Repository check failed: the declared repository URL redirects; it must resolve directly. See how to fix → View diagnostics → Fail
- Cryptographically verified build provenance (signed, bound to De-Ioannidis/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 Usability83
- 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
- Tool/resource definitions use about 5177 tokens (~99/item across 52 items; 48 tools + 4 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
- Stability observed for 22 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 (94% 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 50 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.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Nov 26 +16
- Malware scan: unverified → pass ▲ security
- 1 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 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 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 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 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.
- 22 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.
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.2.1
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 | De-Ioannidis/carmaker-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/De-Ioannidis/carmaker-mcp/.github/workflows/release.yml@refs/tags/v0.2.1 |
| Rekor log index | 3262128649 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:5217a1b489c87928d9c347c67c8dd2f63b19679f420a59a0532400acf30b5872 |
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 ~55
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) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
cm_clone Copy a project data file ~74
Copy a project file to a new name in the same kind's folder. Never overwrites.
| 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_doctor Check the setup ~43
Check the setup: CarMaker install, Python version, MATLAB release and engine, shared MATLAB session, GUI, project folder. Each failed check comes with its fix.
Input schema present but exposes no named parameters.
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 ~110
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.
| 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_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 ~276
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). Requires an idle simulation. The result file (.erg) holds CarMaker's quantities; this holds the Simulink side.
| 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 ~95
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.
| 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 ~257
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.
| 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 ~101
Key / value pairs of a CarMaker infofile. Large files are truncated: filter by keys or prefix.
| 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 |
| prefix | – | – | Only keys starting with this, e.g. 'Vehicle' or 'DrivMan.' |
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_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_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 ~242
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 seconds; keep it below your client's tool time-out and 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 ~147
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.DriverTemplate.FName': 'X'} |
| pid | integer | yes | Process id from cm_standalone_servers |
| quantities | – | – | Quantities to store |
| realtime_factor | number | – | Speed relative to real time |
| 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 ~59
Start, pause, resume or stop the simulation of a standalone instance.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | What to do |
| 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 ~206
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.
| Name | Type | Req | Description |
|---|---|---|---|
| executable | – | – | CarMaker executable (default: the stock one of the install) |
| overrides | – | – | Test-run keys to change in memory only, e.g. {'Vehicle.DriverTemplate.FName': 'X'} |
| quantities | – | – | Quantities to store (default: Time, Car.v, Car.YawRate, Car.ax, Car.ay, Car.Distance) |
| realtime_factor | number | – | Simulation speed relative to real time (larger is faster) |
| 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 ~98
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 seconds; keep it below your client's tool time-out and call again if not finished |
Structured output declared, but exposes no named fields.
No examples provided.
cm_start_sim Start the simulation ~158
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, as cm_model_logs_save does; cm_wait_end returns it as logs_file |
| 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 ~70
Simulation state, active Simulink 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, an edit in an open editor window is not counted).
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 | – | – | – |
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 | – | – |
| 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.
cm_study_start Start a parameter study ~339
Run one test run several times with different parameter values, one after another, in the background. Returns a study id at once; wait with cm_study_wait. Nothing is written to project files. The answer names values that will change nothing: keys_not_found, workspace_not_found and workspace_overruled (the model has the variable in its own workspace: use scope=<model>).
| Name | Type | Req | Description |
|---|---|---|---|
| max_run_s | number | – | A run is stopped after this wall time in s |
| mode | string | – | cm4sl: the MATLAB-connected session. standalone: a separate CarMaker process per run (no 'workspace' values) |
| quantities | – | – | Quantities to summarise per run (default: Time, Car.v) |
| save_logs | boolean | – | After every run, save what Simulink logged and the workspaces as that run used them to a MAT file next to its result file (mode cm4sl; logs_file per row) |
| scope | string | – | 'base' for the MATLAB base workspace, or the name of a loaded Simulink model for that model's workspace |
| testrun | string | yes | Test run relative to Data/TestRun |
| variations | array | yes | One entry per run: {'label': 'heavy', 'keys': {'Body.mass': 320}, 'workspace': {'Kp_yaw': 1.5}}. 'keys' are infofile keys applied in memory for that run only (prefix a place such as 'Vehicle:' if nee… |
Structured output declared, but exposes no named fields.
No examples provided.
cm_study_status Parameter study progress and results ~111
State of a study (running, done, cancelled, failed) and one row per finished run, which also maps every label to its result file. To wait for progress use cm_study_wait.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | compact: per run its label, end status, time, distance, result file and min / max / mean / last of the quantities. full: also every run's keys and workspace values and all statistics |
| study | – | – | Study id (default: the latest) |
Structured output declared, but exposes no named fields.
No examples provided.
cm_study_wait Wait for a parameter study ~108
Wait until another run of the study has finished or the study has ended, at most timeout_s, and return the compact table (new_rows says how many runs finished meanwhile). Call it again while state is 'running'. Use this for studies instead of cm_wait_end.
| Name | Type | Req | Description |
|---|---|---|---|
| study | – | – | Study id (default: the latest) |
| timeout_s | number | – | Longest time to wait in seconds; keep it below your client's tool time-out and call again if not finished |
Structured output declared, but exposes no named fields.
No examples provided.
cm_wait_end Wait for the simulation to end ~96
Wait until the simulation is idle again. finished=true: end status, simulation time and distance, result_file, new log errors and pop-ups. finished=false: current state and live values; call again to keep waiting.
| Name | Type | Req | Description |
|---|---|---|---|
| poll_s | number | – | Seconds between status polls |
| timeout_s | number | – | Longest time to wait in seconds; keep it below your client's tool time-out and call again if not finished |
| Name | Type | Req | Description |
|---|---|---|---|
| distance_m | number | – | – |
| elapsed_s | number | – | – |
| end_status | – | – | – |
| finished | boolean | – | – |
| live | object | – | – |
| log_errors | 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.
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 de-ioannidis-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.De-Ioannidis/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 88 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 48 tools: cm_session_start, cm_doctor, cm_status, cm_load_testrun, cm_start_sim, and 43 more. Their descriptions and schemas cost roughly 4,931 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.