Skip to main content
Glama

update_rows

Updates existing records in a master dataset—either by explicit row IDs or by applying a filter to select rows in bulk. Use dry-run first to preview and validate changes before committing them.

Instructions

Update rows by explicit ids, or in bulk for every row matching a filter.

Only the provided columns change; everything else stays as-is. New values are validated together with the rest of each row, so an invalid change leaves that row untouched and is reported with plain-language errors.

Bulk mode (conditions): defaults to a dry-run preview. Review the preview with the user, then re-invoke with dry_run=false to apply. Never set dry_run=false on the first call when a filter may match many rows.

Args: dataset: Exact dataset name, e.g. "Candidates". values: Column values to set, e.g. {"stage": "Rejected"}. row_ids: Explicit row ids to update, e.g. ["3", "7"]. Mutually exclusive with conditions. conditions: Filter selecting rows to update, e.g. [{"column": "stage", "op": "eq", "value": "Screened"}]. dry_run: Bulk mode only - true (default) previews; false applies the update.

Returns: Id mode: {"ok": true, "dataset", "updated", "rejected", "not_found", "results": [...]}. Bulk mode dry-run: {"ok": true, "requires_confirmation": true, "preview": {...}}. Bulk mode applied: {"ok": true, "dataset", "matched", "updated", "rejected", "results": [...]}.

Example: update_rows(dataset="Candidates", values={"stage": "Rejected"}, conditions=[{"column": "score", "op": "lt", "value": 3}], dry_run=true)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
valuesYes
datasetYes
dry_runNo
row_idsNo
conditionsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

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

With no annotations provided, the description carries the full burden, and it delivers: it explains that only provided columns change, that validation happens against the full row, that invalid rows remain untouched with plain-language errors, and how dry-run preview works before the real update. Return shapes are also given for all three operation modes.

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?

The description is organized into summary, args, returns, and an example. It is detailed but every section earns its place; the returns section is particularly valuable for distinguishing the three possible response shapes.

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 five parameters and nested objects, this is complete: both invocation modes are covered, all parameters are explained with examples, the dry-run safety workflow is explicit, and return values are specified. Nothing an agent needs to call it safely is missing.

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%, but the description fully compensates by documenting each parameter with concrete examples, including the exact dataset name requirement, the structured conditions filter, and the mutual exclusivity of row_ids and conditions. This goes far beyond the raw schema types.

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 action ('Update rows') and clearly distinguishes two modes: explicit ids and filter-based bulk updates. This makes the tool's scope immediately clear and differentiates it from sibling tools like search_rows, add_rows, and delete_rows.

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?

It provides precise when-to-use guidance: bulk mode defaults to a dry-run preview, the user should review it before applying, and the agent is explicitly instructed to never set dry_run=false on the first call when a filter may match many rows. This is actionable and prevents risky behavior.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kanishk393/mdm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server