MCPInventory
Move stock between locations
distru-move-stockWriteMoves quantity of batch-tracked or product-tracked products from one of your locations to another, completed at once (a stock transfer).
Inputs
Every tool also takes the common inputs.
| Field | Type | Required | Description |
|---|---|---|---|
| fromLocationId | string | Yes | Resolve via distru-search-locations. |
| toLocationId | string | Yes | Must differ from fromLocationId. Resolve via distru-search-locations. |
| items | object[] | Yes | |
| items[]. | string | No | Send exactly one of batchId or productId. A batch of a batch-tracked product. Resolve via distru-search-batches. |
| items[]. | string | No | A product-tracked product. Resolve via distru-search-products. |
| items[]. | string or number | Yes | Greater than 0, in the product's unit type; at most the stock at fromLocationId, read with includeActiveQuantitiesByLocation on distru-get-batch (batchId) or distru-get-product (productId). |
| description | string | No | |
| transferDatetime | string | No | The date the transfer shows. Defaults to now; the stock moves now either way. ISO 8601 with a UTC offset, e.g. "2026-09-01T00:00:00-07:00"; the company timezone is on distru-get-me. |
| customFields | object[] | No | Only the fields listed change. Required custom fields must be set, on update too, while still blank. |
| customFields[]. | string | Yes | Resolve via distru-search-custom-fields (entityType STOCK_TRANSFER). |
| customFields[]. | string or string[] | Yes | TEXT: the text. DROPDOWN: the option name. CHECKBOX: an array of option names. DATE: YYYY-MM-DD, company timezone. "" or [] clears the field. |
Output
Presence on a nested field assumes its parent exists.
| Field | Type | Presence |
|---|---|---|
| stockTransfer | object | Always |
| stockTransfer. | string | Always |
| stockTransfer. | string | Always |
| stockTransfer. | enumCANCELEDCOMPLETEDTRANSIT | Always |
| stockTransfer. | string | Can be null |
| stockTransfer. | string | Can be null |
| stockTransfer. | string | Can be null |
| stockTransfer. | object[] | Always |
| stockTransfer. | object | Always |
| stockTransfer. | string | Always |
| stockTransfer. | string | Always |
| stockTransfer. | enumCHECKBOXDATEDROPDOWNTEXT | Always |
| stockTransfer. | string | Can be null |
| stockTransfer. | object | Can be null |
| stockTransfer. | string | Always |
| stockTransfer. | string | Always |
| stockTransfer. | object | Can be null |
| stockTransfer. | string | Always |
| stockTransfer. | string | Always |
| stockTransfer. | object[] | Always |
| stockTransfer. | string | Can be null |
| stockTransfer. | object | Always |
| stockTransfer. | string | Always |
| stockTransfer. | string | Always |
| stockTransfer. | object | Can be null |
| stockTransfer. | string | Always |
| stockTransfer. | string | Always |
| stockTransfer. | object | Can be null |
| stockTransfer. | string | Always |
| stockTransfer. | string | Always |
What the AI reads
Moves quantity of batch-tracked or product-tracked products from one of your locations to another, completed at once (a stock transfer). Package-tracked products move as whole packages with distru-move-packages. Not idempotent: each call moves the stock again. Distru inventory only; nothing is sent to Metrc. Returns the stock transfer with its lines, as distru-search-stock-transfers does; batch is null on product-tracked lines.