Skip to main content
Glama

app_set_grid_cell

Type text into a specified grid cell by row and column, then read it back to verify the value; optionally list a row's cells first to inspect available columns.

Instructions

Type into one cell of a grid, and read it back.

ALTIUM'S RULE AND PROPERTY EDITORS TAKE THEIR INPUT THIS WAY. Selecting a row was possible before; changing anything in it was not.

A grid cell is not an edit control until it is being edited, so the cell is activated first and the text goes to whatever editor the grid puts there. The value is then read back off the CELL, because the editor disappears when the edit commits.

Args: control_label: the grid's label. row: the row, matched by name. column: the column name, or a numeric index. These grids leave many cells unnamed, and an index is then the only handle there is. text: what to type. dialog_title: which dialog, when several are open. list_only: report the row's cells and change nothing. Worth doing first, since it shows which columns have names.

Returns: {"ok": true, "row": ..., "column": ..., "value": ...}, or ok: false when the cell reads back differently, which happens on read-only columns and on ones that validate and revert.

Input Schema

NameRequiredDescriptionDefault
rowYes
textYes
columnYes
list_onlyNo
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 to lean on, the description carries the full burden and does so: it explains the activate-then-type-then-commit lifecycle, why the value is read off the cell rather than the editor, and the two concrete failure modes (read-only columns, validating columns that revert). That failure profile is exactly the non-obvious behavior an agent needs before committing a write.

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 operative instruction is front-loaded in one short line, followed by context, Args and Returns — good structure. A few sentences are stylistic rather than load-bearing ('A grid cell is not an edit control until it is being edited'), but they justify the activate-first mechanic, so the length is defensible.

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 6-parameter, no-annotation mutation tool, everything an agent needs is present: which grid, how the row and column are matched, what happens on commit, and how to preview safely with list_only. An output schema exists, so the Returns block is bonus rather than required, and the success/failure asymmetry (ok:false when the read-back differs) is stated plainly.

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 coverage is 0%, so the description must document all six parameters — and it does, in an Args block covering control_label, row, column, text, dialog_title and list_only. The rationale for the column parameter (many cells are unnamed, so a numeric index may be the only handle) adds meaning the schema's bare 'string' type cannot convey.

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 first line names a concrete verb and resource — 'Type into one cell of a grid, and read it back' — and the Altium-specific note ('rule and property editors take their input this way') tells the agent exactly which UI surfaces this targets, separating it from generic typing tools like app_type_text.

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

Usage Guidelines4/5

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

It gives a real precondition for use ('Selecting a row was possible before; changing anything in it was not') and a recommended first step ('list_only: ... Worth doing first, since it shows which columns have names'). It stops short of naming the competing siblings (app_set_dialog_control, app_type_text) explicitly, so the agent must infer that a grid cell is not a dialog control.

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