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

Simulation status

cm_status
Read-only

Check CarMaker and Simulink simulation state, active model, project directory, and GUI save status to confirm idle/running state or unsaved data before loading or starting runs.

Instructions

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

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_status"
  }
}

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
detailsNo
connectedNo
save_modeNo
end_statusNo
session_idNo
sim_statusNo
project_dirNo
active_modelNo
gui_all_savedNo
matlab_simstateNo
sim_status_codeNo
standalone_noteNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.3.0
    • addedOutput schema / properties / standalone_note
      Added value: +{
      +  "type": "string"
      +}
  2. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds genuine interpretive value on top: -2 means idle, 0 or more means running, 'terminated' is normal when idle, and gui_all_saved=false means the GUI holds unsaved data and will prompt before a load, while true is no guarantee. Those value semantics are what let an agent reason about the result rather than just parse it. It does not discuss cost/latency or freshness, keeping it just under the top mark.

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?

The scope restriction is front-loaded ahead of the field enumeration, which is the right ordering for a status tool. It is dense and parenthetical-heavy, and the first clause is a fragment, but nearly every clause adds distinct information with little repetition.

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

Completeness5/5

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

With zero parameters, a published output schema, and annotations covering the read-only safety profile, the only things an agent needs are scope and how to read the values — both supplied. Nothing required for a correct call or a correct interpretation of the response is missing.

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?

The tool takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. Nothing in the description misleads about inputs, and the schema itself is empty with additionalProperties false.

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

Purpose4/5

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

The description enumerates precisely what the tool reports (simulation state, sim_status_code, matlab_simstate, active model, project directory, last end status, save_mode, gui_all_saved), which goes well beyond the vague title 'Simulation status'. It also scopes the tool to the MATLAB/CarMaker-for-Simulink session, implicitly distinguishing it from the standalone-status siblings. The only shortfall is that the action verb is never stated outright — the enumeration carries the purpose rather than a verb+resource phrase.

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?

'The MATLAB session (CarMaker for Simulink) only; standalone work needs none of it (cm_doctor)' explicitly excludes a class of use case and routes the agent to a named alternative. That is a real when/when-not statement rather than an implied one. It stops short of saying when a caller should check status (e.g. before cm_load_testrun or cm_start_sim), so it is not a full 5.

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