Move stock
Changes stock, all moves or none: receive, ship, transfer between locations, or adjust.
$0.005 per move
From your agent’s balance. A call that fails costs nothing.
An example
Twelve beech bistro chairs came in from the maker at 140 euros each, and two left today for order 1001.
Your agent callsinventory_move$0.005 per move
The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.
{
"moves": [
{
"kind": "receive",
"sku": "CHAIR-BISTRO-BEECH",
"quantity": 12,
"unit_cost": "140.00",
"reference": "Delivery 41"
},
{
"kind": "ship",
"sku": "CHAIR-BISTRO-BEECH",
"quantity": 2,
"reference": "Order 1001"
}
]
}Use it when
Stock came in, went out, moved, broke or was found.
- For a count of everything at a location, use
inventory_stocktake. - For goods ordered from a supplier arriving, use
purchasing_receive.
What it does
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.
What comes back
moves: each as booked (move_id, date, kind, SKU, quantity, from, to, unit cost, value, quantity after, reference, note); items: the stock of each item afterwards. Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
movesRequired | array of objects | 1 to 100 items. |
moves[].kindRequired | string | One of: receive,ship,transfer,adjust. |
moves[].skuRequired | string | The item's SKU. 1 to 64 characters. |
moves[].quantityRequired | number or string | Up to 6 decimals; negative only for adjust. Up to 24 characters. |
moves[].location | string | A location by name. Default: "Main" (made on first use). Up to 120 characters. |
moves[].to | string | transfer: where the stock goes. Up to 120 characters. |
moves[].unit_cost | number or string | receive (and adjust in): what one cost. Default: the moving average, else the item's cost. Up to 24 characters. |
moves[].reference | string | Up to 120 characters. |
moves[].note | string | Up to 500 characters. |
moves[].date | string | Default today. Matches ^\d{4}-\d{2}-\d{2}$. |
The call
Over MCP, call inventory_move on https://api.conecto.chat/mcp/inventory. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/inventory_move \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"moves":[{"kind":"receive","sku":"CHAIR-BISTRO-BEECH","quantity":12,"unit_cost":"140.00","reference":"Delivery 41"},{"kind":"ship","sku":"CHAIR-BISTRO-BEECH","quantity":2,"reference":"Order 1001"}]}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
invalid_input400 | A quantity, cost or date is not valid. | Send numbers like 140.00 (a dot for decimals) and dates that have passed, like 2026-10-14. |
not_enough_stock409 | Stock would go below 0 at a location. | Ship or move less; the message says how much there is. |
not_found404 | No location has that name. | Call inventory_locations, or add it with inventory_save_location. |
archived409 | The item or location is archived. | Use another one, or name a location that is in use. |
not_found404 | No item has that SKU. | Add it with inventory_save_items first. |
invalid_input400 | A move's kind is unknown, a quantity is 0, or a transfer has no to. | Fix the move the message names, like "Move 2". |
More Inventory tools
All 10 tools- Add or change items
inventory_save_itemsAdds stock items or changes them by SKU: name, unit, barcode, cost, price and reorder point.$0.005 per item saved - List items
inventory_list_itemsItems with their stock in total and per location, the moving-average cost and the value.Free* - Count a location
inventory_stocktakeRecords a count of one location; each difference from the books becomes a count move.$0.002 per line counted - Stock history
inventory_historyStock moves, newest first, of one item, at one location, of one kind, or in a period.Free* - List locations
inventory_locationsEvery location with how many items it holds and their value.Free* - Add or change a location
inventory_save_locationAdds a location (a warehouse, a shop, a van), or renames, describes or archives one.$0.001 a call - Run an inventory report
inventory_reportValuation (what was held on a day and its value), movement (per item in a period, with the cost of goods shipped) or low stock.Free* - Import items from CSV
inventory_importCreates or changes items from a CSV in the file store, with optional quantities per location; all rows or none.$0.001 per row imported
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md