Skip to main content
Glama

BeamNG MCP

CI Python 3.11–3.13 License: MIT

A local, safety-gated Model Context Protocol server for controlling, inspecting, extending, and testing BeamNG simulations. It combines the official BeamNGpy Python API with an authenticated GELua WebSocket extension and a GPU-ready real-time perception/control loop.

BeamNG MCP is deliberately split into a low-rate AI control plane and a high-rate local driving data plane. An LLM can choose scenarios, build mods, inspect a map, and start an episode; it is never placed inside the 10–30 Hz steering/braking loop.

WARNING

Alpha software for simulation only. Keep a manual emergency-stop path available. Do not use this project to control a real vehicle.

Feature tiers

Capability

BeamNG.tech 0.38

Retail BeamNG.drive 0.38

BeamNGpy vehicles, scenarios, traffic, timing, environment

Supported

Experimental / build-dependent

Cameras, lidar, radar, GPS, IMU, shared memory

Supported

Camera is license-gated in tested 0.38.6; other sensors build-dependent

Custom GELua WebSocket, telemetry, engine safety lease, emergency stop

Supported

Experimental, targets 0.38.6

Live scene-object creation/update/delete

Supported through GELua

Experimental through GELua

Typed ephemeral BeamNGTrigger drafts, lifecycle, and enter/exit events

Supported through GELua

Experimental, live-tested against 0.38.6

Persistent level save

Explicitly gated; World Editor required

Explicitly gated; World Editor required

Mod scaffold/validate/pack/install

Supported; install is operator-gated

Supported; install is operator-gated

Blender-evidenced soft-body authoring and deterministic JBeam assembly

Offline authoring supported; in-game validation required

Offline authoring supported; in-game validation required

Native AI and real-time vision driving

Supported

Native AI experimental; production vision/hybrid requires Tech camera in tested 0.38.6

BeamNGpy's official support contract is for BeamNG.tech. Retail Drive support is useful, but this repository labels it honestly as experimental. The pinned compatibility baseline is BeamNGpy 1.35.1 with BeamNG 0.38. That pin is the VALIDATED baseline, not the engine currently installed on the development machine, which reports 0.39.4.0 build 20972; the release matrix has not been re-run against it. See the version-provenance table in AGENTS.md.

Related MCP server: osracer-mcp

What is included

  • 57 typed MCP tools across simulator, scenario, traffic, environment, vehicle, sensor, map, Lua, mod, soft-body authoring, job, and autonomous-driving domains.

  • Read-only MCP resources for status, vehicles, jobs, autonomy, and the soft-body authoring contract, plus guided workflow prompts.

  • A loopback-only GELua WebSocket server with a per-install secret, bounded messages and queues, correlation IDs, heartbeats, an explicit method allowlist, and no dynamic Lua evaluation.

  • Vehicle control, native AI, deterministic stepping, scenario creation, road-network queries, RGB/depth/annotation cameras, lidar, radar, ultrasonic, GPS, IMU, electrics, damage, state, roads, and powertrain sensors through BeamNGpy.

  • Path-confined, quota-bounded mod workspaces with atomic writes, SHA-256 optimistic concurrency, validation, correctly rooted zip packages, and recoverable install backups. Installation is disabled until the operator opts in.

  • A peer-MCP Blender workflow with expiring one-use inboxes, a version-controlled exporter, exact evaluated-cage-vertex evidence, explicit coordinate transforms, deterministic JBeam nodes, beams/X-braces/triangles, typed hydros and rails/slidenodes, mass-preserving heavy bases, and full build provenance. JBeam coordinates are never accepted from prose.

  • Live map object changes through GELua. Existing level objects and persistent saves have separate, default-off operator gates; deletes and saves also require explicit confirmation.

  • A dedicated BeamNGTrigger lifecycle that creates connection-owned drafts, instantiates only on explicit enable, emits bounded typed enter/exit events, and never accepts Lua or command fields.

  • Three selectable driving modes: BeamNG native AI, vision lane keeping, and a reserved hybrid mode. In the current alpha, hybrid uses the same camera-plus-vehicle-state supervisor as vision-lane; route-planner fusion remains roadmap work.

  • OpenCV lane perception, lazy Hugging Face SegFormer, and ONNX Runtime with TensorRT → CUDA → CPU provider fallback and bounded GPU/workspace memory.

  • An engine-side real-time safety lease that must arm before autonomy starts. GELua disables AI and applies service plus parking brake if Python stops renewing it.

  • An independent stale-frame/command watchdog, confidence and hazard speed governor, actuation clamps, and full-brake emergency behavior.

Architecture

flowchart LR
  AI["AI client"] <-->|"MCP: stdio or authenticated loopback HTTP"| MCP["Python MCP adapter"]
  MCP --> APP["Typed application services"]
  APP --> BNGPY["BeamNGpy adapter\nserialized worker thread"]
  APP -->|"arm / renew / disarm safety lease"| WS["Private WebSocket client\nJSON schema v1"]
  APP --> MODS["Confined mod workspace\nand job manager"]
  AI -->|"orchestrates peer MCP"| BLENDER["Blender MCP\nreviewed exporter only"]
  BLENDER --> STAGE["Expiring one-use handoff\nDAE + hashed structure evidence"]
  STAGE --> APP
  BNGPY <-->|"MessagePack + shared memory"| GAME["BeamNG.tech / BeamNG.drive"]
  WS <-->|"127.0.0.1 only"| LUA["Custom GELua extension"]
  LUA <-->|"commands + telemetry"| GAME
  LUA -->|"lease expiry: AI off + full brake"| GAME
  BNGPY --> VISION["Local perception + controller\n10–30 Hz, watchdog protected"]
  VISION --> BNGPY

MCP is not the video or actuation transport. Camera frames stay in shared memory/local process memory, and normalized controls go directly back through BeamNGpy. See Architecture for lifecycle, trust boundaries, and design decisions.

Quick start on Windows

Prerequisites:

  • BeamNG.drive 0.38 or BeamNG.tech 0.38

  • Python 3.11–3.13

  • uv

  • An MCP-capable AI client

  • Optional for soft-body builds: a Blender runtime with a selection-only Collada exporter and the Blender MCP add-on enabled in that exact version profile

git clone https://github.com/eric-rolph/beamng-mcp.git
Set-Location .\beamng-mcp
uv sync --extra dev
uv run beamng-mcp doctor
uv run beamng-mcp install-lua

install-lua resolves BeamNG's current user folder, creates an unpacked mod there, and generates a local secret without printing it. For BeamNG 0.37 and later, the Windows default is %LOCALAPPDATA%\BeamNG\BeamNG.drive\current; a custom userFolder in %LOCALAPPDATA%\BeamNG\BeamNG.drive.ini takes precedence. The launcher command Manage User Folder → Open in Explorer is the authoritative manual check. See BeamNG's official version and user-folder discovery reference.

The installed modScript.lua loads beamng_mcp/bridge when the mod is activated. BeamNGpy also requests the extension during simulator_connect, and it may be loaded manually from GELua for troubleshooting.

When multiple simulator or Blender versions are installed, copy beamng-mcp.example.toml and set the direct beamng.binary plus blender.executable. doctor --json reports the exact Blender runtime and active user/add-on profile's Collada operator set, selection-only capability, and deterministic glTF availability without launching BeamNG. With no explicit Blender path, it probes common side-by-side candidates until it finds a compatible DAE runtime.

Start the default stdio server:

uv run beamng-mcp serve --transport stdio

Example client configuration:

{
  "mcpServers": {
    "beamng": {
      "command": "C:/absolute/path/to/beamng-mcp/.venv/Scripts/beamng-mcp.exe",
      "args": ["serve", "--transport", "stdio"]
    }
  }
}

Run uv run beamng-mcp client-config to generate a configuration using the active environment. For detailed game, bridge, and HTTP setup, read Setup.

First safe interaction

Ask the AI client to follow this sequence:

  1. Call capabilities_get, simulator_status, and lua_bridge_status.

  2. Call simulator_connect only after checking the configured installation.

  3. List scenarios and vehicles before choosing or creating anything.

  4. For a new level, read map_road_network/map_road_edges, then add the model's origin clearance to measured surface Z before every vehicle_spawn. The validated default is cling=false so BeamNG preserves that clearance; opt-in cling cannot reliably project from an arbitrary height. BeamNGpy does not apply cling to Scenario.add_vehicle, so persistent placements need the same explicit surface-relative calculation (base-origin static props can use the surface Z directly).

  5. Confirm the installed GELua bridge is authenticated; autonomy_start fails closed if its engine safety lease cannot arm for the selected vehicle.

  6. Start with BeamNG native AI at a low target speed.

  7. Poll autonomy_status, including the engine_deadman_* fields; call emergency_stop on stale frames, unexpected motion, or operator request.

The server also provides inspect_current_scene, build_and_test_mod, build_softbody_mod, and cautious_autonomous_run MCP prompts.

Vision on an RTX 5090

Install optional model runtimes:

uv sync --extra vision --extra dev

On Windows, this repository pins torch to PyTorch's official CUDA 12.8 wheel index through uv, so the vision extra does not silently install a CPU-only PyPI build. ONNX Runtime GPU is constrained below 1.27 because 1.27 removed CUDA 12 support while this profile uses CUDA 12.8. Run uv run beamng-mcp doctor --json and require vision_runtime.torch.cuda_available=true before selecting SegFormer. For ONNX/CUDA, also require vision_runtime.onnxruntime.provider_libraries.CUDAExecutionProvider.loadable=true; an advertised provider alone does not prove that its DLL dependencies load. TensorRT is optional and should be treated as unavailable when its corresponding loadable field is false. The ONNX backend preloads the CUDA/cuDNN libraries shipped with the compatible PyTorch installation before creating a GPU session.

The default classical backend is small and deterministic. For semantic road/hazard perception, configure segformer or provide a segmentation ONNX model:

[vision]
backend = "onnx"
onnx_path = "C:/models/drivable-area.onnx"
target_fps = 20
input_width = 640
input_height = 360
max_gpu_memory_mb = 4096

ONNX Runtime prefers TensorrtExecutionProvider, then CUDA, then CPU. Engine caches are not committed because TensorRT engines are specific to the runtime/GPU combination. On an RTX 5090, start at 640×360, cap BeamNG's frame rate, reserve 4–6 GB for inference, use FP16, and measure end-to-end observation-to-actuation latency before increasing resolution. Confirm the session's actual provider in autonomy_status; provider-library readiness is necessary but does not prove a particular model initialized. NVIDIA's simultaneous compute and graphics guidance is especially relevant when the game and inference share the same GPU.

The SegFormer backend does not download weights unless allow_model_downloads = true; this prevents surprise network traffic. See Autonomy and Vision. The opt-in GPU regression captures a real rendered BeamNG frame through a test-only retail RenderView fixture and runs OpenCV, with an optional pre-cached SegFormer-B0 CUDA leg. It is not a production retail camera fallback: BeamNG.drive rejected BeamNGpy Camera without a Tech license on the 0.38 generation; no run record retains the build that rejection was seen on. The small model is a repeatable runtime smoke baseline, not a state-of-the-art driving claim; see Development for the pinned, downloads-off test procedure.

Mod and map workflows

A safe mod build looks like:

mod_scaffold → mod_file_read/list → mod_file_write(expected_sha256=...)
→ mod_validate → mod_test_start(pack=true) → job_get
→ operator sets workspace.allow_mod_install = true
→ mod_install(confirm=true)

mod_test_start is a static build job: it validates, packs, and can copy an approved archive. It does not activate the mod, launch a scenario, or prove runtime behavior. Deterministic in-game mod execution is available as opt-in developer regressions against a sentinel-marked disposable BeamNG profile. The Cannon Car Wash example below has automated scenario and free-roam selector-prop gates; comprehensive acceptance for arbitrary third-party mods remains manual.

Cannon Car Wash end-to-end example

https://youtu.be/9bT0M9PmFts

examples/cannon_car_wash contains the Blender source/generator, Z-up Collada asset, Gridmap V2 scenario, exact trigger/placement manifests, GELua wash-cycle and countdown/launch extension, and a Blender-derived rigid Type: Prop model for the vehicle selector. Its mod/ directory is also the exact official-upload staging tree: 40 runtime files under only art, levels, lua, and vehicles, with every authored runtime identifier namespaced as ericrolph_cannon_car_wash. Repository-form metadata, provenance, gallery images, authoring handoffs, and telemetry remain outside that tree. The stable release filename is cannon_car_wash_ericrolph.zip. The selector cage is grounded from exact Blender-derived datum nodes at Z=0 and contains 79 fixed nodes, 329 beams, 144 collision triangles, one multi-material flexbody, and 15,125 kg of mass. Its vehicle-local bootstrap registers each placed prop with an on-demand GELua manager. The manager adds the animated rollers, six water jets, a ten-node layered mist/steam/dust dryer, and transient wash/repair/launch triggers. Crossing the wash midpoint restores transient vehicle damage with an acknowledged full physics reset, then uses the renewed live OOBB to center the vehicle in the corridor, align it upright and parallel, and preserve its incoming travel sign before integrity proof and prior-freeze-state release. The isolated D-Series proof records 0.036987 m centerline error, 0.9997017 corridor-direction dot, and 0.9997559 upright dot. Wash occupancy is reference-counted, so the rollers and all sixteen effects remain active until the final vehicle leaves. The runtime accepts arbitrary real vehicles, waits for full containment, holds the vehicle through 3... 2... 1... GO!, and sets its main cluster to 100 m/s along the measured forward axis. It cleans up those transient objects and unloads after the last prop is removed. The Gridmap V2 scenario keeps its separate scenario-owned extension and a default D-Series while accepting any exact live vehicle; the selector live gate validates the stock citybus with configuration city. Thus, scenario load/unload behavior is not conflated with free-roam prop ownership. The live gates exercise both paths and preserve their telemetry separately. The scenario result is cannon_car_wash_phase4_results.json.

The v1.8 art pass replaces block bristles with 16-card vertical and 14-card overhead alpha-tested fans, adds tileable CMU, interior brick, wet concrete, corrugated-blue, brush, and emissive-sign PBR sets, and ships 22 BeamNG-cooked DDS files. The scenario visual is 10,714 triangles across 33 primitive groups and 18 materials; the selector visual is consolidated to 10,666 triangles across 18 groups, while a separate vehicle-local DAE preserves the five animated brush channels. Seven bounded lights—five tunnel PointLights and two entrance SpotLights—provide real scene illumination. See the technical-art workflow for UV, material, lighting, performance, texture-cook, and inspection details.

The efficient release loop uses static contracts first, incremental beamng.log reads, structured Lua telemetry, engine OOBB/quaternion/material/light queries, and semantically reviewed RenderView captures. Four serial cold starts cover the final candidate: Phase 2 asset resolution, Phase 4's complete scenario lifecycle, selector-runtime with the city bus, and the exact prebuilt ZIP. The narrower Phase 3 and selector-spawn gates remain available for diagnosis; they are not repeated when the broader gates already subsume them.

Blender to functional soft body

The two MCP servers are peers coordinated by the AI client; neither server receives a general tool for calling the other. The safe sequence is:

softbody_handoff_create
→ execute the returned blender_execute_code string verbatim through Blender MCP
→ softbody_handoff_validate
→ softbody_mod_build
→ softbody_mod_validate
→ mod_test_start(pack=true) → job_get
→ manual in-game spawn/settle/collision/mechanism tests

softbody_handoff_create returns absolute paths for review and a blender_execute_code program; clients must send that exact program to Blender MCP instead of reconstructing a call from blender_runner_path. The public v1 coordinator requires asset_name == mod_name, and the visual mesh, physics cage, and single DAE material must equal that asset name or begin with <asset_name>_. It assembles one structural asset, one visual mesh, one material, and one flexbody per mod; texture references are rejected.

The Blender physics cage must provide stable beamng_node_id POINT-string attributes and explicit beamng_ref, beamng_back, beamng_left, and beamng_up vertex groups. Every public-handoff node is an evaluated vertex of that one cage; separate control-object nodes are not supported. Ground-standing objects also use at least three non-collinear minimum-Z beamng_base nodes. The exporter evaluates the dependency graph, bakes the reviewed Blender-world → BeamNG-vehicle rigid transform into both the visual and physics evidence, and records exact unrounded coordinates. The raw beamng-blender-handoff-v1 document is verified and converted server-side into the canonical beamng-structure-v1 build manifest. The compiler refuses hash, transform, bounds, topology, rail-alignment, reference-frame, base, or visual-vertex mismatches.

The generated vehicle folder includes <asset>.jbeam, <asset>.dae, main.materials.json, info.json, <asset>.pc, info_<asset>.json, and <asset>.structure.json. Before building, review the validation summary's measured volume, exact node IDs, base IDs, and refnodes. A volume-derived mass request must repeat that measured volume exactly.

BeamNG 0.38's documented vehicle/flexbody runtime format is Collada DAE. glTF export is available only for diagnostic interchange and cannot be assembled as a runtime soft body. Blender versions can coexist: the validated Windows reference uses portable Blender 4.5.4 LTS with wm.collada_export, while Blender 5.2 may remain installed for other work. Configure the exact binary and let the live capability probe decide; the helper fails closed when no unambiguous selection-only DAE exporter is available. See the complete Soft-Body Authoring guide.

Zip archives place lua, levels, vehicles, and other BeamNG roots directly at the archive root, matching the official mod packing rules. Installing an authored Lua mod executes that mod's Lua inside BeamNG. Validation catches structural problems and suspicious patterns; it is not a sandbox or a security proof. Keep installation off until an operator has reviewed the exact artifact.

Newly created map objects are bridge-managed. Updating or deleting pre-existing level objects is disabled unless workspace.allow_existing_map_object_edits = true is set and the Lua bridge is reinstalled so its independent gate agrees.

Triggers use a stricter, separate path:

map_trigger_create (draft only)
→ map_trigger_update(enabled=true)
→ map_trigger_get / map_trigger_list
→ map_trigger_events(after_sequence=...)
→ map_trigger_update(enabled=false)
→ map_trigger_delete(confirm=true)

V1 triggers are ephemeral Box volumes with typed center, contains, or overlaps modes and race_corners or bounding_box tests. Their only action is to emit selected enter/exit events for real vehicles to the authenticated connection that owns the draft. The bridge derives the scene-object name internally, fixes the callback to BeamNG's onBeamNGTrigger, disables ticking and saving, makes enabled triggers immutable, and deletes them on disable, disconnect, mission transition, or extension unload. If exact identity verification or engine deletion fails, the bridge fails closed instead of forgetting the possibly live object: it makes the record ownerless and event-silent, retains its exact object/ID/name/generation evidence for cleanup retry, and retires that quarantine only after an exact deletion retry succeeds or mission teardown proves both registered ID and name absent. Quarantined records continue to consume the bridge's global 64-trigger cap. Re-run beamng-mcp install-lua --force after upgrading; the Python client rejects trigger mutations when the installed bridge does not advertise the new methods.

map_trigger_events exposes only events that passed the Python client's strict authenticated event schema. Its bounded cursor page reports the current sequence, the oldest buffered sequence, and truncated=true when deque loss or any sequence gap means events were missed.

Live map edits are ephemeral until map_save. Persistent saves require all of:

  • workspace.allow_persistent_map_edits = true

  • reinstalling/updating the Lua bridge so its independent gate matches

  • an initialized World Editor

  • the exact loaded level identifier and confirm = true, for example map_save(level="west_coast_usa", confirm=true)

BeamNG 0.38's editor save function does not expose its internal serialization result. The tool therefore reports save_requested=true and verified=false; inspect the user-level files or reload the level before treating the write as durable.

Work on cloned/user-folder levels; do not edit shipped game content.

Security posture

  • stdio is the default MCP transport.

  • Optional Streamable HTTP binds only to loopback, enables DNS-rebinding protection, and requires a 32+ character bearer token.

  • BeamNGpy and Lua WebSocket endpoints are loopback-only.

  • The Lua bridge exposes no direct arbitrary Lua-eval, unrestricted extension-load, shell, or file tool. Separately, installing an authored Lua mod is code execution and is disabled by default.

  • BeamNGTrigger and ParticleEmitterNode have a narrow read-only generic inspection path for packaged-scene validation. They remain excluded from generic create/update/delete; trigger callbacks, command fields, ticks, and arbitrary actions are not client-controlled, and typed live triggers remain ephemeral and tied to exact bridge ownership records.

  • Every autonomy_start mode requires an authenticated engine-side real-time lease. The Python supervisor and GELua expiry brake are separate safety layers; neither replaces an operator's manual stop path.

  • Vision backends warm while native AI is disabled and the vehicle is fully braked, before the short engine lease is armed. Direct vehicle_control calls remain one-shot, may latch until a follow-up command, and are rejected while an automated run is starting or active. Its default ADAS arbitration preserves local-driver priority; is_adas=false intentionally bypasses that arbitration and is reserved for isolated automation sessions.

  • Mod paths are canonicalized beneath one workspace; traversal and symlinks are rejected.

  • Blender handoffs use random, capped, expiring, single-use directories with fixed filenames, stable reads, DAE XML/external-reference checks, SHA-256 binding, and transactional bundle writes. The structured handoff request and reviewed helper/runner digests are also held in the current server session; slots fail closed after a restart and stale/consumed slots are pruned.

  • Blender MCP 1.6.4's execute-code bridge is unauthenticated loopback, full-trust local code execution and may capture code telemetry. Set BLENDER_MCP_DISABLE_TELEMETRY=1 before launching it when private assets or paths are involved. The handoff hashes provide consistency evidence, not cryptographic attestation of Blender or its host.

  • A structural build reserves (consumes) its slot before any mod commit. If the transactional commit fails, create a fresh handoff. Replacing existing bundle files requires overwrite=true and an expected_sha256 entry for every generated target that already exists.

  • Mod file count, total bytes, and individual file size are bounded. Overwrites use optimistic hashes or backups. Destructive operations expose accurate MCP hints and enforce operator gates where a model-supplied confirmation alone is insufficient.

  • Video is never base64-streamed through MCP or WebSocket.

Read the security policy before enabling persistent map changes or HTTP.

Development

uv sync --extra dev
uv run ruff format --check .
uv run ruff check .
uv run mypy src/beamng_mcp
uv run pytest -q

Simulator integration tests are opt-in because CI cannot redistribute or launch BeamNG. The mocked suite validates protocol contracts, tool schemas, path confinement, packaging, auth, watchdogs, controls, and perception geometry. Local opt-in tests cover the real Blender exporter, Blender MCP profile, isolated BeamNG/Lua/vehicle lifecycle, an end-to-end ramp build/load, and GPU camera perception. See Development.

Project status and licensing

This is an independent community project and is not affiliated with or endorsed by BeamNG GmbH. BeamNG, BeamNG.drive, and BeamNG.tech are trademarks of their respective owner. No proprietary game maps, models, or other assets are included.

Python and original Lua code in this repository are available under the MIT License. BeamNG software has its own terms and BeamNG.tech may require a separate license.

Available Tools

57 tools
autonomy_startC

Start native AI, vision lane keeping, or hybrid simulated autonomous driving.

ParametersJSON Schema
NameRequiredDescriptionDefault
specYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
backendNo
runningYes
confidenceNo
started_atNo
target_fpsNo
vehicle_idNo
frame_age_msNo
hazard_scoreNo
inference_msNo
last_controlNo
measured_fpsNo
watchdog_armedNo
watchdog_tripsNo
watchdog_reasonNo
emergency_reasonNo
watchdog_latchedNo
emergency_stoppedNo
perception_deviceNo
engine_deadman_armedNo
perception_providersNo
engine_deadman_last_errorNo
engine_deadman_expires_in_msNo
engine_deadman_lease_secondsNo
engine_deadman_control_authorizedNo
engine_deadman_last_renewal_age_msNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are neutral (non-readonly, non-destructive). The description does not add behavioral context beyond stating the action, e.g., it doesn'tt mention side effects like overriding existing control or state dependencies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence with no wasted words, front-loading the key action and resource.

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

Completeness2/5

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

The tool has high complexity (1 nested parameter with many fields) and an output schema, but the description lacks context about return values, prerequisites, or how to use parameters effectively. Incomplete for an AI agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description provides no explanation of any parameters. The input schema has 10+ parameters with enums and ranges, but the description only names modes without linking to any parameter meaning.

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 clearly states the verb 'Start' and the resource 'autonomous driving' with three specific modes, distinguishing it from siblings like autonomy_stop and autonomy_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool, prerequisites (e.g., vehicle must be spawned), or situations where alternatives are better. Only a brief mention of modes.

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

autonomy_statusA
Read-onlyIdempotent

Read perception rate, latency, controls, watchdog, and emergency state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
backendNo
runningYes
confidenceNo
started_atNo
target_fpsNo
vehicle_idNo
frame_age_msNo
hazard_scoreNo
inference_msNo
last_controlNo
measured_fpsNo
watchdog_armedNo
watchdog_tripsNo
watchdog_reasonNo
emergency_reasonNo
watchdog_latchedNo
emergency_stoppedNo
perception_deviceNo
engine_deadman_armedNo
perception_providersNo
engine_deadman_last_errorNo
engine_deadman_expires_in_msNo
engine_deadman_lease_secondsNo
engine_deadman_control_authorizedNo
engine_deadman_last_renewal_age_msNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows it is safe. The description adds value by listing the exact components monitored (perception rate, latency, etc.), giving context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, short and to the point. Every word adds value: 'Read' as verb, then list of items. No fluff.

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 tool with no parameters and an output schema, the description sufficiently states what data it retrieves. It is complete for its simplicity, though could perhaps mention that it returns current live values, but that is implied by 'state'.

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?

There are zero parameters, so the schema covers 100%. Description does not need to add parameter details, and the baseline of 4 is appropriate. No missing information.

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?

Description starts with 'Read', a specific verb, followed by a clear list of what is read: perception rate, latency, controls, watchdog, and emergency state. This clearly distinguishes it from sibling tools like autonomy_start or emergency_stop.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating it reads specific status fields, but does not explicitly state when to use it or when not to, nor does it mention alternatives. Given the tool has no parameters and is a read-only status check, the lack of explicit guidance is acceptable but not ideal.

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

autonomy_stopA

Stop autonomous driving and apply full braking.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNooperator_stop

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
backendNo
runningYes
confidenceNo
started_atNo
target_fpsNo
vehicle_idNo
frame_age_msNo
hazard_scoreNo
inference_msNo
last_controlNo
measured_fpsNo
watchdog_armedNo
watchdog_tripsNo
watchdog_reasonNo
emergency_reasonNo
watchdog_latchedNo
emergency_stoppedNo
perception_deviceNo
engine_deadman_armedNo
perception_providersNo
engine_deadman_last_errorNo
engine_deadman_expires_in_msNo
engine_deadman_lease_secondsNo
engine_deadman_control_authorizedNo
engine_deadman_last_renewal_age_msNo

TDQS

A3.6/5.0
Behavior4/5

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

The description adds the behavioral detail of applying full braking, which goes beyond the annotations. Annotations are consistent with a state-changing action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the action. No unnecessary words.

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?

While the core action is clear, the lack of parameter explanation and usage guidance makes it only minimally adequate for a tool with a single optional parameter and an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not mention the 'reason' parameter, and schema description coverage is 0%. The agent must infer the parameter's purpose from its name and default value.

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 clearly states the verb 'Stop' and the resource 'autonomous driving', with the additional action 'apply full braking'. This distinguishes it from siblings like 'autonomy_start' and 'emergency_stop'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'emergency_stop'. There is no mention of prerequisites or context.

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

capabilities_getA
Read-onlyIdempotent

Return supported tiers, connection state, safety gates, and available tool names.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
toolsYes
limitationsNo
lua_connectedYes
server_versionYes
beamngpy_connectedYes
beamngpy_officially_supportedYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by specifying exactly what data is returned (tiers, connection state, etc.), which annotations do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, efficient sentence that immediately conveys the tool's output. No wasted words.

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?

The output schema exists (not shown in input but noted), so the description needn't detail return types. It provides enough context for an agent to decide when to call it.

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?

No parameters, so baseline 4. The description compensates by listing the return categories, aiding the agent in understanding what the tool provides.

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?

Description explicitly states what the tool returns: 'supported tiers, connection state, safety gates, and available tool names.' This leaves no ambiguity about its purpose as a system capabilities getter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives, but given its unique role (returning system capabilities) and no similar sibling tools, the need is minimal. Still, mentioning common use cases (e.g., initialization) would improve clarity.

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

emergency_stopB
Idempotent

Immediately brake through every connected control path; safe and idempotent.

ParametersJSON Schema
NameRequiredDescriptionDefault
vehicle_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

B3.2/5.0
Behavior4/5

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

Beyond annotations (idempotentHint, destructiveHint), the description adds 'immediately brake through every connected control path' and 'safe,' which clarifies the concrete behavior and safety profile. It does not repeat annotation data verbatim.

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 description is concise and front-loaded with the action. However, it sacrifices essential parameter information for brevity, preventing a perfect score. The structure is clear and efficient.

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

Completeness2/5

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

For a tool with potentially serious consequences, the description lacks context such as prerequisites (e.g., vehicle existence), side effects, or return value (despite an output schema existing). It is too minimal for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description omits any mention of the only parameter (vehicle_id). It provides no information about the parameter's purpose, usage, or default behavior, leaving a critical gap.

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 clearly states the action ('brake') and scope ('every connected control path'), effectively distinguishing it from sibling tools like vehicle_control or autonomy_stop. It leaves no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool vs. alternatives. While 'emergency' is implied by the name and 'immediately brake,' it does not state prerequisites, contraindications, or compare with related tools like vehicle_control.

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

environment_getA
Read-onlyIdempotent

Read gravity and time-of-day state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds the specific data items read (gravity, time-of-day), which is useful but not extensive. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, front-loaded with the verb and resource.

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?

Given the tool's simplicity (no parameters, has output schema), the description completely conveys what is retrieved.

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?

There are no parameters, so the description does not need to add parameter meaning. The baseline for 0 parameters is 4.

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 uses a specific verb 'Read' and identifies the resource as 'gravity and time-of-day state', clearly distinguishing this read-only tool from the sibling 'environment_set'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states what the tool does but provides no guidance on when to use it vs alternatives or when not to use it. For a simple getter, the purpose implies usage context, but explicit guidelines are absent.

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

environment_setC

Set gravity, time-of-day playback, and/or a weather preset.

ParametersJSON Schema
NameRequiredDescriptionDefault
playNo
gravityNo
time_of_dayNo
weather_presetNo
transition_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, consistent with 'Set'. However, the description adds no extra behavioral context (e.g., permissions, side effects, or that setting one parameter may affect others). With annotations present, the bar is lower, but the description adds minimal value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise. However, it omits two parameters, making it incomplete. It is front-loaded but not adequately informative.

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

Completeness2/5

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

Given 5 parameters, no schema descriptions, and no usage guidelines, the description is insufficient for an agent to use the tool correctly without additional knowledge. The presence of an output schema does not compensate for missing parameter semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. It only lists three of five parameters (misses 'play' and 'transition_seconds'). No details on valid values, formats, or constraints for any parameter. This is a critical gap.

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 clearly states the verb 'Set' and the resources 'gravity, time-of-day playback, and/or a weather preset'. It distinguishes from siblings like environment_get (get) and other setting tools. No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. Among siblings, environment_get exists for reading, but no when-to-use or when-not advice is given.

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

job_cancelA

Cancel cooperative work; non-cancellable stages return an actionable error.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYes
errorNo
stageNoCurrent work stage, or the terminal outcome stage
job_idYes
resultNo
statusYes
progressYes
created_atYes
updated_atYes
cancellableNoWhether job_cancel can safely interrupt the current stage

TDQS

A3.7/5.0
Behavior4/5

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

Discloses that non-cancellable stages return an actionable error, adding behavior beyond annotations. However, does not detail side effects or success behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no unnecessary words, front-loaded with action.

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?

Given output schema exists, description provides minimal information about behavior on failure but lacks details on success return, prerequisites, or side effects. Adequate for a simple cancel operation but not comprehensive.

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?

Single parameter job_id is obvious from context, but with 0% schema description coverage, the description does not explicitly state that job_id identifies the job. Acceptable but could be improved.

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?

Clearly states action (cancel) and resource (cooperative work). Distinguishes from siblings like job_list and emergency_stop.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions that non-cancellable stages return an actionable error, implying when usage fails, but does not provide explicit when-to-use or alternatives.

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

job_getA
Read-onlyIdempotent

Read one job's status, current stage, cancellability, result, and error.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYes
errorNo
stageNoCurrent work stage, or the terminal outcome stage
job_idYes
resultNo
statusYes
progressYes
created_atYes
updated_atYes
cancellableNoWhether job_cancel can safely interrupt the current stage

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's burden is reduced. It adds value by listing the specific fields returned (status, current stage, cancellability, result, error), providing behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the action and resource, containing no extraneous information. Every word is necessary and contributes to understanding.

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?

Given the tool's simplicity (1 parameter, output schema exists), the description adequately lists the key return values. However, it omits any mention of error scenarios or prerequisites (e.g., job existence), but with annotations covering safety, it is mostly sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the single parameter 'job_id', and the tool description does not provide any additional meaning about the parameter (e.g., format, source, constraints). For a tool with a single parameter, the description should at least explain its role, which it fails to do.

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 uses a specific verb 'Read' and clearly identifies the resource as 'one job', listing the specific attributes returned. It effectively distinguishes this tool from sibling tools like job_list (which lists jobs) and job_cancel (which cancels jobs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by stating what the tool does, but it does not explicitly state when to use this tool versus alternatives (e.g., job_list for listing all jobs, job_cancel for cancellation). The guidance is merely implied rather than explicit.

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

job_listA
Read-onlyIdempotent

List recent jobs with their current stages and cancellability.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint; the description adds behavioral context like 'recent jobs' and includes payload details (stages, cancellability). This is helpful beyond annotations, though 'recent' could be clarified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and to the point. No redundant words or fluff.

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?

Given the tool's low complexity (one optional parameter, output schema exists), the description covers the essential context. It could mention ordering or result format but is adequate overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the sole parameter 'limit'. Since it fails to add any semantics beyond the schema, this is a significant gap.

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 clearly states the action (list), resource (jobs), and key information provided (current stages and cancellability). It effectively distinguishes from siblings like job_get which retrieves individual jobs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use to list jobs. However, no explicit guidance is given on when not to use it (e.g., for a single job use job_get) or prerequisites. The description lacks alternative mentions.

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

lua_bridge_statusA
Read-onlyIdempotent

Read bridge status; probe=true attempts an authenticated loopback connection.

ParametersJSON Schema
NameRequiredDescriptionDefault
probeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
connectedYes
last_errorNo
latency_msNo
game_versionNo
authenticatedYes
bridge_versionNo
last_message_atNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already indicate read-only and idempotent behavior. The description adds that probe=true attempts an authenticated loopback connection, providing valuable behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that directly states purpose and a key parameter behavior. No unnecessary words, front-loaded with the main action.

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?

The tool is simple with one optional parameter and an output schema. The description fully covers what the tool does and the probe parameter's effect, leaving no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema defines 'probe' as a boolean with default false, but the description explains its effect (authenticated loopback connection), which adds significant meaning and practical usage insight.

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 clearly states the tool reads bridge status, with an optional probe mode. It uses specific verbs and resource, distinguishing it from sibling tools that perform different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (read status) but does not explicitly state when to use probe mode versus not, nor does it provide context for alternatives among siblings.

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

lua_extension_reloadC

Reload an extension from the Lua bridge's own strict allowlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNobeamng_mcp/bridge

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With all annotations set to false, the description carries full burden but only states 'Reload' without disclosing side effects, permission requirements, or what changes occur. The term 'reload' implies potential disruptive behavior (e.g., resetting state) but is not clarified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it is too minimal to be effective. It earns its place by stating the purpose but omits essential details.

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

Completeness2/5

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

Despite low complexity (1 optional parameter with default), the description is incomplete. It lacks context about what reloading entails, the meaning of 'strict allowlist', and the output (though an output schema exists).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the tool description does not mention the 'name' parameter at all. No explanation of how to specify which extension to reload, nor the purpose of the default value.

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 explicitly states the action ('Reload') and the resource ('extension from the Lua bridge's own strict allowlist'). It clearly distinguishes from sibling tools like lua_bridge_status, as no other tool performs reloading.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool, no mention of prerequisites, nor any differentiation from alternatives. Usage can only be inferred from the name.

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

map_object_createC

Create an allowlisted live scene object without saving the level.

ParametersJSON Schema
NameRequiredDescriptionDefault
mutationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With all annotations false, the description carries the full burden. It reveals that the object is created in a live scene and not saved, but fails to disclose other traits like 'allowlisted' requirements, side effects, or whether the operation is immediately visible.

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?

A single sentence achieves high conciseness with zero wasted words, though it could be expanded with key details without becoming verbose.

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

Completeness1/5

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

Given the complexity of the nested MapObjectMutation schema (many parameters, no descriptions) and the presence of an output schema (not shown), the description is severely incomplete. It fails to explain required fields, value constraints, or the return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. However, it provides no information about parameters such as name, class_name, scale, position, rotation, or fields, leaving the agent to infer from the schema alone.

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 clearly states the action (create), resource (allowlisted live scene object), and a key qualifier (without saving the level). This distinguishes it from related tools like map_object_update and map_save.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without saving the level' implies a non-persistent use case, but there is no explicit guidance on when to use this tool versus alternatives like map_object_update or map_save.

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

map_object_deleteA
Destructive

Delete a live scene object; confirm=true is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
object_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true, and the description adds the key behavioral detail that deletion requires explicit confirmation via 'confirm=true'. This is beyond what annotations provide, though full side-effects (e.g., cascade deletion) are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no extraneous words. Every word earns its place, conveying purpose and a crucial usage requirement efficiently.

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?

Given destructiveHint annotations and an output schema (not shown), the description is minimally adequate. However, it omits prerequisites (e.g., object existence) and fails to explain the object_id parameter, leaving gaps for an agent to infer correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only mentions 'confirm' but does not explain 'object_id'—a required parameter with ambiguous type (string or integer). The agent lacks guidance on what value to use for the identifier.

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 clearly states the verb 'Delete' and the resource 'live scene object', making the tool's function immediately obvious. It distinguishes from sibling tools like map_object_create and map_object_update by specifying deletion.

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 description explicitly requires 'confirm=true', which is a critical usage condition. While it doesn't list alternatives or when-not-to-use scenarios, the sibling tool names provide natural context for when to use delete vs other operations.

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

map_object_getA
Read-onlyIdempotent

Read one live scene object by name or numeric ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
object_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, clearly indicating a safe read operation. The description adds minimal behavioral context ('live scene object') but does not disclose any additional traits like what happens if the object is not found. Given annotation coverage, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single 8-word sentence with no superfluous content. It is efficiently front-loaded and every word earns its place.

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?

Given the tool's simplicity, the existence of an output schema (which would describe return values), and the clear parameter guidance, the description is reasonably complete. It could briefly mention error cases (e.g., object not found) but is sufficient for an agent.

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?

With schema description coverage at 0%, the description adds crucial meaning to the single parameter 'object_id' by specifying it can be a name or numeric ID. This goes beyond the schema's anyOf type definition, helping the agent understand allowed values.

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 clearly specifies the verb 'Read', the resource 'one live scene object', and the identification method 'by name or numeric ID'. It effectively distinguishes this tool from siblings like map_object_list (which reads multiple objects) and map_object_create (which creates).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing to read a single object by ID, but it does not explicitly state when to use this tool over alternatives like map_object_list (for multiple objects) or other read tools. There is no mention of context or exclusions, leaving the agent to infer usage.

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

map_object_listC
Read-onlyIdempotent

List allowlisted live scene objects through the GELua bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
class_nameNo
name_prefixNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. The description adds the mechanism ('through the GELua bridge'), which is useful but does not elaborate on 'allowlisted' or any behavioral nuances beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (8 words, one sentence) and front-loaded with the action. However, it sacrifices important details (parameter semantics, usage guidance), making it under-specified rather than optimally concise.

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

Completeness2/5

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

Given the tool's complexity (3 parameters, output schema exists but not detailed), the description is too sparse. It fails to mention filtering capabilities or expected output format, leaving the agent without sufficient context to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the three parameters (limit, class_name, name_prefix). An agent cannot infer how to filter or paginate without additional context, making this a critical gap.

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 clearly states the action 'list' and the resource 'allowlisted live scene objects' via 'GELua bridge'. It distinguishes from siblings like map_object_get (single object retrieval) and map_object_create (creation). However, it does not explain what 'allowlisted' means, which may cause ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. It does not compare with sibling tools (e.g., map_object_get for individual object details) or mention prerequisites or limitations, leaving the agent to infer context.

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

map_object_updateB
Destructive

Update an allowlisted live scene object's transform or safe fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
patchYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

The description adds that it updates 'transform or safe fields', which provides some behavioral context beyond the destructiveHint annotation. However, it does not explain what 'safe fields' means or what happens if the object is not allowlisted, leaving gaps in understanding the tool's behavior.

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 description is concise at 12 words, but given the tool's complexity (1 parameter with many nested fields), it is overly brief and could benefit from more detail without sacrificing conciseness. The structure is efficient but under-informative.

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

Completeness2/5

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

The description lacks context about what 'safe fields' are, prerequisite conditions (e.g., allowlisting), and potential side effects. While an output schema exists, the description still fails to provide enough information for an agent to confidently decide when to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description does not mention any parameters (object_id, position, rotation, scale, fields, new_name). The agent must rely solely on the complex input schema, which includes arrays, nulls, and patterns, making parameter understanding difficult without additional textual explanation.

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 clearly states the verb 'Update' and the resource 'allowlisted live scene object', distinguishing it from sibling tools like map_object_create (create) and map_object_delete (delete). It specifies the scope 'transform or safe fields', making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites (e.g., object must be allowlisted) or when not to use it. Given the variety of sibling tools, this omission forces the agent to infer usage context.

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

map_road_edgesA
Read-onlyIdempotent

Read left, middle, and right edge points for one road.

ParametersJSON Schema
NameRequiredDescriptionDefault
road_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior. The description adds that it reads three types of edge points, providing additional context without contradicting annotations. No side effects are mentioned, but annotations cover that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately conveys the tool's purpose without any fluff. Every word earns its place.

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 simple read-only tool with one parameter and an output schema, the description covers the basic purpose. It omits details about the output format but the presence of an output schema reduces the burden. The description is mostly adequate but could be slightly more informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 1 parameter (road_id) with 0% description coverage. The tool description does not explain the format, source, or constraints of road_id, leaving the agent to infer how to fill it. The description should compensate but fails to do so.

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 clearly states the action 'Read' and specifies the resource 'left, middle, and right edge points for one road'. This distinguishes it from sibling tools like map_road_network which likely returns the entire road network, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for a single road but does not explicitly state when to use this tool versus alternatives like map_road_network or other map tools. No guidance on prerequisites or when not to use is provided.

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

map_road_networkC
Read-onlyIdempotent

Read a bounded slice of the current map road network.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
drivable_onlyNo
include_edgesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description's additional 'bounded' qualifier adds some context about data limitation, but no further behavioral traits (e.g., pagination, filtering behavior) are disclosed.

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 description is extremely concise (one sentence) with no wasted words, but it could be slightly more informative without sacrificing brevity.

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

Completeness2/5

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

Although an output schema exists, the description lacks essential context about the tool's behavior, parameter effects, and relationship to sibling tools. For a tool with three parameters and no param descriptions, the description is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fails to add meaning to the three parameters (limit, drivable_only, include_edges). It only vaguely mentions 'bounded slice,' which does not compensate for the missing parameter documentation.

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 clearly states 'Read a bounded slice of the current map road network,' specifying the verb 'Read' and resource 'map road network,' and distinguishes from sibling 'map_road_edges' by implying a filtered or limited retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'map_road_edges' or other map tools, nor does it mention any preconditions or exclusions.

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

map_saveC
Destructive

Request an editor save behind both gates; BeamNG 0.38 cannot verify durability.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYes
confirmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and readOnlyHint=false. The description adds valuable behavioral context: the version limitation ('BeamNG 0.38 cannot verify durability') and the notion of 'behind both gates', which hints at safety checks. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence) but at the expense of clarity due to jargon. It is not well-structured for quick comprehension.

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

Completeness2/5

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

For a tool with two parameters and an output schema, the description is incomplete. It does not explain return values, the meaning of 'gates', or the implications of the durability limitation. The agent lacks enough context to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any parameters. The tool has two parameters ('level', 'confirm') but their meaning and usage are completely omitted, leaving the agent without critical information.

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

Purpose3/5

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

The description mentions 'editor save', indicating a save operation, but uses ambiguous jargon ('behind both gates') and does not clearly specify what is being saved or how it relates to the map. While it distinguishes from other sibling tools, the purpose is vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites, typical use cases, or when to avoid it.

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

map_trigger_createB

Create a disabled, ephemeral box-trigger draft with bridge-event actions only.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
countYes
debugYes
scaleYes
shapeYes
actionYes
handleYes
enabledYes
positionYes
rotationYes
sequenceYes
object_idNo
test_typeYes
last_eventNo
persistentYes
engine_nameYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations provide basic traits (readOnlyHint=false, destructiveHint=false); the description adds valuable context: the trigger is disabled, ephemeral, and only supports bridge events, going beyond schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence is concise but omits key details like the meaning of 'ephemeral' or 'draft'; front-loaded but could be more informative without becoming verbose.

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?

With many sibling tools and an output schema, the description is adequate but lacks parameter details and usage guidance; could be more comprehensive for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any parameters; the single 'request' parameter's structure is left entirely to the schema.

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 clearly states the tool creates a disabled, ephemeral box-trigger draft with bridge-event actions, distinguishing it from other map_trigger tools like update or list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use versus alternative tools like map_trigger_update; usage is implied for creating new triggers but lacks context for decision-making.

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

map_trigger_deleteA
Destructive

Delete a bridge-owned trigger; confirm=true is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYes
confirmNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
handleYes
deletedYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true. The description adds that confirmation is required, providing extra behavioral context beyond annotations. No contradictions.

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 description is a single, concise sentence with no superfluous information, though it could be slightly more informative without losing conciseness.

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?

Given the simple nature of a delete tool, the description covers the essential action and a key parameter requirement. The presence of an output schema reduces the need to describe return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should compensate. It only clarifies that confirm must be true, but does not explain the handle parameter or the meaning of confirm beyond being required.

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 explicitly states 'Delete a bridge-owned trigger', providing a specific verb and resource. It clearly distinguishes from sibling tools like map_trigger_create, map_trigger_get, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that confirm=true is required, offering a usage condition, but does not provide guidance on when to use this tool versus alternatives or when not to use it.

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

map_trigger_eventsB
Read-onlyIdempotent

Page sanitized bridge events for one currently owned trigger handle.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
handleYes
after_sequenceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitYes
eventsYes
handleYes
has_moreYes
truncatedYesTrue when one or more requested events were lost or a sequence gap exists
current_countYes
next_sequenceYes
after_sequenceYes
latest_sequenceYes
oldest_available_sequenceNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds the ownership constraint ('currently owned trigger handle') and the concept of 'sanitized bridge events,' which provides some behavioral context beyond annotations. However, it does not explain pagination behavior, ordering, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no wasted words. The verb 'Page' is front-loaded, immediately conveying the action. Structure is excellent.

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

Completeness2/5

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

With 3 parameters, an output schema, and no param descriptions, the description is too brief. It does not explain what 'sanitized bridge events' are, how pagination works, or what the output schema contains. The existence of an output schema reduces the need to explain return values, but the description still lacks essential context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. The description mentions 'trigger handle' but does not describe the 'limit' or 'after_sequence' parameters. The term 'page' implies pagination, but no specifics. This is insufficient for an agent to know how to use the parameters correctly.

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 verb 'Page' indicates pagination, and the resource is 'sanitized bridge events for one currently owned trigger handle.' This clearly distinguishes it from sibling tools like map_trigger_list (which lists triggers) and map_trigger_get (gets a single trigger). However, 'sanitized bridge events' is somewhat jargon-heavy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like map_trigger_get or map_trigger_list. The criteria 'currently owned trigger handle' is implied but not stated as a prerequisite. No mention of when not to use.

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

map_trigger_getA
Read-onlyIdempotent

Read one bridge-owned trigger by its opaque handle.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
countYes
debugYes
scaleYes
shapeYes
actionYes
handleYes
enabledYes
positionYes
rotationYes
sequenceYes
object_idNo
test_typeYes
last_eventNo
persistentYes
engine_nameYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, non-destructive. Description adds 'bridge-owned' context but no further behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with verb, resource, and qualifier. No wasted words, front-loaded.

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?

Sufficient for a simple read tool with one param, good annotations, and output schema present. Could mention error handling for missing handle.

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?

Adds 'opaque handle' qualifier to the parameter, partially compensating for 0% schema description coverage, but lacks detail on format or origin.

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?

Clear verb 'Read' and resource 'one bridge-owned trigger'. Distinct from sibling list/update/create/delete tools which have different actions or scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied when you have a specific handle, but no explicit guidance on when to use over list or alternatives like events.

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

map_trigger_listC
Read-onlyIdempotent

List a bounded set of bridge-owned ephemeral triggers.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
limitYes
triggersYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, so the agent knows it is safe and idempotent. The description adds the traits 'bounded set' and 'ephemeral,' which give context about the triggers' nature but do not contradict annotations. No annotation contradiction detected.

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 description is a single concise sentence that front-loads the core purpose. It contains no redundant information, though it is very brief. It earns its place but could be expanded slightly without losing conciseness.

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

Completeness2/5

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

Given the tool has one parameter and an output schema, the description is too minimal. It does not explain what 'bridge-owned ephemeral triggers' are, how the 'bounded' limit works, or what the output contains (though the output schema exists). For a listing tool among many trigger tools, more context is needed for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate but does not mention the 'limit' parameter at all. The schema only shows a single optional integer parameter with defaults and bounds; the description adds no semantic meaning to help the agent select or set the parameter correctly.

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 states 'List a bounded set of bridge-owned ephemeral triggers,' which clearly indicates a listing operation on triggers with specific qualifiers (bounded, bridge-owned, ephemeral). This distinguishes it from sibling tools like map_trigger_get (single) or map_trigger_create (creation), though the term 'bridge-owned' could benefit from clarification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus the many trigger-related siblings (e.g., map_trigger_get, map_trigger_events). It does not mention exclusions, prerequisites, or scenarios where alternatives are preferred.

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

map_trigger_updateB
Destructive

Update a trigger draft or explicitly enable/disable it.

ParametersJSON Schema
NameRequiredDescriptionDefault
patchYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
countYes
debugYes
scaleYes
shapeYes
actionYes
handleYes
enabledYes
positionYes
rotationYes
sequenceYes
object_idNo
test_typeYes
last_eventNo
persistentYes
engine_nameYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true. The description adds that it enables/disables, but doesn't clarify what destructive behavior might occur (e.g., overwriting fields). No contradiction but could be more explicit.

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?

Single sentence, no wasted words. However, could be slightly more informative without losing conciseness.

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

Completeness2/5

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

Given the complex nested schema, the description is too brief. Lacks details on patch semantics, prerequisites, or common patterns. The output schema exists but the description doesn't help the agent understand usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the top-level parameter 'patch'. The description does not explain what fields can be updated or how to use the patch. The nested schema has some descriptions, but the tool description adds no value for parameter meaning.

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 clearly states it updates a trigger draft or enables/disables it. The verb 'update' and resource 'trigger' are specific, and it distinguishes from siblings like create, get, list, delete, and events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives like map_trigger_create or map_trigger_delete. The purpose is clear, but missing context for selection.

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

mod_file_listB
Read-onlyIdempotent

List mod workspace files with sizes and SHA-256 revisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
mod_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, indicating a safe read operation. The description adds that the tool returns file sizes and SHA-256 revisions, which is useful context but does not disclose additional behavioral traits beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the core purpose without any filler. Every word is necessary and the information is front-loaded.

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 simple list operation with one parameter and an output schema, the description is nearly complete. However, it omits clarification of what constitutes a 'mod workspace' or how the file list is scoped, which could aid understanding despite the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description fails to explain the required 'mod_name' parameter—what it refers to, how to obtain its value, or its role in listing files. With 0% schema coverage, the description should compensate but does not, leaving the parameter underspecified.

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 clearly states the action ('List mod workspace files') and the information returned ('sizes and SHA-256 revisions'). It is specific and distinct from sibling tools, which focus on other operations like reading/writing files or managing maps and vehicles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. There is no mention of prerequisites (e.g., needing to select a mod workspace first) or exclusions, leaving the agent to infer usage from the name alone.

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

mod_file_readA
Read-onlyIdempotent

Read one UTF-8 mod file and return its SHA-256 for optimistic writes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
mod_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds value by specifying UTF-8 encoding and the SHA-256 return value for optimistic write patterns, which is beyond annotation scope.

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?

Extremely concise single sentence with no wasted words. However, brevity comes at the cost of parameter explanation, which could be included without much overhead.

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?

With an output schema present, return value details are covered. But missing parameter descriptions leave a gap. The tool is simple, so the description is minimally adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no information about the two parameters (mod_name, path). The agent must infer their meaning from names alone, which is insufficient.

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 clearly states the action ('Read one UTF-8 mod file') and the return value ('SHA-256'), distinguishing it from sibling tools like mod_file_write or mod_file_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for optimistic writes' implies a common use case but no explicit guidance on when to use vs. alternatives or when not to use. Lacks direct exclusions or alternative tool references.

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

mod_file_writeB
Destructive

Atomically write a UTF-8 mod file, optionally requiring an expected SHA-256.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
sizeYes
sha256Yes

TDQS

B3/5.0
Behavior4/5

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

Annotations indicate destructiveHint=true, but the description adds value by stating atomicity and conditional write via expected SHA-256. This goes beyond annotations, though it doesn't detail failure modes or side effects like overwriting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise but lacking detail. It is front-loaded with the key action, yet essential information is omitted, making it under-specified rather than optimally concise.

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

Completeness2/5

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

For a destructive write tool with multiple required parameters and an output schema not shown, the description is incomplete. It does not address overwriting behavior, path creation, or response details, leaving gaps despite available annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only mentions 'expected SHA-256' but does not explain the other parameters (mod_name, path, content). The description fails to compensate for the lack of schema documentation.

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 clearly states the action ('Atomically write a UTF-8 mod file') and the optional SHA-256 requirement, matching the tool name 'mod_file_write'. It distinguishes itself from siblings like 'mod_file_read' and 'mod_file_list', but could be more specific about what constitutes a 'mod file'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, no prerequisites, no when-not-to-use scenarios. The description is purely functional without contextual usage advice.

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

mod_installB
Destructive

Install a packed mod into the configured user folder; confirmation is mandatory.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
mod_nameYes
overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
sizeYes
sha256Yes
mod_nameYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, and the description adds 'confirmation is mandatory', aligning with the confirm parameter. However, no further behavioral details (e.g., overwrite behavior, error cases) are disclosed beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but lacks structure. It front-loads the purpose but omits necessary details, making it less useful despite brevity.

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

Completeness2/5

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

Given the tool's destructive nature and three parameters, the description is incomplete. It does not address prerequisites, output schema (which exists), or the modding workflow context implied by sibling tools like mod_pack and mod_validate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description only adds meaning for the confirm parameter ('confirmation is mandatory'). It fails to explain mod_name or overwrite, leaving the agent without guidance on two of three parameters.

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 clearly states the tool's action: 'Install a packed mod into the configured user folder'. It uses a specific verb and resource, and distinguishes from siblings like mod_pack (packing) and mod_validate (validation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage context or alternatives are provided. The description does not mention when to use this tool (e.g., after mod_pack) or when not to, nor does it reference sibling tools.

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

mod_packB
Destructive

Build a correctly rooted BeamNG zip after validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
mod_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
sizeYes
sha256Yes
mod_nameYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true. The description adds 'after validation' as a prerequisite but does not detail what the tool destroys or other behavioral traits (e.g., file overwrites, required permissions). Moderately transparent.

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?

Single sentence with no unnecessary words. Front-loaded with the core action. However, it may be too terse given the tool's complexity.

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?

With an output schema, return value explanation is not needed. The description covers the basic action but omits what 'correctly rooted' means and what validation is performed. Adequate but has gaps for a destructive build tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% so description must compensate. The description only mentions 'Mod Name' but does not explain what mod_name represents (e.g., identifier, path, display name) or how it is used in building the zip. Insufficient for correct parameter usage.

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 clearly states it builds a correctly rooted BeamNG zip after validation. It uses a specific verb ('Build') and resource ('BeamNG zip'), distinguishing it from sibling tools like mod_validate (validation only) and mod_install (install only).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It implies usage 'after validation' but does not mention prerequisites, conditions, or name sibling tools. The agent receives no comparative context.

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

mod_scaffoldB
Destructive

Create a new path-confined mod workspace with a manifest and type-specific roots.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNolua
titleYes
authorYes
mod_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true, and the description is consistent ('Create'). However, no additional behavioral traits are disclosed (e.g., whether it overwrites existing workspaces, filesystem impacts, or required permissions). The description adds 'path-confined' context but lacks depth beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single 10-word sentence that efficiently conveys the core purpose. It is front-loaded and contains no unnecessary words or repetition.

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 tool with 4 parameters (3 required) and an output schema, the description is minimal. It does not mention output format, error conditions, relationship to other mod tools, or lifecycle context (e.g., should this be used before mod_validate?). It meets the minimum viable bar but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the JSON schema provides no parameter descriptions. The tool description only vaguely mentions 'manifest and type-specific roots' but does not explain individual parameters (mod_name, title, author, kind). The agent is left to infer meaning from parameter names alone.

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 clearly states the action ('Create'), the resource ('mod workspace'), and key specifics ('path-confined', 'with a manifest and type-specific roots'). It distinguishes this tool from siblings like mod_file_list and mod_pack, which do different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., mod_validate, mod_install), nor any prerequisites or context for its use. It only states what it does, leaving the agent to infer usage.

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

mod_test_startC
Destructive

Start static validate/pack checks; optional install does not execute the mod.

ParametersJSON Schema
NameRequiredDescriptionDefault
packNo
installNo
mod_nameYes
overwriteNo
confirm_installNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYes
errorNo
stageNoCurrent work stage, or the terminal outcome stage
job_idYes
resultNo
statusYes
progressYes
created_atYes
updated_atYes
cancellableNoWhether job_cancel can safely interrupt the current stage

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already indicate destructiveHint=true. The description adds that install does not execute the mod, but does not disclose other behavioral traits such as whether the process is asynchronous, what side effects occur, or required state (e.g., mod must exist). Minimal added value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded with the main action, but it omits essential details. While concise, it sacrifices completeness, making it minimally acceptable.

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

Completeness1/5

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

For a destructive tool with 5 parameters (1 required) and no schema description coverage, the description is woefully incomplete. It does not explain the process, return values, errors, or interactions with sibling tools. Even with an output schema, the description provides too little context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description only implicitly references the install parameter. It fails to explain mod_name, pack, overwrite, confirm_install, their defaults, or how they affect behavior. This is insufficient compensation.

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 clearly states the tool starts static validate/pack checks and clarifies that optional install does not execute the mod. The verb 'start' and resource 'validate/pack checks' are specific, and the distinction from sibling tools like mod_validate and mod_pack is implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus siblings like mod_validate, mod_pack, or mod_install. The description only mentions that install does not execute the mod, but does not explain the intended workflow or prerequisites.

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

mod_validateB
Read-onlyIdempotent

Validate paths, sizes, manifests, JSON, symlinks, and risky Lua patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
mod_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
issuesNo
mod_nameYes
files_checkedYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, indicating a safe read-only operation. The description adds nothing contradictory and mentions validation checks, which is consistent with annotations. However, it does not elaborate on limitations or side effects (none expected).

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 description is a single sentence listing validation types, which is concise. It front-loads the action 'Validate' immediately. No wasted words, though it could be structured with bullets for clarity.

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?

The description lists what is validated but omits the output format (though output schema exists), error handling, or any behavior details. Given the tool's simplicity and annotation coverage, this is moderately complete but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one required parameter 'mod_name' (type string) with no description. The tool description does not mention the parameter at all, leaving the agent to guess its meaning (e.g., mod folder name). Schema coverage is 0%, so the description should compensate but fails.

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 clearly states the tool validates multiple aspects (paths, sizes, manifests, JSON, symlinks, risky Lua patterns). The verb 'Validate' and specific resources are evident. However, the context of 'mod' is implicit from the tool name and sibling tools, not explicitly stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines provided. There is no indication of when to use this tool versus alternatives (e.g., mod_install, mod_pack, mod_scaffold). The description does not specify prerequisites or post-conditions.

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

scenario_controlC

Start, restart, or stop the loaded scenario.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations (readOnlyHint=false, destructiveHint=false) indicate mutability without destruction, but description adds no further behavioral context—no mention of state transitions, side effects, or whether actions are reversible. For a tool with no annotation details, more behavioral disclosure is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it lacks structure and fails to front-load critical context about prerequisites or side effects. It is adequate but minimal.

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

Completeness2/5

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

Despite having only one parameter and an output schema, the description omits key context: what it means to start/restart/stop a scenario, how this differs from simulation control, and whether it assumes a scenario is already loaded via scenario_load. This leaves an agent without enough information for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (no parameter descriptions), so the description should clarify each enum value's effect. The description only lists the actions without explaining what 'start', 'restart', or 'stop' entail, leaving ambiguity.

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 clearly states the verb (Start, restart, or stop) and the resource (loaded scenario). It effectively distinguishes from siblings like scenario_load or simulation_control by focusing on lifecycle actions of the loaded scenario.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., simulation_control for broader simulation control, scenario_load for loading). Does not mention prerequisites (e.g., scenario must be loaded) or when not to use it.

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

scenario_createC
Destructive

Create surface-relative scenario files; replacement needs two explicit flags.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes
loadNo
vehiclesYes
overwriteNo
descriptionNo
confirm_overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
levelYes
descriptionNo
source_fileNo

TDQS

C2.7/5.0
Behavior3/5

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

The description adds minimal behavioral info beyond annotations. Annotations already indicate destructiveHint=true and readOnlyHint=false. The description mentions 'surface-relative' and 'replacement needs two explicit flags', providing some additional context, but does not disclose side effects like file creation or permissions needed.

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 description is a single, front-loaded sentence that efficiently conveys the core action. It is concise with no redundancy, though it sacrifices some detail.

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

Completeness2/5

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

Given the tool's complexity (6 parameters, nested objects, output schema present), the description is severely lacking. It does not cover expected outcomes, prerequisites, or typical usage patterns, making it hard for an agent to use correctly without additional inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% (no descriptions on tool parameters). The tool description does not explain any parameters (e.g., ref, vehicles, overwrite). The nested objects in the schema have their own descriptions, but the overall parameter semantics are insufficient for correct use.

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 clearly states the tool creates surface-relative scenario files, with an additional hint about replacement requiring two flags. The verb 'create' and resource 'scenario files' are specific, and it is distinguishable from siblings like scenario_list or scenario_load. However, it does not explain what a scenario file represents or its broader context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives (e.g., scenario_load for loading or scenario_control for controlling). The mention of replacement needing two flags is implicit but lacks explicit when-not or alternative tool references.

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

scenario_listA
Read-onlyIdempotent

List available BeamNG scenarios, optionally within one level.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description adds limited behavioral context. It mentions the optional level filter, which is useful, but does not disclose additional traits like pagination or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded, no fluff. Every word earns its place.

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?

Given the tool's simplicity, annotations, and presence of an output schema (mentioned in context), the description is complete. It adequately describes what the tool does without missing critical information.

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 schema has 0% description coverage, but the description adds meaning by stating the level parameter is optional and filters scenarios. This compensates for the lack of schema descriptions.

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 clearly states the tool lists available BeamNG scenarios, optionally filtered by level. It uses specific verb 'list' and resource 'scenarios', distinguishing from sibling tools like scenario_load or scenario_create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives or when not to use it. The purpose is clear from the description, but it does not mention conditions like needing to see all scenarios before loading one.

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

scenario_loadA

Load an existing scenario by level and scenario name.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
levelYes
descriptionNo
source_fileNo

TDQS

A3.8/5.0
Behavior3/5

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

Description adds no behavioral context beyond annotations (readOnlyHint=false, destructiveHint=false). Loading a scenario likely modifies state, consistent with annotations, but side effects and prerequisites (e.g., scenario must exist) are not disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, clear sentence with no unnecessary words. Efficiently conveys purpose.

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?

Given low complexity (one parameter, output schema exists), description covers basic purpose. Omits edge cases like scenario not found, but output schema likely covers return format.

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 coverage is 0%, so description must compensate. It mentions 'level' and 'scenario name' but does not explain their constraints (e.g., pattern, length), adding minimal value beyond schema structure.

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?

Description clearly states verb 'load', resource 'scenario', and selection criteria 'by level and scenario name'. Differentiates from siblings like scenario_create and scenario_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use when an existing scenario needs to be loaded, but no explicit when-not-to-use or alternatives among sibling tools are provided.

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

sensor_attachC

Attach a camera, lidar, radar, ultrasonic, GPS, IMU, or vehicle-state sensor.

ParametersJSON Schema
NameRequiredDescriptionDefault
specYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already indicate this is a mutating operation. The description adds no additional behavioral disclosure, such as side effects, validation, or what happens if a sensor already exists. With annotations present, the description should still add value beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is too terse to be useful. While concise, it lacks structure and fails to convey essential information. Every sentence should earn its place; this one does not.

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

Completeness1/5

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

Given the complexity of the spec parameter and the existence of many sibling tools, the description is severely incomplete. It does not cover return values, prerequisites, or typical usage patterns, relying entirely on the schema which has no descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameters. It only mentions sensor types but provides no details about the spec object's properties (position, direction, streaming, etc.), leaving the agent blind.

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 clearly states it attaches sensors and lists the types: camera, lidar, radar, ultrasonic, GPS, IMU, or vehicle-state. This is specific and distinguishes it from siblings like sensor_remove (removes) and sensor_poll (reads).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool vs alternatives, nor any prerequisites, exclusions, or usage context. It simply states what it does, leaving the agent with no decision-making support.

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

sensor_pollB
Read-onlyIdempotent

Poll a sensor; large arrays and images are saved as bounded local artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
nameYes
timestampNo
sensor_typeYes
artifact_pathsNo

TDQS

B3.4/5.0
Behavior3/5

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

The description adds behavioral context beyond annotations, noting that large data is saved as artifacts. However, this may contradict the readOnlyHint annotation (which implies no side effects), creating potential confusion. While the annotation barrier is lowered, the description does not reconcile this contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core action and efficiently adds key detail. No superfluous text.

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?

The tool has an output schema (not shown), but the description does not explain the return value or how artifacts are handled. The mention of 'bounded local artifacts' raises questions about retrieval and lifecycle that go unanswered. Adequate but incomplete for a tool with side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'name' has no description in the schema, and the tool description does not clarify its meaning (e.g., sensor name or ID). With 0% schema description coverage, the description fails to compensate by adding semantic context.

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 clearly states the action ('Poll') and the resource ('a sensor'), and adds specific context about handling large data ('large arrays and images are saved as bounded local artifacts'). This distinguishes it from sibling tools like sensor_attach and sensor_remove.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives, nor any context about prerequisites or exclusions. Usage is only implied by the action verb.

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

sensor_removeC

Remove an attached sensor and release shared memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

C2.5/5.0
Behavior1/5

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

The description claims the tool removes a sensor and releases shared memory, which is destructive, but the annotations set destructiveHint to false, creating a contradiction. Beyond this, no side effects or behavioral details are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one sentence) but lacks necessary detail about the parameter and return value, making it slightly underspecified.

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

Completeness2/5

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

Given the availability of an output schema, the description should clarify the parameter and the output, but it does neither. The annotation contradiction further reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description does not explain the single required parameter 'name', leaving its meaning (e.g., sensor name or ID) unclear.

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 clearly states the action ('remove') and the resource ('attached sensor'), with the additional detail of releasing shared memory. It effectively distinguishes from sibling tools like sensor_attach and sensor_poll.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context such as requiring the sensor to be attached first.

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

simulation_controlC

Pause, resume, step, or change deterministic simulation timing.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNo
actionYes
speed_factorNo
steps_per_secondNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations are sparse (readOnlyHint=false, destructiveHint=false), so the description must disclose behavioral traits. It lists possible actions (pause, resume, step, deterministic, realtime) but does not explain side effects, state requirements, or the meaning of 'deterministic' vs 'realtime'. Partial but insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence is very concise, but it omits crucial parameter guidance. Conciseness is valued, but not at the expense of clarity.

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

Completeness2/5

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

Despite having 4 parameters and an output schema (not shown), the description lacks detail on return values, behavior changes for each action, and parameter interactions. Incomplete for an effective agent decision.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning no parameter details in the schema's own descriptions. The tool description mentions actions but does not explain the purpose or default behavior of steps, speed_factor, or steps_per_second. This is a critical gap.

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 explicitly states the verb ('Pause, resume, step, or change') and the resource ('deterministic simulation timing'), clearly distinguishing it from sibling tools like simulator_status or scenario_control.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., scenario_control, vehicle_control). No prerequisites or context provided, leaving the agent to infer usage.

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

simulator_connectA

Connect to BeamNG, optionally launching the configured installation.

ParametersJSON Schema
NameRequiredDescriptionDefault
launchNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
homeNo
hostYes
modeNo
portYes
userNo
versionNo
connectedYes
last_errorNo
tech_enabledNo

TDQS

A3.6/5.0
Behavior2/5

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

Annotations indicate the tool is not read-only (readOnlyHint=false), and the description adds no further behavioral details beyond stating the connection and optional launch. Important aspects like reconnection behavior or state changes are not disclosed.

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 description is a single, concise sentence that conveys the core functionality without unnecessary words. It could be slightly more structured (e.g., separating connect from launch), but it remains efficient.

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?

Given the tool's simplicity (1 optional parameter, output schema present), the description is adequate but could better situate the tool within the workflow (e.g., 'Use this before other simulation tools'). It does not explain return values or prerequisites.

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?

With 0% schema description coverage, the description adds some value by linking the 'launch' parameter to optionally starting the installation. However, it does not explain the effect of 'true' vs 'false' or the null default in detail.

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 clearly states the verb 'Connect' and the resource 'BeamNG', with the optional launch behavior. It distinctively sets this tool apart from sibling tools like 'simulator_disconnect' and 'simulator_status'.

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 description implies usage for establishing a connection, but lacks explicit guidance on when not to use (e.g., if already connected) or alternatives. However, the context from the tool name and sibling tools provides enough clarity for typical use.

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

simulator_disconnectA

Stop autonomous control and disconnect without forcing the game process to quit.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

A3.8/5.0
Behavior2/5

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

Description lacks detail beyond disconnection behavior. No disclosure of prerequisites (e.g., must be connected), side effects (e.g., ongoing actions stopped), or safety. Annotations do not compensate (destructiveHint=false is generic). Could mention that it is a graceful shutdown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, no unnecessary words. Efficient and clear.

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 parameterless action, description is mostly adequate. However, could include brief note on typical preconditions (e.g., simulator must be connected) to enhance completeness.

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?

No parameters exist (schema coverage 100%). Description correctly adds no param info. Baseline for 0 params is 4.

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?

Clearly states action: stop autonomous control and disconnect. Specifies it does not force quit, distinguishing from potential force-quit tools. Differentiates from sibling tools like simulator_connect and emergency_stop by describing a graceful disconnect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage when wanting to disconnect without quitting, but no explicit when-to-use, when-not-to-use, or comparison to alternatives like emergency_stop or autonomy_stop. Agent must infer appropriate context.

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

simulator_statusA
Read-onlyIdempotent

Return BeamNGpy connection and BeamNG.tech feature-tier status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
homeNo
hostYes
modeNo
portYes
userNo
versionNo
connectedYes
last_errorNo
tech_enabledNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and idempotentHint=true, indicating safe, non-destructive behavior. The description adds that it returns status information, but does not disclose further behavioral details beyond what annotations cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded and contains no extraneous information. Every word is necessary.

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?

Given the tool's simplicity (zero parameters, output schema exists), the description is complete. It tells the agent exactly what the tool returns, which is sufficient for selection and invocation.

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?

There are no parameters, and schema coverage is 100% (empty schema). The description does not need to add parameter details, and the baseline of 4 is appropriate.

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 uses the verb 'Return' and specifies the resource as 'BeamNGpy connection and BeamNG.tech feature-tier status', making it clear what the tool does. It distinguishes from sibling tools like simulator_connect or simulator_disconnect by focusing on status retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. However, it is implied that it should be used to check the current status before performing other operations, and the sibling context provides guidance.

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

softbody_handoff_createC

Create an expiring Blender export slot with a reviewed, exact-coordinate runner.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
slot_idYes
mod_nameYes
directoryYes
asset_nameYes
expires_atYes
visual_pathYes
manifest_pathYes
blender_runner_pathYes
blender_execute_codeYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations (all false) provide no safety hints, so the description carries the full burden. It mentions 'expiring' (time-limited slot) and 'reviewed' (implies validation), but does not disclose side effects, authorization needs, error states, or whether the operation is reversible. Without annotations, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the action. However, it omits crucial details, making it under-specified rather than efficiently helpful. It earns its place but fails to inform adequately.

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

Completeness1/5

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

Given the nested schema, lack of annotations, and presence of an output schema (not shown), the description is severely incomplete. It does not explain the workflow, what 'runner' means, how the export slot is used, or how the tool relates to siblings like softbody_handoff_validate or softbody_mod_build.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning no parameter descriptions. The description does not explain any of the complex parameters inside the 'request' object (e.g., mod_name, asset_name, coordinates). It adds no meaning beyond what is in the schema definitions, which are already visible. The agent receives no help understanding what to provide.

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 uses a specific verb 'Create' and identifies the resource as 'Blender export slot' with modifiers 'expiring', 'reviewed', 'exact-coordinate runner'. This clearly distinguishes it from sibling tools like softbody_handoff_validate or softbody_mod_build. The term 'runner' is jargon but still conveys the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, preconditions, or that it should be followed by validation (softbody_handoff_validate). The agent must infer usage context from sibling names.

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

softbody_handoff_validateB
Read-onlyIdempotent

Validate staged DAE hashes, axes, bounds, vertices, topology, refs, and base evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
slot_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
issuesNo
slot_idYes
manifestNo
visual_sizeNo
visual_sha256No
manifest_sha256No

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's 'Validate' is consistent. However, it adds no extra behavioral details like whether it runs checks or returns diagnostics. With annotations covering safety, a 3 is appropriate.

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 description is a single sentence listing what is validated, which is efficient. However, the listing is dense and could be slightly rephrased for readability.

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

Completeness2/5

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

Given the tool is a validation step likely requiring prior setup (staged DAE), the description omits necessary context about prerequisites, after-effects, or what the output (if any) contains. Output schema exists but description doesn't hint at return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter slot_id has 0% schema description coverage, and the description does not explain what slot_id refers to (e.g., the staging slot for the DAE). The description fails to compensate for the missing schema context.

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 uses 'Validate' as the specific verb and lists concrete items (hashes, axes, bounds, vertices, topology, refs, base evidence) that are validated, making the purpose highly specific and distinguishing it vaguely from sibling tools like softbody_mod_validate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., softbody_mod_validate, mod_validate). The description provides no context about prerequisites, such as that a staged DAE must already exist via softbody_handoff_create.

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

softbody_mod_buildC
Destructive

Compile and transactionally assemble one validated Blender handoff as a JBeam prop.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
filesYes
mod_nameYes
warningsNo
asset_nameYes
total_mass_kgYes
manifest_sha256Yes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already indicate destructiveHint: true. The description adds 'transactionally assemble', hinting at atomicity, which is a useful behavioral detail beyond the annotation. However, it does not disclose other behavioral aspects like what files are created/modified, or authentication requirements.

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 description is a single sentence that conveys the core action efficiently. It is front-loaded with key verbs and nouns. While very concise, it could be slightly more structured (e.g., breaking into two sentences) to improve readability, but overall it is appropriately sized.

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

Completeness2/5

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

Given the high complexity of the input schema (nested objects with many properties), the description is far too brief. It does not explain the purpose of the tool within the larger mod-building workflow, what the output will be, or any constraints. The presence of an output schema (not shown) suggests that return values are documented, but the description still lacks key context for an agent to know when to call this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there is one parameter 'request' of a complex type (StructuralBuildRequest) with many nested properties. The description provides no explanation of what fields are required, how to structure the request, or how the parameter relates to the tool's operation. The agent is left to parse the extensive schema alone, which is insufficient for correct usage.

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 uses specific verbs 'compile and transactionally assemble' and identifies the resource as 'one validated Blender handoff' to produce a 'JBeam prop'. It distinguishes from sibling tools like softbody_handoff_validate and softbody_mod_validate by implying that this is the final assembly step. However, 'Blender handoff' and 'JBeam prop' are domain-specific terms that might not be immediately clear to all agents, slightly reducing clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. It does not mention preconditions (e.g., that a handoff must first be validated), nor does it explain when not to use it. Sibling tools like softbody_handoff_validate and mod_pack clearly related but no differentiation is provided.

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

softbody_mod_validateB
Read-onlyIdempotent

Recompile and hash-check an assembled DAE/JBeam/material/provenance bundle.

ParametersJSON Schema
NameRequiredDescriptionDefault
mod_nameYes
asset_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
filesNo
validYes
issuesNo
mod_nameYes
asset_nameYes
manifest_sha256No

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description's mention of 'recompile' and 'hash-check' does not contradict them and adds minor context about the process. However, it does not elaborate on any side effects or limitations beyond the annotations.

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?

Single sentence with 10 words, no unnecessary text. Slightly more detail would improve understanding without hurting conciseness.

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

Completeness2/5

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

Given 0% schema coverage and no output schema view, the description lacks detail on inputs, outputs, and preconditions. It fails to provide a complete picture for a validation tool that likely has specific requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description does not explain the two required parameters (mod_name, asset_name) or how they relate to the bundle. Without added meaning, the agent may not know how to fill them correctly.

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?

Describes a specific action: recompile and hash-check a bundle of DAE/JBeam/material/provenance files. The verb 'recompile' and noun 'bundle' with specific file types clearly distinguish this from sibling tools like mod_validate (generic) or softbody_mod_build (building).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use, when-not-to, or alternative tools are mentioned. The purpose implies usage for validating softbody mods, but guidance is missing, leaving the agent to infer from the tool name and siblings.

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

traffic_controlC

Spawn, stop, or reset simulator traffic.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
max_amountNo
police_ratioNo
parked_amountNo
stop_vehiclesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, but the description does not disclose behavioral traits beyond the actions. It does not explain what 'reset' entails (e.g., clearing all traffic) or the impact on existing traffic, leaving ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise but sacrifices crucial details. While every word serves a purpose, the brevity leads to under-specification for a tool with multiple parameters and context.

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

Completeness1/5

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

Given 5 parameters, an output schema, and a complex context with many sibling tools, the description is severely incomplete. It provides no information on parameter roles, return values, side effects, or how this tool interacts with simulation state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the 4 additional parameters (max_amount, police_ratio, parked_amount, stop_vehicles). The description only mentions the action enum, ignoring all other parameters entirely.

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 'Spawn, stop, or reset simulator traffic' uses specific verbs and identifies the resource (simulator traffic). It clearly states the main actions but does not differentiate from sibling tools like simulation_control or vehicle_spawn, which could overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. With siblings like simulation_control (controlling simulation state) and vehicle_spawn (spawning individual vehicles), the description should clarify the scope of 'traffic' and when this tool is appropriate.

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

vehicle_ai_configureC

Disable or stop standalone native AI; moving modes require autonomy_start.

ParametersJSON Schema
NameRequiredDescriptionDefault
configYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations are mostly false or unhelpful (readOnlyHint=false, etc.), so the description must carry the behavioral burden. It only says 'disable or stop', which is a mutation, but fails to disclose reversibility, side effects on the vehicle, or whether multiple calls change state incrementally. This is insufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence), which is concise but at the expense of completeness. It is front-loaded with the primary action, but missing details make it less effective. It could be split into more structured points.

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

Completeness2/5

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

Given the tool's complexity (9 properties in the input config) and the presence of an output schema, the description should at least overview the configuration purpose and key parameters. It fails to do so, leaving the agent reliant solely on the schema, which has 0% description coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the JSON schema's parameter descriptions are empty. The tool description adds no information about any of the 9 configuration properties (mode, lane, speed, etc.). An agent cannot understand what parameters like 'aggression' or 'target_waypoint' mean or how to set them correctly.

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 states the tool disables or stops standalone native AI, and hints at a distinction that moving modes require autonomy_start. However, it does not fully convey that the tool configures AI modes including non-disabled modes like random or traffic, which are evident in the schema. The verb 'configure' in the name is broad, but the description narrows it to disabling, which could mislead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit when-to-use or when-not-to-use guidance. It mentions 'moving modes require autonomy_start' but does not clearly state alternative tools or contexts where this tool should be avoided. Without such guidance, an agent may misuse it.

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

vehicle_controlC

Apply clamped vehicle inputs with ADAS-safe or explicit direct arbitration.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

C2.4/5.0
Behavior2/5

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

Description mentions 'clamped' and arbitration modes, which add context beyond annotations (all false). But it does not disclose behavioral traits such as whether inputs are applied immediately, what happens if vehicle_id is invalid, or if changes persist after session ends. With no annotations to rely on, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, very concise. However, it sacrifices completeness and clarity. Front-loads the main idea but lacks supporting details that would earn its place.

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

Completeness2/5

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

Given the complexity (9 subparameters) and the presence of an output schema, the description is too sparse. It does not mention the required vehicle_id, nor does it describe the return value or error conditions. Incomplete for an agent to use effectively without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the description offers no explanation of the 'command' parameter or its properties. While the schema itself has descriptions for subfields, the tool description should help an agent understand what the object contains. It fails to do so, leaving the agent to rely solely on the schema.

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?

Description clearly states it applies clamped vehicle inputs, specifying two arbitration modes (ADAS-safe or direct). Verb 'Apply' and resource 'vehicle inputs' are specific. However, 'clamped' and 'ADAS-safe' are jargon that may not be universally understood. It distinguishes from sibling tools like vehicle_ai_configure or vehicle_state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Does not explain when to choose ADAS-safe versus direct arbitration, nor mention prerequisites like requiring a spawned vehicle. Lacks any when-not-to-use or exclusion criteria.

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

vehicle_listA
Read-onlyIdempotent

List vehicles and their current kinematic state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so behavioral safety is clear. Description adds only 'current kinematic state' but no further behavioral traits beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, directly states purpose and output scope.

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?

Output schema exists to detail return values. Description covers the core purpose and output type. Could explicitly state scope (e.g., 'all vehicles in simulation') but not necessary.

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?

No parameters exist, so schema coverage is 100%. Description adds no parameter info, but none is needed. Baseline for 0-param tool is 4.

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?

Description specifies verb 'list' and resource 'vehicles' with clear scope ('current kinematic state'). Clearly distinguishes from sibling tools like vehicle_spawn or vehicle_remove.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like vehicle_state (which may provide more detail). No when-to-use or when-not-to-use context.

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

vehicle_removeA
Destructive

Despawn a vehicle; confirm=true is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
vehicle_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate destructive behavior (destructiveHint=true). The description adds the requirement for confirm=true, which is useful context, but does not disclose other behavioral traits like irreversibility or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single, front-loaded sentence that contains all necessary information without any wasted words.

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?

Given the presence of an output schema and simple parameters, the description covers the essential behavioral requirement (confirm flag). It could mention that removal is permanent or that the vehicle must exist, but overall it is adequate.

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 description adds critical semantic value for the 'confirm' parameter, clarifying that it must be set to true for the tool to work. However, it provides no description for the 'vehicle_id' parameter, leaving partial coverage given 0% schema description coverage.

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 uses the specific verb 'despawn' and resource 'vehicle', clearly indicating the tool's purpose. This distinguishes it from sibling tools like vehicle_spawn or vehicle_control.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for removing a vehicle but does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or exclusion cases.

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

vehicle_spawnC

Spawn at measured surface plus model-origin clearance and connect.

ParametersJSON Schema
NameRequiredDescriptionDefault
specYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
modelNo
positionNo
velocityNo
connectedNo
directionNo
speed_mpsNo
vehicle_idYes

TDQS

C2.4/5.0
Behavior2/5

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

All annotations are false, so the description must cover behavioral traits. The description only says 'spawn' and 'connect,' which implies creation but does not disclose side effects, required permissions, or whether the operation is irreversible. No details about the spawning process or connection are given, making it insufficiently transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at one sentence, but brevity comes at the cost of informativeness. It is front-loaded but lacks substance. A 3 is appropriate because while it is short, it does not waste words, yet it fails to earn its place by providing necessary detail.

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

Completeness2/5

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

Given the tool's complexity (8 parameters, output schema, sibling tools), the description is highly incomplete. It does not explain the output, the significance of 'connect,' or how parameters interact. The minimal description leaves significant gaps for an AI agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no meaning beyond the input schema. While the schema itself describes some parameters (e.g., 'cling' and 'position'), the tool description does not elaborate on them. With 0% schema description coverage from the description, it fails to compensate for the gap, leaving the agent without additional context for parameter usage.

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

Purpose3/5

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

The description states 'Spawn at measured surface plus model-origin clearance and connect.' The verb 'spawn' is clear, and 'vehicle' is implied by the tool name. However, 'connect' is ambiguous and not explained, and it does not differentiate from sibling tools like vehicle_teleport or vehicle_control. The description is partially clear but leaves room for confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as vehicle_teleport or vehicle_remove. There is no mention of prerequisites, context, or exclusions. The description fails to help the agent decide when to invoke this tool.

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

vehicle_stateB
Read-onlyIdempotent

Read one vehicle's position, velocity, direction, and speed.

ParametersJSON Schema
NameRequiredDescriptionDefault
vehicle_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNo
modelNo
positionNo
velocityNo
connectedNo
directionNo
speed_mpsNo
vehicle_idYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds specific fields read, but does not disclose other traits like error handling, real-time nature, or requirements beyond the parameter.

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 description is a single concise sentence, front-loaded with key information. However, it may be overly brief, missing opportunities to add useful detail without becoming verbose.

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?

With annotations and an output schema, the description covers basic purpose but lacks parameter documentation and usage guidance, leaving some gaps for effective agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the vehicle_id parameter, yet the description does not explain its meaning, format, or constraints beyond what the parameter name implies. It fails to add value over the schema.

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 clearly states it reads one vehicle's state attributes (position, velocity, direction, speed) using a specific verb and resource. It distinguishes from sibling tools like vehicle_control or vehicle_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives among the many vehicle-related sibling tools (e.g., vehicle_control, vehicle_teleport, vehicle_list). No context for when-not-to-use or prerequisites.

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

vehicle_teleportC

Teleport a vehicle to a position and optional quaternion rotation.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okNo
dataNo
messageYes

TDQS

C2.6/5.0
Behavior2/5

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

The description only states the functional goal. It does not disclose side effects, such as whether teleporting resets vehicle dynamics, cancels AI control, or triggers any events. Annotations are all false (unknown), so the description carries full burden but fails to provide behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single 13-word sentence, which is concise and front-loaded. However, it could include more detail without becoming verbose, so it scores a 3.

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

Completeness2/5

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

The tool has 4 sub-parameters and an output schema (not shown), but the description does not mention return values, error conditions, or usage context. Preconditions like vehicle existence are omitted. For a mutation command, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions 'position' and 'optional quaternion rotation', which aligns with those parameters in the schema. However, it does not explain the 'reset' parameter or the format of the arrays. Schema coverage is 0% with no parameter descriptions, so the description should compensate but adds minimal value beyond parameter names.

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 uses a specific verb 'Teleport' and clearly references the resource 'vehicle', along with the action details (position, optional rotation). However, it does not differentiate from sibling tools like 'vehicle_control' which might also affect position, but the teleport nature is distinct enough for a 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives such as vehicle_control or vehicle_ai_configure. Preconditions (e.g., vehicle must exist) and postconditions are not mentioned.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 57 tool updatesv0.3.0
    • First observedautonomy_start
    • First observedautonomy_status
    • First observedautonomy_stop
    • First observedcapabilities_get
    • First observedemergency_stop
    • First observedenvironment_get
    • First observedenvironment_set
    • First observedjob_cancel
    • First observedjob_get
    • First observedjob_list
    • First observedlua_bridge_status
    • First observedlua_extension_reload
    • First observedmap_object_create
    • First observedmap_object_delete
    • First observedmap_object_get
    • First observedmap_object_list
    • First observedmap_object_update
    • First observedmap_road_edges
    • First observedmap_road_network
    • First observedmap_save
    • First observedmap_trigger_create
    • First observedmap_trigger_delete
    • First observedmap_trigger_events
    • First observedmap_trigger_get
    • First observedmap_trigger_list
    • First observedmap_trigger_update
    • First observedmod_file_list
    • First observedmod_file_read
    • First observedmod_file_write
    • First observedmod_install
    • First observedmod_pack
    • First observedmod_scaffold
    • First observedmod_test_start
    • First observedmod_validate
    • First observedscenario_control
    • First observedscenario_create
    • First observedscenario_list
    • First observedscenario_load
    • First observedsensor_attach
    • First observedsensor_poll
    • First observedsensor_remove
    • First observedsimulation_control
    • First observedsimulator_connect
    • First observedsimulator_disconnect
    • First observedsimulator_status
    • First observedsoftbody_handoff_create
    • First observedsoftbody_handoff_validate
    • First observedsoftbody_mod_build
    • First observedsoftbody_mod_validate
    • First observedtraffic_control
    • First observedvehicle_ai_configure
    • First observedvehicle_control
    • First observedvehicle_list
    • First observedvehicle_remove
    • First observedvehicle_spawn
    • First observedvehicle_state
    • First observedvehicle_teleport

TDQS

B3.2/5.0
Disambiguation5/5

Each tool targets a distinct operation (e.g., spawn vs. remove, attach vs. poll, scenario load vs. create). Domain prefixes (simulator_, vehicle_, map_, etc.) further reduce ambiguity, and even overlapping areas like AI control are separated into vehicle_ai_configure and autonomy_start/stop with clear dependency documentation.

Naming Consistency5/5

Tool names follow a consistent snake_case pattern with domain prefix followed by a verb or verb_noun (e.g., vehicle_spawn, map_object_list, autonomy_start). The convention is uniform across all 57 tools, with predictable verbs like get, set, list, create, update, delete.

Tool Count1/5

57 tools is far beyond the typical well-scoped range of 3–15 and even beyond the 'too many' threshold of 25+. Even for a complex simulation server, this many tools imposes a significant cognitive load and suggests poor modularization or inclusion of too many subdomains.

Completeness5/5

The tool surface comprehensively covers the BeamNG simulation ecosystem: connection, simulation control, environment, traffic, scenarios, vehicles, sensors, map objects and triggers, mod building and installation, job management, and autonomous driving. Essential operations (CRUD for vehicles, sensors, map objects; lifecycle for mods) are present, with no obvious gaps in the stated purpose.

Maintenance

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Full-access MCP server for the Webots robot simulator that enables AI assistants to see, understand, and modify a running simulation, including scene-tree inspection/editing, robot control, viewport screenshots, and arbitrary code execution.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/eric-rolph/beamng-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server