Skip to main content
Glama

Approach an object

approach_object
Destructive

Drive the VEX AIM robot toward a visible object, re-aiming each step until it reaches the kicker; specify a target kind, label, or taught color. If unseen, scan first; check photo before kicking.

Instructions

Drive up to an object the onboard AI can see, re-aiming before every short step, until it's in the kicker (whose magnet then holds balls and barrels). Give a target kind or the label of an object or taught colour. If it isn't in view, use face_object or scan_surroundings first. The onboard AI often loses a ball in the last ~10 cm, so the robot finishes that part on an estimate. Unless the AI confirms the object is in the kicker, the result includes a photo: check it before kicking.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
labelNoInstead of target: the label of an object the person named in the control panel (e.g. 'left post'), or a taught colour (e.g. 'red cup')
targetNoany
speed_percentNo
max_distance_mmNoGive up after driving this far in total (also limited by the server's move cap)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false and destructiveHint=true; the description adds substantial context they do not cover: re-aiming per step, the kicker magnet holding balls and barrels, the AI losing the ball in the last ~10 cm and finishing on an estimate, and a photo returned unless the AI confirms success. This directly tells the agent what to verify before kicking.

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?

Three sentences, front-loaded with the action and terminating condition, then prerequisites, then the failure caveat. Each sentence carries information, though the parenthetical about the magnet and the two-clause final sentence are slightly dense.

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?

No output schema exists, and the description covers the operation's key traits: preconditions, in-progress behaviour, physical outcome, and a conditional photo return the agent must inspect. For a destructive, no-required-parameter movement tool this is complete enough to call correctly.

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

Parameters3/5

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

Schema description coverage is 50% (label and max_distance_mm documented, target enum and speed_percent not). The description reinforces the target/label choice ("Give a target kind or the label of an object or taught colour") but says nothing about speed_percent or the distance cap, so it only partially compensates for the 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?

States a specific verb and resource ("Drive up to an object the onboard AI can see") plus the terminal condition (until it's in the kicker). The mention of "re-aiming before every short step" and the magnet behaviour separates it from siblings like go_to, face_object, and fetch_ball without needing to open any schema.

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

Usage Guidelines4/5

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

Explicitly routes the agent to alternatives when the precondition fails: "If it isn't in view, use face_object or scan_surroundings first." However, it does not distinguish approach_object from neighbouring movement tools such as go_to or explore_arena, so it is clear context without full when-not coverage.

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