Skip to main content
Glama

Flowix Sim Raicing Race Engineer

execute_javascript

Read-onlyIdempotent

Queries and analyses high-frequency lap telemetry (speed, brake, throttle, steering, gear, RPM, track coordinates, tyre temperatures/pressures/grip/slip, suspension, and corner/braking diagnostics) stored on the Flowix server for lap_id and optional reference_lap_id using the read-only FlowixData query API. Each call is stateless; pass lap_id every time. Inside the script, globals lapId and refId (null without a reference lap) hold those UUIDs. If a call returns a busy error, retry shortly. If a script has a syntax or runtime error, adjust the script and call again. Recommended FlowixData queries:

  1. FlowixData.compareLaps(compId?, refId?): Scans lap delta and returns topDeficitZones where time was lost (all distances in meters).

  2. FlowixData.analyzeCorner(lapId, startDist, endDist, refId?): 4-phase MoTeC breakdown with understeer/oversteer detection, tyre stress, car setup recommendations, and meter units.

  3. FlowixData.detectBrakingZones(lapId, threshold?): Detects braking events and trail-braking profile ('ski_slope', 'abrupt_release', 'trapped_brake'). These profile labels are internal: describe the behaviour in plain words instead of quoting them.

  4. FlowixData.getActiveChannels(lapId?): Identifies recorded channels vs unrecorded all-zero channels.

  5. FlowixData.getSummary(lapId): Whole-lap top speed, min speed, and acceleration stats.

  6. FlowixData.listChannels(lapId) / getTyreSummary(lapId, startDist?, endDist?) / getChannel(lapId, name, startDist?, endDist?, step?): Reads extended channels (tyre temperatures, pressures, grip, slip, brake temps, suspension, weather); extended channels are read via these methods rather than row fields. Note: Always express distances in METERS. Only all-zero channels indicate unrecorded simulator channels. When pointing at a spot on the lap, include a link to the lap analysis page (zoom, markers, highlights): call get_coaching_guidelines once for the link format.

Input Schema

NameRequiredDescriptionDefault
lap_idYesUUID of the lap to analyse (the comparison lap)
scriptNoOptional JavaScript code (omitted: a whole-lap overview is returned); the value of its last expression is returned as JSON. Telemetry is accessed only via FlowixData methods, e.g. `FlowixData.getActiveChannels(lapId)` or `FlowixData.getSummary(lapId)` or `const z = FlowixData.detectBrakingZones(lapId); z.slice(0, 5)`
reference_lap_idNoOptional UUID of a reference/benchmark lap on the same track

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, and the description adds meaningfully beyond them: calls are stateless with lapId/refId injected as globals (refId null without a reference lap), a busy error should be retried shortly, syntax/runtime errors mean the script should be fixed and re-run, distances must be in METERS, all-zero channels signal unrecorded simulator channels, and the internal braking-profile labels must not be quoted verbatim to the user.

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 first sentence front-loads what is queried and from where, and the numbered method list is dense but each entry carries distinct decision value for choosing a query. The closing note bundles three unrelated rules (meters, all-zero channels, lap-link format) into one paragraph, and the pointer to get_coaching_guidelines sits at the very end where it is easy to miss.

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 script-execution tool with no output schema and three parameters, the description covers the essentials: how the script is evaluated, what is returned, how errors surface, and unit conventions. It leaves the shape of the returned JSON largely to the referenced method names and does not describe pagination or size limits on channel reads, which matters for a high-frequency telemetry payload.

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 100%, so the baseline is 3, but the description adds real meaning: it explains the globals lapId and refId that the script body can reference, that an omitted script returns a whole-lap overview, and that the value of the last expression is returned. The one shortfall is that it does not clarify whether lap_id also acts as the primary lap when a reference_lap_id is supplied, which is only implied by the schema wording.

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?

The description names a specific action (query/analyse telemetry via a JavaScript script) and enumerates exactly what data is reachable: speed, brake, throttle, steering, gear, RPM, coordinates, tyre temperatures/pressures/grip/slip, suspension, and corner diagnostics. It also names the underlying API (FlowixData) and makes clear it is the only tool in the set that executes scripts, so an agent can distinguish it from list_track_laps and get_session_details.

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?

It gives detailed guidance on which FlowixData method to reach for and for what purpose (compareLaps for delta/deficit zones, analyzeCorner for a 4-phase breakdown, detectBrakingZones for trail-braking, getChannel for extended channels), plus operational rules: stateless, pass lap_id every time, retry on a busy error, adjust and re-call on script errors. The gap is that it never explicitly states when to prefer this tool over a sibling such as list_track_laps, so the when-to-use guidance is strong internally but not framed against alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources