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

Start the CarMaker for Simulink session

cm_session_start

Brings up a CarMaker for Simulink session when missing: starts MATLAB, opens the Simulink model and CarMaker GUI, and reports ready status or what it is waiting for.

Instructions

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.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "cm_session_start"
  }
}

Input Schema

NameRequiredDescriptionDefault
initNoThe 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
modelNoSimulink model to open: a name on the MATLAB path, a path as listed in models_found, or a full path (default: CM_MODEL)
max_wait_sNoLongest time to wait in s, at most 50 (larger values are cut to 50); call again if not finished

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.3.0
    • changedInput schema / properties / max_wait_s / description
      Previous value: -"Longest time to wait in seconds; keep it below your client's tool time-out and call again if not finished"New value: +"Longest time to wait in s, at most 50 (larger values are cut to 50); call again if not finished"
  2. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With annotations already declaring readOnlyHint=false, destructiveHint=false and openWorldHint=false, the description adds real value by disclosing that it starts external processes (MATLAB, GUI), is additive-only ('nothing restarted or closed'), and is idempotent/resumable via repeated polling. It does not cover failure modes such as MATLAB licensing or a hung startup beyond the max_wait cap.

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

Conciseness4/5

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

Front-loaded with the action and the ordering of sub-steps is preserved rather than buried; every sentence carries an operational fact (polling contract, no-restart guarantee, init-script hint). It is dense in a single block and could be split for scannability, but there is no filler.

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 multi-process bootstrap tool, it covers the ordering, the permission-free/additive nature, the polling contract, and how to interpret the two outcome states. Output schema exists so return shape need not be explained; remaining gap is concurrency (what happens if called while an earlier call is still starting) and hard-failure behavior.

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

Parameters4/5

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

Schema coverage is already 100%, so a 3 is the baseline, but the description adds behavioral meaning: init is framed as conditional on init_scripts_found and 'run once per MATLAB session', and model is framed as optional with models_loaded/models_found as the discovery path. That is workflow context the schema descriptions do not convey.

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 ('bring up a CarMaker for Simulink session') and then enumerates the concrete actions (start MATLAB, run cmenv, open the Simulink model, open the CarMaker GUI). This sequence makes it unmistakable against siblings like cm_standalone_launch or cm_start_sim without needing to name them.

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?

'as far as it is missing' and 'Nothing is restarted or closed' define the boundary of when this is appropriate, and 'call again until ready' plus the ready=false contract tell the agent how to drive it to completion. It also gives conditional guidance for the init script ('Many projects need their own setup script... if init_scripts_found lists one, pass it as init'). No explicit sibling-alternative routing, which keeps it short of a 5.

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