Skip to main content
Glama

set_data_table_row

DestructiveIdempotent

Update an existing Unreal Engine DataTable row, erroring if the key is absent to stop typos creating duplicate rows; omitted columns keep current values.

Instructions

Update an EXISTING DataTable row, erroring if the key is absent -- that guard is the only difference from add_data_table_row, and it is what stops a typo'd row name from quietly creating a second row. Columns you omit keep their current values; the write fails as a whole if any provided column cannot be imported, and unrecognised names come back in unknown_columns. Pass GameplayTag columns in ExportText form, e.g. (TagName="A.B"). For per-column before/after evidence use set_data_table_row_fields; for one cell use set_data_table_cell.

Returns: success or error payload

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
row_dataYesObject of {column_name: value} to apply over the current row
row_nameYesName (key) of the existing row to update
table_pathYesFull asset path of the DataTable

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare destructive/idempotent/readOnly=false, but the description adds substantial context beyond them: omitted columns retain current values, the write is atomic (fails wholly if any column cannot be imported), unrecognised names are surfaced in unknown_columns, and GameplayTag columns require ExportText form. This is rich behavioral disclosure that the annotations could not convey.

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-loaded with the core purpose and scope, then behavior, then format, then alternatives -- a sensible order. It is dense and leans on em-dash clauses, but nearly every clause carries distinct information, so little is wasted.

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 mutation tool with no output schema, the description covers the failure modes (absent key, unimportable column, unknown_columns) and states the return shape ('success or error payload'), so an agent knows what to expect. Nothing needed to call it correctly is missing.

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, and the description adds value above it: it explains that row_data is applied *over* the current row (omitted columns preserved) and gives the ExportText syntax for GameplayTag columns like (TagName="A.B"). That format guidance is not derivable from the bare schema.

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 (update) and resource (EXISTING DataTable row) with a precise behavioral boundary (errors if the key is absent). It explicitly differentiates itself from add_data_table_row, set_data_table_row_fields, and set_data_table_cell, so an agent can pick it apart from siblings without opening 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 Guidelines5/5

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

Names alternatives and the exact condition that selects them: use set_data_table_row_fields for per-column before/after evidence, set_data_table_cell for a single cell, and add_data_table_row when the row may not exist. The guard rationale (typo protection) tells the agent when this is the safe choice.

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