Skip to main content
Glama

validate_rows

Pre-checks rows against a dataset's schema without saving, returning normalized valid rows and rejection reasons. Use it to confirm which pasted records would be stored and why others fail.

Instructions

Validate rows against a dataset's schema without saving anything.

Use this to pre-check data before committing it - e.g. when the user pastes a list of records and wants to know what would be rejected and why. Valid rows come back normalized (types coerced, defaults filled) so you can show the user exactly what would be stored.

Args: dataset: Exact dataset name, e.g. "Candidates". rows: List of row objects to check (max 100 per call).

Returns: {"ok": true, "dataset", "total": , "valid": , "invalid": , "results": [{"row": , "status": "valid", "normalized": {...}} | {"row": , "status": "invalid", "errors": ["..."]}]}.

Example: validate_rows(dataset="Candidates", rows=[{"name": "Asha", "phone": "9876543210"}])

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsYes
datasetYes

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 does well: it explicitly states no writes occur, discloses the 100-row per call cap, describes normalization of valid rows, and documents the exact return structure including valid and invalid result shapes.

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 well-organized with purpose, usage guidance, args, return shape, and an example. Every section adds value and is front-loaded with the core non-destructive behavior.

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 validation tool with no annotations, the description is complete: it covers what the tool does, when to use it, parameter semantics, limits, return format, and provides a concrete invocation example.

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 description coverage is 0%, so the description must compensate. It explains dataset as an exact name with an example, and rows as a list of row objects with a max count. It could add detail on how row keys map to schema fields, but the example and context make the parameters actionable.

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 opens with a specific verb and resource: 'Validate rows against a dataset's schema without saving anything.' This both states the operation and differentiates it from sibling tools like add_rows or update_rows by emphasizing the dry-run nature.

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?

The description gives clear when-to-use guidance: 'Use this to pre-check data before committing it,' with a concrete example scenario. It does not explicitly name alternatives or state when not to use the tool, but the 'without saving anything' framing strongly implies the contrast with saving tools.

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