Skip to main content
Glama
csvbox-io

csvbox-mcp-server

Official
by csvbox-io

Validate CSVBox Schema

validate_schema

Validate CSVBox sheet schemas offline, verifying columns, virtual fields, transforms, and mode-specific rules to identify errors and warnings before submission.

Instructions

Validate a CSVBox sheet schema locally (no API call). Requires a non-empty title; sheet_columns is optional (absent passes, empty yields a warning). When columns are present, checks for missing column_name/display_label/type, unsupported types, duplicate names, duplicate positions, and invalid dependent column references. Also checks virtual_columns, validation_functions, and data_transforms: per-sheet caps, duplicate and colliding names, missing or oversized js_code, scope/run_at enums, column references against sheet_columns, and dependency URLs (https, allowed CDN hosts, .js/.mjs, integrity digest). Pass mode ('create' | 'put' | 'patch', default 'create') so empty-array and _delete rules match the verb you are about to use. Returns { valid, errors, warnings }.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoWhich write verb this payload is headed for. "create" (default) for POST, "put" for a full replace, "patch" for a partial update. Affects only the function collections: an empty array is an error under "put" (it deletes every item); `_delete` is fully valid under "patch", redundant (warning only) under "put", and an error under "create".
sheetYesThe CSVBox sheet object to validate.
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 of behavioral disclosure. It thoroughly describes what the tool does: it performs a local validation, enumerates all the checks (missing fields, duplicates, types, references, dependency rules), explains the mode-dependent behavior (empty array vs _delete), and states the return shape { valid, errors, warnings }. This is exceptionally transparent and leaves no ambiguity about side effects or limitations.

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 a single, information-dense paragraph that front-loads the core purpose and then systematically covers prerequisites, specific checks, mode handling, and return format. Every sentence adds value; there is no filler or repetition. The structure is logical and allows an agent to quickly grasp the tool's 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?

Given the tool's complexity (many validation rules), the minimal schema, and absence of annotations, the description is remarkably complete. It covers all relevant inputs (sheet, mode), the exact validation logic, the behavior under different modes, and the output structure. There is no critical information missing for an agent to call this tool correctly.

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?

Although the schema descriptions cover both parameters, the tool description adds significant meaning. For 'mode', it explains the impact of each enum value on validation rules, which the schema description only partially hints at. For 'sheet', since the schema only says 'object', the description is the sole source of truth for what the sheet object should contain (sheet_columns, virtual_columns, validation_functions, data_transforms). This goes well beyond the schema's generic definition.

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 a CSVBox sheet schema locally (no API call).' This clearly distinguishes it from sibling tools like create_sheet or update_sheet, which perform mutations. The phrase 'no API call' further separates it from any network-dependent tool. The purpose is unmistakable.

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 clearly conveys when to use this tool: before an API call to validate the schema against the intended write verb, as shown by the mode parameter explanation ('Pass mode... so empty-array and _delete rules match the verb you are about to use'). However, it does not explicitly name alternative tools or state 'use this instead of X,' so it stops short of full exclusion guidance. The context is adequate for an agent to infer usage.

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/csvbox-io/csvbox-mcp-server'

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