Skip to main content
Glama

Move stock

inventory_move

Change stock, all moves or none: receive (in, at unit_cost, which becomes part of the moving average), ship (out, at the moving average), transfer (from location to another, to), adjust (a signed quantity: found, damaged, used). Stock can't go below 0 at a location. reference ties a move to an order or invoice number. Costs $0.005 per move; nothing if none are found.

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": {
      "moves": "<moves>"
    },
    "name": "inventory_move"
  }
}

Input Schema

NameRequiredDescriptionDefault
movesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already fix the safety profile (destructiveHint=false, idempotentHint=false), so the description is free to add genuinely new behavior: atomicity ("all moves or none"), an invariant (stock can't go below 0 at a location), cost accounting ($0.005 per move), and the moving-average side effect of unit_cost. These are exactly the mutation traits an agent needs. The cryptic "nothing if none are found" clause and the absence of any return/result behavior keep it from a 5.

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?

Dense but front-loaded: the atomicity constraint and the kind taxonomy come first, then reference and cost. Every sentence carries information, though the heavy parenthetical grammar ("receive (in, at unit_cost, which becomes part of the moving average)") makes it slightly harder to parse than necessary.

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 single-array mutation tool with no output schema, the description covers atomicity, invariants, cost, and per-kind semantics — most of what an agent needs to call it safely. The gaps are the ambiguous "none are found" behavior and no indication of what the result contains (e.g., resulting stock levels), which matter for a batch operation.

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?

Top-level schema coverage is effectively zero ("moves" is an undescribed array), though nested item properties are documented in the schema. The description compensates by giving semantics the schema lacks: unit_cost feeds the moving average on receive, quantity is signed only for adjust with found/damaged/used meanings, transfer needs a `to`, and reference links the move to an order or invoice. It still doesn't clarify the cryptic "none are found" case or how skipped moves are reported.

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 ("Change stock") and then enumerates the four move kinds (receive, ship, transfer, adjust) with what each does to quantity and cost. This distinguishes it cleanly from siblings like inventory_stocktake, inventory_save_items, or purchasing_receive without needing the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains what each kind means, which implicitly guides selection between receive/ship/transfer/adjust, and notes the per-move cost with a hint that moves may be skipped ("nothing if none are found"). However, it never states when to use this over siblings such as purchasing_receive or inventory_stocktake, nor any prerequisites, so guidance is implied rather than explicit.

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