Skip to main content
Glama

Traceable

Add or change an ID-grid column

traceable_grid_column
Destructive

Add a column to an ID grid, rename one, or change one's type — pick with op. NON-DESTRUCTIVE in every case: existing cells and trace links are preserved (unlike traceable_segment_write, which replaces the whole grid and breaks links). Identify the grid by its HEADER row (header.itemId or header.atOrder). op=add gives every id-row a fresh cell: pass type, optionally insertAt (0-based position; omit to append) and label (omit for the type default ID / Link / Column). op=set_label renames a column's header text in place, leaving its type and cells alone: pass colIdx and label. Use it to correct a mislabeled header (e.g. a default "Column"). op=set_type converts each id-row cell to a new type: pass colIdx, type, and for typed columns config — { "options": ["Open","Closed"] } for a dropdown, { "op": "product", "sources": [1,2] } for a calculation. Only one id column is allowed per grid. To set a CELL's value use traceable_grid_cell.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
opYesadd a column, set_label to rename one, or set_type to convert one
typeNoColumn type (required for add and set_type)
labelNoHeader label (required for set_label; optional for add)
colIdxNo0-based index of the column to act on (required for set_label and set_type)
configNoPer-column config (set_type only): dropdown {options:[…]} or calculation {op, sources:[colIdx…]}
headerYesIdentify the row by itemId or atOrder (pass one).
insertAtNo0-based column position to insert at (add only; default: append)
documentIdYesThe document UUID

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior1/5

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

The description asserts the operation is 'NON-DESTRUCTIVE in every case: existing cells and trace links are preserved,' but the annotations declare destructiveHint=true (and readOnlyHint=false). This is a direct polarity conflict, and `set_type` ('converts each id-row cell to a new type') plausibly overwrites existing cell values/types, so the blanket non-destructive claim is not reconcilable with 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.

Conciseness4/5

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

Front-loads the key facts (op selection and the preservation guarantee) and stays dense with no filler, organizing content by op. It is somewhat long for a single paragraph, but nearly every clause carries operational detail rather than repetition.

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 an 8-parameter mutation tool it covers op routing, parameter requirements, the one-id-column constraint, and sibling escalation, which is most of what an agent needs. It does not describe return values or failure modes (no output schema exists), and the preservation claim is not qualified against the destructive annotation.

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 already 100%, yet the description adds conditional semantics the schema cannot express: which parameters each `op` requires, that `insertAt` is 0-based and append-by-default, that `label` falls back to type defaults, that the grid is located by the HEADER row (itemId or atOrder), and concrete `config` payload examples for dropdown and calculation columns.

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 concrete verb+resource (add/rename/retype a column in an ID grid) and enumerates the three ops up front via the `op` selector. It explicitly distinguishes itself from `traceable_segment_write` (whole-grid replace) and `traceable_grid_cell` (cell values), so an agent can place it precisely among siblings.

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

Usage Guidelines5/5

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

Gives per-op routing (add vs set_label vs set_type) with the trigger for each, names the alternative for whole-grid replacement and for cell edits, and states a domain exclusion ('Only one id column is allowed per grid'). Nothing about when to use this vs. siblings is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources