assetto-corsa-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AC_ROOT | No | The Assetto Corsa game folder. If unset, auto-detected from Steam using the registry SteamPath plus steamapps\libraryfolders.vdf. | |
| AC_DOCUMENTS | No | The Documents\Assetto Corsa folder. If unset, uses the Windows Documents folder. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ac_launchA | 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). |
| ac_statusB | Is acs.exe running, is the bridge alive (session loaded), plus the last heartbeat (camera, time, car). |
| ac_get_stateB | Live state from the bridge: camera mode/position/look/fov, car position/speed, time and day of year, fps. |
| ac_camera_freeB | Hold the camera at AC world position (x, y, z). yaw deg: 0 = look along -Z, 90 = +X, 180 = +Z, 270 = -X. pitch deg: + up, - down. fov: vertical FOV in degrees (0 = keep). |
| ac_camera_look_atC | Hold the camera at |
| ac_camera_modeA | Release the held camera and switch AC camera: 'free' (F7), 'cockpit', 'chase', 'chase2', 'bonnet', 'car' (F6), 'track' (replay cams), or 'release' (only let go of the held camera). |
| ac_set_timeB | Set track-local time and (optionally) date via ac.setWeatherExactUTC0Timestamp (offline only). day/month/year 0 = keep the current date. freeze=True sets the time multiplier to 0. |
| ac_screenshotA | Save a screenshot (PNG/JPG by extension) to |
| ac_teleport_carA | Move the player car (physics.setCarPosition; aligned on the track surface). yaw < 0 aligns to the AI spline. Reports whether the car actually moved. |
| ac_material_getA | Read material properties at runtime (first mesh matching a CSP mesh filter, e.g. 'material:MyMat'). Default properties: ksEmissive, ksAmbient, ksDiffuse, ksAlphaRef. |
| ac_material_setB | Override a material property at runtime only (lost on restart; nothing is written to disk). value: 1-4 numbers, e.g. [1, 0.8, 0.5] for ksEmissive. |
| ac_track_configB | Sections of the track's CSP config as CSP parsed it (INCLUDEs merged), filtered by a Lua pattern on the section name (e.g. '^MATERIAL_ADJUSTMENT'). Useful to check whether an included INI was really loaded. |
| ac_quitA | Quit AC (bridge shutdown first, taskkill only if it hangs) and restore race.ini/video.ini backups. |
| ac_restore_configsA | Restore any configs still backed up by ac_launch (e.g. after a crash). Only when AC is not running. |
| ac_blender_to_acA | Convert Blender coordinates to AC world coordinates (AC x = Bx, AC y = Bz, AC z = -By). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Most tools have distinct purposes: camera control is split cleanly into mode/free/look_at, and launch/quit/restore are clearly separated. The main overlap is between ac_get_state and ac_status, which both surface camera/car/time heartbeat data, though status adds process/bridge health.
All names use a consistent ac_ prefix and snake_case, which is easy to scan. Minor deviations exist in ordering, mixing verb-first (ac_get_state, ac_set_time) with noun-first (ac_camera_mode, ac_material_get), but the pattern remains readable.
At 15 tools the set is well-scoped for a game-control bridge, with each tool covering a distinct capability (camera, time, materials, lifecycle). No obvious filler tools.
The surface covers the full session lifecycle (launch, status, state, quit, restore configs) plus camera, time, screenshot, teleport, materials, and track config. Gaps exist around car input control (throttle/brake/steering) and replay manipulation, but core automation workflows are covered.