Skip to main content
Glama

Press a button

press_button

Simulate a button press on a robot's push-button sensor to trigger actions like toggling light tracking or stopping all operations.

Instructions

Press a push-button module (a sensor of type "button") for seconds and release it, like a person would. Held ≥ 0.8 s is a long press. The built-in program reacts: short press toggles the head's light tracking (happy face), long press stops everything (driving, autopilot, tracking; pauses the simulation). Returns the press event.

Input Schema

NameRequiredDescriptionDefault
idYesButton sensor id (list_sensors)
secondsNoHow long to hold it (default 0.2 s)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.1

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false and openWorldHint=false; the description goes well beyond by naming exactly what the press destroys or changes — toggling head light tracking, or stopping driving, autopilot and tracking while pausing the simulation. It also defines the long-press threshold (≥ 0.8 s) and states the return value (the press event). This is exactly the mutation-side context annotations cannot carry.

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?

Three tight sentences, front-loaded with the action, followed by the threshold and the resulting side effects. Every clause carries decision-relevant information; nothing is padding.

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?

For a two-parameter mutation tool with no output schema, the description covers the action, the threshold semantics, the side effects on the running program, and the fact that an event is returned. An agent has everything needed to call it safely.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning to `seconds` by defining the ≥ 0.8 s long-press boundary — a semantic distinction the numeric 0.05–5 range does not convey. It does not say what the returned press event contains beyond its existence.

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?

States a concrete verb (press/release), the exact resource (a sensor of type "button"), and the mechanic (holds for `seconds`, like a person would). That is far more specific than the bare name. It stops short of naming siblings, so an agent must infer on its own how this relates to get_button_events (does the press generate events that tool can read?).

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?

Effectively tells the agent when to reach for this tool by describing the two built-in reactions: short press toggles light tracking (happy face), long press stops driving/autopilot/tracking and pauses the simulation. That makes the consequence of use clear. It does not state exclusions or point to alternatives (e.g. stop_program, set_head, get_button_events) for achieving the same outcome more directly.

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