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_formatparameter: Most tools accept aresponse_formatparameter — either"markdown"(default, human-readable) or"json"(for programmatic use). This parameter is not listed individually under each tool.
force_confirmparameter: Write tools include aforce_confirmparameter, 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 untilforce_confirmis 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_onhandreads 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_viewreturns 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 totrueto 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 totrueto 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 bynorce_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_id—1for a warehouse (online fulfillment),2for 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 totrue.force_confirm— not required for creation, which proceeds with a warning on stage and production. Creating a warehouse withis_active = falsecounts 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, andprimary_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
- Call
norce_inventory_get_onhandto see the raw stored values, update timestamps, and whether the record is active. - Call
norce_inventory_get_onhand_customer_viewto see what the storefront is actually showing. - 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
- Call
norce_inventory_list_warehouse_infoto get the warehouse and location codes needed for the import records. - Collect all records into a single batch.
- Call
norce_inventory_import_onhandswith the full batch. Passupdated_by_account_idset 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. - Poll
norce_inventory_get_import_job_statusuntilisFinishedistrue. - Verify a sample of SKUs with
norce_inventory_get_onhandto confirm the values landed correctly.
Setting up a new warehouse
- Call
norce_inventory_create_warehousewith the code, name, and type. - Call
norce_inventory_get_warehouseto retrieve the auto-created default location ID. - Call
norce_inventory_update_locationsto configure the location — lead time, stock calculation flag, and price list connection. - Verify the full setup with
norce_inventory_get_warehouse.