Skip to main content
Glama

app_set_dialog_control

Read or change checkboxes, radio buttons, text fields, and list rows in an open dialog by label, with change verification and refusal of disabled or invalid actions.

Instructions

Read or CHANGE a control inside whatever dialog is open.

The other half of driving a dialog. Buttons are pressed by the dialog driver; this is for the checkboxes, radios and fields that decide what those buttons will DO.

FIND BY LABEL, not position. "Include Variants". Positions move between versions and contexts, captions do not.

EVERY CHANGE IS VERIFIED. The new state is read back, and a click that silently did nothing is reported as a failure rather than as success. That matters here more than anywhere: a caller that believes an option was applied will go on to press something irreversible.

IT REFUSES RATHER THAN GUESSING when a control is DISABLED (Altium greys options that do not apply, and clicking one is at best a no-op), and when asked to switch a radio button OFF, which is not a thing a radio does.

SETTING IS NOT A TOGGLE. Asking for a state the control is already in reports changed: false and clicks nothing, so calling twice is safe.

Args: control_label: the control's visible label. checked: desired state for a checkbox. text: desired contents for an edit field. select_row: for a list, grid or tree, the row to select by name. Rows are matched by name for the same reason menu items are: positions shift and an index would pick the wrong one the first time the contents changed. dialog_title: substring to pick one dialog when several are open. Empty uses the first. list_only: change nothing, just report every control in the dialog with its role, state and whether it is enabled.

Returns: For a read, the control list. For a change, ok, changed and the state read back afterwards.

Input Schema

NameRequiredDescriptionDefault
textNo
checkedNo
list_onlyNo
select_rowNo
dialog_titleNo
control_labelYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so well. It discloses verification/read-back semantics, failure reporting for silent no-op clicks, refusal behavior for disabled controls and radio-off requests, and idempotent 'changed: false' behavior for already-set states.

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 front-loaded with purpose, targeting strategy, and safety behavior before the Args section. It is somewhat long and uses emphatic caps and rationale that could be trimmed, but the length is largely justified by the tool's behavioral complexity.

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 six parameters, no annotations, and no schema descriptions, the description is complete enough to invoke the tool correctly. It also explains return values even though an output schema exists, adding useful behavioral context rather than leaving 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?

Schema description coverage is 0%, so the description must compensate for all six parameters, and it does. It explains control_label as a visible label, checked/text as desired state, select_row as name-based row selection, dialog_title as a substring selector, and list_only as a read-only inspection mode.

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 states a specific verb and resource: 'Read or CHANGE a control inside whatever dialog is open.' It immediately distinguishes its scope from adjacent dialog-driving tools by explaining that buttons are handled by the dialog driver while this tool handles checkboxes, radios, and fields.

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?

Usage is clearly framed: use label-based targeting, not positions; use this for controls rather than buttons; use list_only to inspect without changing. It also defines refusal cases (disabled controls, radio-off requests) and idempotent behavior. The only minor gap is that the alternative sibling tool is referred to generically as 'the dialog driver' rather than by name.

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

Deploy Server

Other Tools