Skip to main content
Glama

ac_launch

Start an offline Assetto Corsa practice session on a chosen track and car: writes a temporary race.ini, launches the game, waits for the bridge heartbeat, and presses Drive.

Instructions

Start an offline practice session (writes a temporary race.ini after backing it up, starts acs.exe, waits for the bridge heartbeat, presses Drive). window_width/height > 0 temporarily switches video.ini to a single windowed screen of that size (restored by ac_quit). hour is the start time (08..18); use ac_set_time for any time/date.

Input Schema

NameRequiredDescriptionDefault
carNoabarth500
hourNo
skinNo
trackYes
layoutNo
timeoutNo
window_widthNo
start_sessionNo
window_heightNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description takes on the whole burden and does well: it discloses that race.ini is written (after backup), that video.ini is temporarily modified and restored by ac_quit, that acs.exe is spawned, and that it blocks on a bridge heartbeat before pressing Drive. It leaves the timeout parameter and failure behavior unexplained, so not a 5.

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?

Dense and front-loaded: the main action comes first, then side effects, then parameter caveats. No filler sentences, though the parenthetical stacking makes it slightly hard to parse at a glance.

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

Completeness3/5

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

For a 9-parameter mutation tool with no annotations and no output schema, the description covers the launch sequence and the two config-file side effects but omits the return value, what timeout controls, and what start_session toggles. Adequate but with clear gaps for a tool this consequential.

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 description coverage is 0% across 9 parameters, so the description must compensate. It explains hour (08..18 range), window_width/window_height (>0 switches to a windowed screen of that size), and implicitly track via 'offline practice session'. It says nothing about car, skin, layout, start_session, or timeout, leaving roughly half the surface undocumented.

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 an offline practice session') and then describes the concrete mechanics: writing a temporary race.ini, launching acs.exe, waiting for the bridge heartbeat, pressing Drive. It also differentiates from the sibling ac_set_time for any non-08..18 time.

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?

Explicitly routes the agent away for one case ('use ac_set_time for any time/date'), which is a real alternative with a clear condition. However, it gives no guidance on when NOT to launch (e.g. whether a prior ac_launch/ac_quit cycle must complete first) or on preconditions like the config state.

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