Skip to main content
Glama

adjust_inventory_stock

Add (positive) or deduct (negative) stock for one General Inventory product with a required reason; writes an inventoryAdjustments record exactly like the app's Adjust Stock dialog. QuailOS stock is a single farm-wide count (no per-location stock); an optional location is recorded in the reason text. Rejects results below zero unless allowNegative is true. Supports confirm and idempotencyKey.

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": {
      "farmId": "<farmId>",
      "quantity": "<quantity>",
      "reason": "<reason>"
    },
    "name": "adjust_inventory_stock"
  }
}

Input Schema

NameRequiredDescriptionDefault
skuNoProduct SKU (or use productId)
farmIdYesThe unique farm ID
reasonYesReason / note for the adjustment (required)
confirmNoSet to true to commit, false for dry-run preview
locationNoOptional location label (e.g. Blossom, FBA); appended to the reason text
quantityYesWhole-number change: positive adds, negative deducts (non-zero)
productIdNoInventory product ID (or use sku)
allowNegativeNoAllow the resulting stock to go below zero (default false)
idempotencyKeyNoUnique request idempotency key (recommended)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.2/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing the concrete side effect (an inventoryAdjustments record), the zero-floor rejection rule, the farm-wide stock model with location folded into the reason text, and dry-run/idempotency support. Minor tension exists between the 'idempotencyKey' claim and idempotentHint=false, though the annotation describes server-side repeat semantics rather than key-based dedupe, so this is context rather than a contradiction.

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?

Three tight sentences with the core action front-loaded, then side effect, then constraints. No filler, no restatement of the title, and every clause carries operational 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 9-parameter mutation tool with no output schema, it covers side effects, failure conditions, dry-run, and idempotency, which is most of what an agent needs. It stops short of describing the response payload or any authorization/permission requirements, which leaves a small gap.

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 coverage is 100%, so the baseline is 3; the description adds cross-parameter semantics on top — sign convention for quantity, the zero-floor interaction with allowNegative, and the fact that location is not a real stock dimension but is appended to reason. Those relationships are not obvious from the per-field schema text alone.

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 names a specific verb pair (add positive / deduct negative), the resource (stock for one General Inventory product), and the side effect (writes an inventoryAdjustments record like the Adjust Stock dialog). This cleanly separates it from field-level setters like update_inventory_product and from the other inventory domains (feed/meat) in the sibling list.

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?

Usage context is implied rather than stated: the confirm=true commit vs confirm=false dry-run convention and the allowNegative escape hatch tell the agent how to call it safely, but nothing says when to prefer this over update_inventory_product or create_inventory_product, and no prerequisites are given.

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