Skip to main content
Glama

Validate Inventory Reorder Snapshot inputs

validate_inventory_reorder_inputs
Read-onlyIdempotent

Check inputs for Inventory Reorder Snapshot before asking a human to pay. Free; nothing is charged, stored or run. Takes exactly the JSON start_inventory_reorder takes: {"inputs": {...}}, plus "email" if you have it (checked too, optional here). Returns either valid (with a one-line summary of what will be analysed) or every problem found at once, each with its path (e.g. inputs.skus[2].unit_cost) and how to fix it. Fix them all, call again, then call start_inventory_reorder with the same JSON plus the buyer's email.

Turns a store's per-SKU sales history, stock on hand, open purchase orders and supplier lead times into a reorder plan: which SKUs to reorder now and how many units (rounded up to MOQ and case pack), which are out of stock or will run out before the next delivery could arrive, which are overstocked or not selling, how much cash is tied up in excess stock, and which SKUs earn the revenue (ABC tiers).

It is rule-based and deterministic, computed only from the figures supplied. It is not a forecast: it does not model seasonality, trend or promotions, multiple locations, variant roll-ups, supplier price breaks or margin. It does not connect to Shopify or any other system; the data is sent inline.

Inputs: an as_of date, an optional window_days (28 to 365, default 90) that units_sold covers, and 1 to 800 SKUs, each with sku, units_sold, on_hand, unit_price and unit_cost. lead_time_days is needed per SKU or in defaults. The whole request must stay under 200 KB.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
emailNoThe buyer's email: Stripe sends the payment receipt there and botx402 emails the results link.
inputsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description still adds meaningful context beyond them: 'nothing is charged, stored or run', that it is deterministic/rule-based and not a forecast, that it does not connect to Shopify, and that it returns either valid or every problem at once. That is genuine added disclosure, though a lot of it describes the downstream analysis rather than this tool's own behavior.

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?

The lead sentence is front-loaded with the essential distinction (free, nothing charged, exact input shape) and the error-path example is compact and actionable. The middle paragraph describing what the reorder analysis produces is arguably padding for a pure validator, but it justifies what 'valid' means, so the length is defensible rather than wasteful.

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?

There is no output schema, so the description must carry the return contract, and it does: valid plus a one-line summary, or every problem with a path such as inputs.skus[2].unit_cost and a fix. Combined with the input-shape aliasing to start_inventory_reorder and the size limits, an agent has everything needed to call it correctly.

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 only 50%, but the description compensates by naming the container shape ({"inputs": {...}} plus optional email), the required SKU fields, the 1-800 SKU bound, the 28-365 window_days default of 90, the requirement that lead_time_days appear per SKU or in defaults, and the 200 KB request limit (which the schema does not state). It omits meaning for several optional per-SKU fields (moq, order_multiple, days_out_of_stock, safety_days, target_cover_days), which the schema does describe, so the gap is closed just well enough for a 4.

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+resource ('Check inputs for Inventory Reorder Snapshot') and immediately scopes it as a free pre-flight step before payment. It explicitly contrasts with the sibling start_inventory_reorder by describing itself as the validation that precedes it and pointing the agent to the follow-up call.

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 an explicit workflow: call this, fix every reported error, call again, then call start_inventory_reorder with the same JSON plus the buyer's email. No alternative routing is left to inference, and it explains the return contract (valid vs. all problems).

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