Last updated

Norce Inventory MCP — Tool Reference

This page documents the tools exposed by the Norce Inventory MCP Server. For setup and connection instructions, see Using the Norce Backend MCP Servers.

response_format parameter: Most tools accept a response_format parameter — either "markdown" (default, human-readable) or "json" (for programmatic use). This parameter is not listed individually under each tool.

force_confirm parameter: Write tools include a force_confirm parameter, backed by a server-side guard that classifies each operation by impact. Lower-impact operations go through, with a warning attached on stage and production. Higher-impact operations are blocked on stage and production until force_confirm is set. A few destructive operations are blocked on every environment, including test. Each tool below states which of these applies.


Two views of stock

The Inventory MCP exposes stock data through two distinct tools that serve different purposes. Choosing the right one matters:

  • norce_inventory_get_onhand reads directly from the database — no cache, no business logic. Use it for diagnostics and integration checks where you need to see exactly what is stored.
  • norce_inventory_get_onhand_customer_view returns stock as the storefront would show it — with business rules, availability logic, and caching applied. Use it when you need to understand what a customer actually sees.

The storefront view is application-specific — the applicationId you pass determines which storefront's availability rules are applied. Different applications (for example a Swedish and a Norwegian storefront) can have different warehouse visibility, availability rules, and thresholds, so the same physical stock can appear differently depending on which application ID is used. Use norce_config_list_applications to list all applications for the client, then switch between them to compare how different storefronts show availability for the same product.


Tools

List Warehouse Info

norce_inventory_list_warehouse_info

Returns a lightweight list of all warehouses and their locations, with both codes and numeric IDs.

Use this tool when you need to look up warehouse or location codes before making other calls. Import tools require codes; the raw onhand tool accepts IDs for filtering. Also useful for mapping external system warehouse codes to Norce codes.

Parameters

  • applicationId — any valid application ID for the client.

Output

A list of warehouses, each with their ID, code, name, active status, and a list of locations with their IDs and codes.


List Warehouses

norce_inventory_list_warehouses

Returns full warehouse configuration for all warehouses — type, lead times, active status, and all location settings including stock calculation flags and price list connections.

Use this tool when you need more than just codes and IDs — for example, to understand how a warehouse is configured, diagnose availability issues, or inspect price list connections on locations.

Parameters

  • applicationId — any valid application ID for the client.
  • include_deleted — set to true to include soft-deleted warehouses. Useful when diagnosing why a previously existing warehouse no longer appears.

Output

A list of warehouses with full configuration including locations, lead times, stock calculation flags, and price list connections.


Get Warehouse

norce_inventory_get_warehouse

Returns full configuration for a single warehouse, including all its locations.

Use this tool when you need detailed configuration for one specific warehouse — for example before updating it, or to verify its current state after a change. Accepts warehouse ID or code.

Parameters

  • applicationId — any valid application ID for the client.
  • warehouse — warehouse ID or code.

Output

The full warehouse object with locations, same structure as norce_inventory_list_warehouses.


Get On-Hand Stock

norce_inventory_get_onhand

Reads raw on-hand stock data directly from the database for one or more SKUs, across all or specific warehouses.

Use this tool for diagnostics and integration checks — when you need to verify what is actually stored, see update timestamps, or check records immediately after an import. This tool bypasses cache and business logic, so it shows the true current state of the data.

Do not use this tool to answer "what does the customer see?" — use norce_inventory_get_onhand_customer_view for that.

Parameters

  • applicationId — any valid application ID for the client.
  • part_nos — one or more SKU part numbers to look up. Maximum 50 per call.
  • warehouse_filters — optional list of warehouse IDs or codes to limit results to specific warehouses.
  • include_inactive — set to true to include deactivated on-hand records, which is useful when diagnosing why a product appears out of stock.

Output

Per part number and warehouse/location: on-hand value, incoming value, next delivery date, lead time, active status, and last updated timestamp.


Get On-Hand — Customer View

norce_inventory_get_onhand_customer_view

Returns stock data as the storefront would show it — with business rules, availability logic, and caching applied.

Use this tool when investigating customer-facing availability issues, or when you want to verify that a product's stock displays correctly on the storefront. This is what the frontend API returns, so it is the right tool for questions like "why does the website show out of stock?" You can also pass a different applicationId to compare how the same product's availability appears on two different storefronts — for example to check whether the Swedish and Norwegian storefronts both show the correct stock status.

Parameters

  • applicationId — any valid application ID for the client.
  • part_no — a single SKU part number.
  • warehouses — optional list of specific warehouses and locations to query. If omitted, returns the default warehouse view.

Output

On-hand per warehouse with warehouse and location codes, on-hand value, incoming value, next delivery date, lead time, active status, and any custom info fields configured on the client (such as shelf numbers).


Import On-Hand Stock

norce_inventory_import_onhands

Imports absolute on-hand stock values from an external system (WMS, ERP, or POS) into Norce Commerce as an asynchronous batch job.

Use this tool when updating stock quantities from an external source. Returns a job ID — use norce_inventory_get_import_job_status to check completion.

Important: always batch. Collect all records before calling this tool and pass them in a single call. Never call it once per product — each call has processing overhead and Norce handles imports asynchronously.

Important: these are absolute values. Each record replaces the existing on-hand value entirely. This is a snapshot, not a delta.

is_active vs onhand_value = 0: Use onhand_value = 0 for products that are temporarily out of stock. Only set is_active = false when a product is permanently being removed from a warehouse — this may trigger product expiry depending on client configuration. Use with caution.

Parameters

  • applicationId — any valid application ID for the client.
  • records — batch of on-hand records, minimum 1 and maximum 5000 per call. Each record requires a part number, warehouse code, and location code. On-hand value, incoming value, next delivery date, lead time, active status, and custom info fields are optional per record.
  • updated_by_account_id — overrides the default account ID used to identify the source of the import. Set this to the account ID of the external system (WMS, ERP, POS) sending the stock update, so Norce records exactly which system last wrote each record. This matters when multiple source systems update stock in the same environment — without it, all imports appear to come from the same default account, making it impossible to distinguish which system is responsible for a given value.
  • force_confirm — required on stage and production.

Output

A job ID, initial status, number of records received, and any immediate validation failures. Poll norce_inventory_get_import_job_status for the final result.


Get Import Job Status

norce_inventory_get_import_job_status

Checks the status of an asynchronous on-hand import job.

Use this tool after norce_inventory_import_onhands to confirm the import completed and check for errors. Poll until isFinished is true — typical processing time is 5–30 seconds for small batches, longer for large ones.

Status codes: 1 = Initialized, 2 = Succeeded, 3 = Failed, 4 = Validation failed.

Parameters

  • applicationId — any valid application ID for the client.
  • job_id — the job ID returned by norce_inventory_import_onhands.

Output

Job status, finish flag, record counts (total, inserted, updated, failed), and processing timestamps.


Create Warehouse

norce_inventory_create_warehouse

Creates a new warehouse in Norce Commerce. A default location is created automatically and can be configured afterwards with norce_inventory_update_locations.

Use this tool when setting up a new client environment or adding a warehouse to an existing client. The warehouse code must be unique for the client and should match the code used in external systems to simplify integration mappings.

Parameters

  • applicationId — any valid application ID for the client.
  • code — unique warehouse code. Max 50 characters.
  • name — display name. Max 50 characters.
  • type_id1 for a warehouse (online fulfillment), 2 for a store (physical retail).
  • is_standard — mark as the default warehouse. Only one warehouse can be standard at a time.
  • standard_lead_time_days — default lead time for all products in this warehouse. Can be overridden per location or per product.
  • is_active — defaults to true.
  • force_confirm — not required for creation, which proceeds with a warning on stage and production. Creating a warehouse with is_active = false counts as a deactivation and is blocked on every environment until confirmed.

Output

The created warehouse object with its assigned ID.


Update Warehouse

norce_inventory_update_warehouse

Updates settings for an existing warehouse. Only the fields provided are changed.

Use this tool to rename a warehouse, change its lead time, toggle its active status, or reassign the standard warehouse. To update location settings, use norce_inventory_update_locations instead.

Parameters

  • applicationId — any valid application ID for the client.
  • warehouse — warehouse ID or code.
  • name, is_standard, standard_lead_time_days, is_active — any combination of settings to update.
  • force_confirm — required on every environment, including test, when deactivating (is_active = false). Other updates proceed with a warning on stage and production.

Output

The updated warehouse object.


Update Locations

norce_inventory_update_locations

Updates the locations within a warehouse — lead times, stock calculation flags, standard location, and price list connections.

Use this tool to configure how a warehouse location behaves: whether it counts towards stock calculations, which price list it is connected to, and what lead time it applies. This is the primary tool for linking a warehouse location to a price list ID.

Important: The locations array replaces all location settings for the warehouse. Always read the current locations first with norce_inventory_get_warehouse to avoid accidentally overwriting existing configuration.

Parameters

  • applicationId — any valid application ID for the client.
  • warehouse — warehouse ID or code.
  • locations — the full list of locations for this warehouse. Each entry requires the location ID for existing locations. Optional fields per location: code, name, is_standard, is_included_in_stock_calculation, standard_lead_time_days, and primary_price_list_id.
  • force_confirm — required on every environment, including test, when disabling stock calculation on a location; required on stage and production when changing a location's price list connection. Other location updates proceed with a warning there.

Output

A confirmation message. Fetch the warehouse again to verify the updated state.


Typical workflows

Diagnosing a stock discrepancy

  1. Call norce_inventory_get_onhand to see the raw stored values, update timestamps, and whether the record is active.
  2. Call norce_inventory_get_onhand_customer_view to see what the storefront is actually showing.
  3. Compare the two — if the raw value looks correct but the customer view does not, the issue is in business logic or caching rather than the underlying data.

Importing stock from an external system

  1. Call norce_inventory_list_warehouse_info to get the warehouse and location codes needed for the import records.
  2. Collect all records into a single batch.
  3. Call norce_inventory_import_onhands with the full batch. Pass updated_by_account_id set to the account ID of the source system so Norce records which system wrote the data — especially important when more than one system updates stock in the same environment.
  4. Poll norce_inventory_get_import_job_status until isFinished is true.
  5. Verify a sample of SKUs with norce_inventory_get_onhand to confirm the values landed correctly.

Setting up a new warehouse

  1. Call norce_inventory_create_warehouse with the code, name, and type.
  2. Call norce_inventory_get_warehouse to retrieve the auto-created default location ID.
  3. Call norce_inventory_update_locations to configure the location — lead time, stock calculation flag, and price list connection.
  4. Verify the full setup with norce_inventory_get_warehouse.