{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-ai/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown","redocly_category":"Development","owner":"MB"},"seo":{"title":"AI - Norce Inventory MCP Tool Reference","description":"Reference for all tools exposed by the Norce Inventory MCP Server — warehouses, locations, on-hand quantities, customer-view availability, and stock imports.","keywords":"MCP, model context protocol, inventory MCP, warehouses, onhand, stock, availability, tool reference"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"norce-inventory-mcp--tool-reference"},"children":["Norce Inventory MCP — Tool Reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page documents the tools exposed by the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Norce Inventory MCP Server"]},". For setup and connection instructions, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ai/using-the-norce-backend-mcp-servers"},"children":["Using the Norce Backend MCP Servers"]},"."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response_format"]}," parameter:"]}," Most tools accept a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response_format"]}," parameter — either ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"markdown\""]}," (default, human-readable) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"json\""]}," (for programmatic use). This parameter is not listed individually under each tool."]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," parameter:"]}," Write tools include a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["stage and production"]}," until ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," is set. A few destructive operations are blocked on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["every environment, including test"]},". Each tool below states which of these applies."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"two-views-of-stock"},"children":["Two views of stock"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Inventory MCP exposes stock data through two distinct tools that serve different purposes. Choosing the right one matters:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The storefront view is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["application-specific"]}," — the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"tools"},"children":["Tools"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-warehouse-info"},"children":["List Warehouse Info"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_list_warehouse_info"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns a lightweight list of all warehouses and their locations, with both codes and numeric IDs."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of warehouses, each with their ID, code, name, active status, and a list of locations with their IDs and codes."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-warehouses"},"children":["List Warehouses"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_list_warehouses"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns full warehouse configuration for all warehouses — type, lead times, active status, and all location settings including stock calculation flags and price list connections."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_deleted"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include soft-deleted warehouses. Useful when diagnosing why a previously existing warehouse no longer appears."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of warehouses with full configuration including locations, lead times, stock calculation flags, and price list connections."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-warehouse"},"children":["Get Warehouse"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_warehouse"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns full configuration for a single warehouse, including all its locations."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warehouse"]}," — warehouse ID or code."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The full warehouse object with locations, same structure as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_list_warehouses"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-on-hand-stock"},"children":["Get On-Hand Stock"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_onhand"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reads raw on-hand stock data directly from the database for one or more SKUs, across all or specific warehouses."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not use this tool to answer \"what does the customer see?\" — use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_onhand_customer_view"]}," for that."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["part_nos"]}," — one or more SKU part numbers to look up. Maximum 50 per call."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warehouse_filters"]}," — optional list of warehouse IDs or codes to limit results to specific warehouses."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_inactive"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include deactivated on-hand records, which is useful when diagnosing why a product appears out of stock."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Per part number and warehouse/location: on-hand value, incoming value, next delivery date, lead time, active status, and last updated timestamp."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-on-hand--customer-view"},"children":["Get On-Hand — Customer View"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_onhand_customer_view"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns stock data as the storefront would show it — with business rules, availability logic, and caching applied."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["part_no"]}," — a single SKU part number."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warehouses"]}," — optional list of specific warehouses and locations to query. If omitted, returns the default warehouse view."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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)."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"import-on-hand-stock"},"children":["Import On-Hand Stock"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_import_onhands"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Imports absolute on-hand stock values from an external system (WMS, ERP, or POS) into Norce Commerce as an asynchronous batch job."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," when updating stock quantities from an external source. Returns a job ID — use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_import_job_status"]}," to check completion."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important: these are absolute values."]}," Each record replaces the existing on-hand value entirely. This is a snapshot, not a delta."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]}," vs ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onhand_value = 0"]},":"]}," Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["onhand_value = 0"]}," for products that are temporarily out of stock. Only set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A job ID, initial status, number of records received, and any immediate validation failures. Poll ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_import_job_status"]}," for the final result."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-import-job-status"},"children":["Get Import Job Status"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_import_job_status"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Checks the status of an asynchronous on-hand import job."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," after ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_import_onhands"]}," to confirm the import completed and check for errors. Poll until ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isFinished"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," — typical processing time is 5–30 seconds for small batches, longer for large ones."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Status codes:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]}," = Initialized, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2"]}," = Succeeded, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["3"]}," = Failed, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4"]}," = Validation failed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["job_id"]}," — the job ID returned by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_import_onhands"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Job status, finish flag, record counts (total, inserted, updated, failed), and processing timestamps."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-warehouse"},"children":["Create Warehouse"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_create_warehouse"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a new warehouse in Norce Commerce. A default location is created automatically and can be configured afterwards with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_update_locations"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," — unique warehouse code. Max 50 characters."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}," — display name. Max 50 characters."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type_id"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]}," for a warehouse (online fulfillment), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2"]}," for a store (physical retail)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_standard"]}," — mark as the default warehouse. Only one warehouse can be standard at a time."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["standard_lead_time_days"]}," — default lead time for all products in this warehouse. Can be overridden per location or per product."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]}," — defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — not required for creation, which proceeds with a warning on stage and production. Creating a warehouse with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active = false"]}," counts as a deactivation and is blocked on every environment until confirmed."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The created warehouse object with its assigned ID."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"update-warehouse"},"children":["Update Warehouse"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_update_warehouse"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Updates settings for an existing warehouse. Only the fields provided are changed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_update_locations"]}," instead."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warehouse"]}," — warehouse ID or code."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_standard"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["standard_lead_time_days"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]}," — any combination of settings to update."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["every environment, including test"]},", when deactivating (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active = false"]},"). Other updates proceed with a warning on stage and production."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The updated warehouse object."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"update-locations"},"children":["Update Locations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_update_locations"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Updates the locations within a warehouse — lead times, stock calculation flags, standard location, and price list connections."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important:"]}," The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["locations"]}," array replaces all location settings for the warehouse. Always read the current locations first with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_warehouse"]}," to avoid accidentally overwriting existing configuration."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warehouse"]}," — warehouse ID or code."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["locations"]}," — the full list of locations for this warehouse. Each entry requires the location ID for existing locations. Optional fields per location: code, name, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_standard"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_included_in_stock_calculation"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["standard_lead_time_days"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["primary_price_list_id"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A confirmation message. Fetch the warehouse again to verify the updated state."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"typical-workflows"},"children":["Typical workflows"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"diagnosing-a-stock-discrepancy"},"children":["Diagnosing a stock discrepancy"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_onhand"]}," to see the raw stored values, update timestamps, and whether the record is active."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_onhand_customer_view"]}," to see what the storefront is actually showing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["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."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"importing-stock-from-an-external-system"},"children":["Importing stock from an external system"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_list_warehouse_info"]}," to get the warehouse and location codes needed for the import records."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Collect all records into a single batch."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_import_onhands"]}," with the full batch. Pass ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Poll ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_import_job_status"]}," until ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isFinished"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify a sample of SKUs with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_onhand"]}," to confirm the values landed correctly."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"setting-up-a-new-warehouse"},"children":["Setting up a new warehouse"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_create_warehouse"]}," with the code, name, and type."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_warehouse"]}," to retrieve the auto-created default location ID."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_update_locations"]}," to configure the location — lead time, stock calculation flag, and price list connection."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify the full setup with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_get_warehouse"]},"."]}]}]},"headings":[{"value":"Norce Inventory MCP — Tool Reference","id":"norce-inventory-mcp--tool-reference","depth":1},{"value":"Two views of stock","id":"two-views-of-stock","depth":2},{"value":"Tools","id":"tools","depth":2},{"value":"List Warehouse Info","id":"list-warehouse-info","depth":3},{"value":"List Warehouses","id":"list-warehouses","depth":3},{"value":"Get Warehouse","id":"get-warehouse","depth":3},{"value":"Get On-Hand Stock","id":"get-on-hand-stock","depth":3},{"value":"Get On-Hand — Customer View","id":"get-on-hand--customer-view","depth":3},{"value":"Import On-Hand Stock","id":"import-on-hand-stock","depth":3},{"value":"Get Import Job Status","id":"get-import-job-status","depth":3},{"value":"Create Warehouse","id":"create-warehouse","depth":3},{"value":"Update Warehouse","id":"update-warehouse","depth":3},{"value":"Update Locations","id":"update-locations","depth":3},{"value":"Typical workflows","id":"typical-workflows","depth":2},{"value":"Diagnosing a stock discrepancy","id":"diagnosing-a-stock-discrepancy","depth":3},{"value":"Importing stock from an external system","id":"importing-stock-from-an-external-system","depth":3},{"value":"Setting up a new warehouse","id":"setting-up-a-new-warehouse","depth":3}],"frontmatter":{"seo":{"title":"AI - Norce Inventory MCP Tool Reference","description":"Reference for all tools exposed by the Norce Inventory MCP Server — warehouses, locations, on-hand quantities, customer-view availability, and stock imports.","keywords":"MCP, model context protocol, inventory MCP, warehouses, onhand, stock, availability, tool reference"},"metadata":{"redocly_category":"Development","owner":"MB"}},"lastModified":"2026-09-16T06:55:22.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/ai/norce-inventory-mcp-tool-reference","userData":{"isAuthenticated":false,"teams":["anonymous"]}}