Repository navigation
Releases: clankercode/tm-control-mcp
Releases · clankercode/tm-control-mcp
Release list
v0.4.0
tm-control-mcp v0.4.0
Install
- Openplanet → install the
.opasset below, or folder-plugin per README - Requires MLHook + MLFeedRaceData (Editor++ optional; E++ tools live in tm-mcp-pack-epp)
Highlights
TakeScreenshotnow reports the captured file. Waits for the native viewport capture to land and returnsfullName(game-side path fromViewport.ScreenShotFullName),sizeBytes, anddetected— no more guessing whichScreenShotNN.jpgis yours.- New capture options:
hideOverlay: true— clean shots without HUD/Manialink overlays (nativeDisableOverlayRender, restored right after).forceRes: true+width/height— capture at a forced resolution (verified: 3840×2160 and 2560×1440 files come out at exactly the requested size), restored after.waitMs(default 5000;noWait: true/0for fire-and-forget) withtimedOuton miss instead of a hard error.
formatis validated (jpg|webp|tga|dds) — unknown formats now returnINVALID_INPUTinstead of silently falling back to jpg.- Crash-prone native capture paths stay unexposed (360° panoramas, tiled supersampling, alpha/pixel-output switching) — the tool only drives the same capture queue the in-game screenshot key uses. New
screenshotsguide documents the safe surface and the danger zones (GetGuide {"topic":"screenshots"}). tools/call.pyscales its socket timeout to yourwaitMsand still adds Linux-sidedetectedScreenshot.linuxPathdetection.
Artifacts
tm-control-mcp-0.4.0.op— Openplanet plugin package (no DEV defines)
Security
- Localhost JSON socket, no auth — see SECURITY.md
- Keep Socket Host at 127.0.0.1
Full changelog
See CHANGELOG.md entry for 0.4.0
v0.3.0
tm-control-mcp v0.3.0
Breaking: E++ tools moved to tm-mcp-pack-epp
All Editor++ tools now live in a separate tool pack plugin — tm-control-mcp no longer depends on Editor++ at all.
- Freeblock/item placement (
PlaceBlockViaEditorPlusPlus, …), the named-macroblock suite, tag provenance (SetAgentTag/RemoveByTag), inventory control,ControlEditMode,ControlItemEditor, macroblock inspection, E++ camera focus - Old builtin names still dispatch but return a structured
moved_to_packerror naming the pack, so agents can self-correct - Install
tm-mcp-pack-epp(depends on tm-control-mcp + Editor++) and calltm-mcp-pack-epp.<Tool>
Highlights
- Tool packs: any plugin can register MCP tools via
TmMcp::RegisterToolPack(ToolPackBuilder)— packId-prefixed names, incremental schemas, builtinListToolPacks. Seedocs/tool-packs.md. - VehicleState/Camera tools:
GetVehicleState,ListVehicleVis,GetVehicleVis(by entityId/name/login),GetRenderCamera,ProjectWorldToScreen,SetEditorOrbitalTarget(optional deps) - Socket host/port/enable apply live; Settings tab with safe port-apply (no more mid-edit rebind crash)
- Request payloads trace to plugin storage (
request-trace.log) instead of floodingOpenplanet.log; one-line tool start/done traces remain ControlPluginRemoteBuild parity: load/unload/reload +getLogs
Install
- Requires MLHook + MLFeedRaceData; optional
VehicleState,Camera; E++ tools viatm-mcp-pack-epp
Artifacts
tm-control-mcp-0.3.0.op— no DEV defines
Security
- Localhost JSON socket (127.0.0.1:30006), no auth — see SECURITY.md
Full changelog
See CHANGELOG.md entry for 0.3.0.
v0.2.0
tm-control-mcp v0.2.0
First tagged public release of the Openplanet localhost JSON bridge for Trackmania editor/menu control (AI agents + scripts).
Install
- Requires Editor++ and MLHook
- Install the attached
tm-control-mcp-0.2.0.opvia Openplanet, or use a folder plugin per README - Default socket:
127.0.0.1:30006— localhost only, no auth (SECURITY.md)
python3 tools/call.py status
python3 tools/call.py --until-ready editor GetModeHighlights
- 100 tools in release builds (editor, menu OnAction automation, free placement, named macroblocks, readiness/tags, plugin settings, …)
- DEV/RE tools gated —
DevSafeRead, fuzz, pointer dumps, etc. only with./build.sh dev(#if DEV); not in this.op - Agent ergonomics:
GetReadiness/WaitUntil, provenance tags +RemoveByTag,AssertPlacement, durable named-MB JSON - Menu:
CreateMapViaMenu,ClickMenuButton(neverTriggerPageAction) - Openplanet Meta::
ListPlugins/ControlPlugin/ settings get-set ControlMapObjectives(clones / laps via Editor++)- Live smoke recipe:
python3 tools/smoke_tag_cleanup.py - Script timeout 15s;
statusreports live plugin version
Artifacts
tm-control-mcp-0.2.0.op— Openplanet package (no DEV defines)
Security
Localhost JSON control socket with no authentication. Keep Socket Host at 127.0.0.1. Full notes: SECURITY.md.
Full changelog
See CHANGELOG.md entry for 0.2.0.
Verify (maintainers)
TM_PLUGIN_SKIP_LSP=1 ./build.sh release-check # must compile without DEV
python3 -m pytest tests/test_call_wait.py -q
python3 tools/smoke_tag_cleanup.py # game up