Skip to main content
Glama

data_delete_row

Delete a row by _id — or a BATCH of rows with ids, in one call. datastore accepts slot:<name> (active project).

expected_revision = the _revision of the row as you read it, when it is that read that made you decide to delete. If the row changed since (any column, or its reservation), nothing is deleted and the call is refused. Omit it when you delete a row you did not have to read first.

BATCH (ids, up to 500): each item is an _id, or {"id": …, "expected_revision": …} to guard that row. Each row is deleted on its own: one refused row (changed since read, reserved by another work) does not stop the others. Returns deleted, not_found and refused (id, error, current_revision on a conflict). A malformed item refuses the whole call before anything is deleted.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "datastore": "<datastore>"
    },
    "name": "data_delete_row"
  }
}

Input Schema

NameRequiredDescriptionDefault
idNo
idsNo
_orgNoOrg (id) de CET APPEL. `oto_list_orgs()`.
_groupNoÉquipe (id) de CET APPEL, sous son org parente.
_run_idNoOBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas.
_projectNoProjet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`.
datastoreYes
expected_revisionNo

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.2/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 behavioral burden and does so: it discloses optimistic-concurrency refusal semantics, that batch items are deleted independently so partial failure is expected, that a malformed item aborts the whole batch before any deletion, and what the response partitions into (deleted/not_found/refused).

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 action, then the two modes, then the concurrency guard and batch semantics; each block adds decision-relevant information. It runs long, but the paragraph breaks mirror the real call flow rather than padding.

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 a destructive 8-parameter tool with no annotations and no output schema, the description covers the failure model and return keys well. It omits whether deletion is permanent/irreversible and any permission prerequisites, which an agent weighing a destructive call would want.

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 50%, and the description supplies meaning for the undocumented core parameters: the `slot:<name>` form of `datastore`, that `ids` items may be bare `_id` strings or objects with `expected_revision`, and the 500-item cap. The four scope parameters (_org/_group/_project/_run_id) are left to the schema, which does document them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete a row by `_id`') plus the batch variant with `ids`, so the operation is unmistakable. It does not explicitly contrast with siblings such as data_delete_datastore or data_update_where, but the scope is clear enough on its own.

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?

Gives a precise rule for when to supply `expected_revision` (only when the delete follows a read that drove the decision) and when to omit it. It never names an alternative tool for the cases it does not cover, so the routing half of the guidance is implicit.

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