Skip to main content
Glama
carmaker-mcp
by dimitr-io

Launch a standalone CarMaker run

cm_standalone_launch

Start a new independent CarMaker simulation and run a test run without MATLAB or a Simulink controller, saving results to the project's SimOutput.

Instructions

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).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "testrun": "<testrun>"
    },
    "name": "cm_standalone_launch"
  }
}

Input Schema

NameRequiredDescriptionDefault
movieNoShow the run in IPGMovie (the program has no window; IPGMovie closes with it)
speedNox real time; omit for CarMaker's maximum. Slower only if the user asks
startNoStart the run at once
driverNoDriver template values for this program only, in a copy removed when it closes
testrunYesTest run relative to Data/TestRun
overridesNoTest-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
executableNoCarMaker executable (default: the stock one of the install)
quantitiesNoQuantities to store (default: Time, Car.v, Car.YawRate, Car.ax, Car.ay, Car.Distance)
stop_after_sNoSafety stop at this simulation time in s (null: none)

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.3.0
    • addedInput schema / properties / driver
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Driver template values for this program only, in a copy removed when it closes"
      +}
    • addedInput schema / properties / movie
      Added value: +{
      +  "default": false,
      +  "description": "Show the run in IPGMovie (the program has no window; IPGMovie closes with it)",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / overrides / description
      Previous value: -"Test-run keys to change in memory only, e.g. {'Vehicle.DriverTemplate.FName': 'X'}"New value: +"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"
    • removedInput schema / properties / realtime_factor
      Removed value: -{
      -  "default": 1,
      -  "description": "Simulation speed relative to real time (larger is faster)",
      -  "exclusiveMinimum": 0,
      -  "type": "number"
      -}
    • addedInput schema / properties / speed
      Added value: +{
      +  "anyOf": [
      +    {
      +      "exclusiveMinimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "x real time; omit for CarMaker's maximum. Slower only if the user asks"
      +}
  2. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the generic write/safe/local profile; the description adds genuinely new behavior: a brand-new program instance is spawned, results are written to the project's SimOutput, and start=false degrades to merely opening CarMaker and IPGMovie. That last clause is a meaningful side-effect disclosure not derivable from the schema's "Start the run at once." It does not discuss lifecycle/cleanup (cm_standalone_close) or the executable/licensing requirements, so it is not fully complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the defining constraint (new, independent, not MATLAB) before the eligibility rule. No filler, and the trailing start=false note earns its place as a behavior clarification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter mutation tool this covers the essentials: what it launches, eligibility, where output goes, and the no-start variant. With a 100%-covered schema and an output schema, return values need no explanation. The gap is lifecycle context — how this pairs with cm_standalone_status/wait_end/close — which an agent launching a long-running external process would benefit from knowing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all nine parameters including defaults and constraints. The description adds only one clarification beyond that — what start=false actually does (opens CarMaker and IPGMovie). With the schema doing the heavy lifting, this is the expected baseline rather than added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Start a NEW independent CarMaker simulation program") and immediately scopes it with a parenthetical exclusion ("not connected to MATLAB"), which separates it from the in-session simulation siblings like cm_start_sim. It also names a downstream sibling (cm_standalone_results) for the output, so the agent knows where the run's artifacts land.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when-not condition: "Only for test runs whose vehicle does not need a Simulink controller." That is real routing guidance for a crowded sibling set. It stops short of naming the alternative tool to use for Simulink-controlled runs (presumably cm_start_sim), so the exclusion is stated without a positive redirect.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.