Skip to main content
Glama

assert_data_count

Assert the number of records matching a filter in the data layer via read-only OData, comparing count to expected to validate data integrity or detect orphans.

Instructions

DEPRECATED for a test-client-held base — a «Клиент тестирования» holds the infobase under an EXCLUSIVE lock, so OData cannot read it; verify via the same client's protocol value-read (read_record / read_form_descriptor) instead. Assert the NUMBER of records matching a filter in the DATA LAYER. op = eq|ne|gt|lt|ge|le; e.g. assert a posting created exactly N register rows, or that no orphan remains (op='eq', expected=0). Read-only OData; valid only against a separately published, non-exclusive endpoint. Returns {ok, count, expected, op, deprecated, deprecation, ...}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
opNoeq
userNo
filterNo
base_urlNo
expectedYes
passwordNo
entity_setYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses deprecation, the OData read-only nature, the exclusive-lock conflict, and the endpoint precondition, plus the returned fields. It stops short of explaining auth requirements, failure behavior, or what happens when the assertion fails, so it is strong but not exhaustive.

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 critical deprecation warning before the core purpose, which is the right ordering. It is dense and somewhat repetitive (restating the return shape already covered by the output schema), but every sentence carries information.

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 7-parameter QA assertion tool with no annotations and 0% schema coverage, the description supplies purpose, deprecation context, operator semantics, examples, and the endpoint precondition. It is largely complete, with the auth/endpoint parameters being the remaining hole; the output schema already covers return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% across 7 parameters, so the description must compensate. It does explain op (eq|ne|gt|lt|ge|le), expected (via the expected=0 example), filter, and implicitly entity_set, but leaves user, password, and base_url undocumented — a substantial gap at this parameter count.

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 and resource — 'Assert the NUMBER of records matching a filter in the DATA LAYER' — which is clearly distinct from siblings like assert_form_value or read_record. It also names the sibling to route to under the deprecated path (read_record / read_form_descriptor).

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 explicit when-to-use examples ('assert a posting created exactly N register rows', 'no orphan remains'), explicit when-not (deprecated for a test-client-held base under an EXCLUSIVE lock) and the alternative to use instead. It further constrains applicability to 'a separately published, non-exclusive endpoint'.

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