Skip to content

Linnworks MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.0.0 · published by io.usefulapi

Read Linnworks inventory, stock and orders; set stock levels and add order notes.

Deletes · 2

17 tools: 2 can delete or cancel things and 15 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http linnworks https://linnworks.usefulapi.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

17 tools

Deletes or cancels 2Claude Code: deny
  • linnworks_add_order_noteWRITE: add a note to an order (open or processed).No findings

    Why it is in this group

    • The name "linnworks_add_order_note" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: add a note to an order (open or processed). Internal notes are visible only inside Linnworks; external notes may be passed to the sales channel. Adds a new note each call (not idempotent). POST /api/Orders/AddOrdersNote.

    Annotations the server declares

    • title: Add order note
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • linnworks_set_stock_levelWRITE: set the stock level of one product (by SKU) at one location to an absolute quantity.No findings

    Why it is in this group

    • The name "linnworks_set_stock_level" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: set the stock level of one product (by SKU) at one location to an absolute quantity. This overwrites the current level and flows to the sales channels the item is listed on. Check the current level with linnworks_get_stock_levels first. POST /api/Stock/SetStockLevel.

    Annotations the server declares

    • title: Set stock level
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
Only reads 15Claude Code: allow
  • linnworks_find_order_by_numberFind one order, open or processed, by its Linnworks order number (the integer shown in the order book).No findings

    Why it is in this group

    • The name "linnworks_find_order_by_number" says "find": a word for reading.
    Description, as the server wrote it
    Find one order, open or processed, by its Linnworks order number (the integer shown in the order book). Returns an empty order when none matches. GET /api/Orders/GetOrderDetailsByNumOrderId.

    Annotations the server declares

    • title: Find order by order number
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_find_orders_by_referenceFind orders by their channel reference number (for example an Amazon or eBay order number) or secondary reference.No findings

    Why it is in this group

    • The name "linnworks_find_orders_by_reference" says "find": a word for reading.
    Description, as the server wrote it
    Find orders by their channel reference number (for example an Amazon or eBay order number) or secondary reference. Returns at most 50 orders. GET /api/Orders/GetOrderDetailsByReferenceId.

    Annotations the server declares

    • title: Find orders by channel reference
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_get_inventory_itemOne product by its stock item id: SKU (ItemNumber), title, barcode, quantities (in stock, in orders, due, available), prices, tax rate, category, dimensions and weight.No findings

    Why it is in this group

    • The name "linnworks_get_inventory_item" says "get": a word for reading.
    Description, as the server wrote it
    One product by its stock item id: SKU (ItemNumber), title, barcode, quantities (in stock, in orders, due, available), prices, tax rate, category, dimensions and weight. GET /api/Inventory/GetInventoryItemById.

    Annotations the server declares

    • title: Get inventory item
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_get_open_orders_detailsFull details of open orders by their ids (up to 50): general info, shipping, customer, totals, items, folders, notes, identifiers, extended properties and bin racks.No findings

    Why it is in this group

    • The name "linnworks_get_open_orders_details" says "get": a word for reading.
    Description, as the server wrote it
    Full details of open orders by their ids (up to 50): general info, shipping, customer, totals, items, folders, notes, identifiers, extended properties and bin racks. Pass include to load only some of the optional parts. Only works for open orders. POST /api/OpenOrders/GetOpenOrdersDetails.

    Annotations the server declares

    • title: Get open order details
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_get_orderOne order, open or processed, by its order id (a GUID): general info, shipping, customer, totals, items, notes.No findings

    Why it is in this group

    • The name "linnworks_get_order" says "get": a word for reading.
    Description, as the server wrote it
    One order, open or processed, by its order id (a GUID): general info, shipping, customer, totals, items, notes. GET /api/Orders/GetOrderById.

    Annotations the server declares

    • title: Get order
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_get_order_notesThe notes on an order (text, internal or external, who wrote them and when).No findings

    Why it is in this group

    • The name "linnworks_get_order_notes" says "get": a word for reading.
    Description, as the server wrote it
    The notes on an order (text, internal or external, who wrote them and when). GET /api/Orders/GetOrderNotes.

    Annotations the server declares

    • title: Get order notes
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_get_stock_historyThe stock-level change history of one product (date, new level, change quantity, value, note), newest data first as Linnworks returns it; optionally for a single location, otherwis…No findings

    Why it is in this group

    • The name "linnworks_get_stock_history" says "get": a word for reading.
    Description, as the server wrote it
    The stock-level change history of one product (date, new level, change quantity, value, note), newest data first as Linnworks returns it; optionally for a single location, otherwise combined. GET /api/Stock/GetItemChangesHistory.

    Annotations the server declares

    • title: Get stock change history
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_get_stock_levelsThe stock level of one product at every location: in stock, in open orders, due on purchase orders, available, minimum level, unit cost and when it last changed.No findings

    Why it is in this group

    • The name "linnworks_get_stock_levels" says "get": a word for reading.
    Description, as the server wrote it
    The stock level of one product at every location: in stock, in open orders, due on purchase orders, available, minimum level, unit cost and when it last changed. GET /api/Stock/GetStockLevel.

    Annotations the server declares

    • title: Get stock levels
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_list_categoriesList the product categories (id and name).No findings

    Why it is in this group

    • The name "linnworks_list_categories" says "list": a word for reading.
    Description, as the server wrote it
    List the product categories (id and name). GET /api/Inventory/GetCategories.

    Annotations the server declares

    • title: List categories
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_list_open_ordersPage through the open (not yet processed) orders of a fulfilment location, with general info (status, reference, source, received date), shipping, customer, totals and items.No findings

    Why it is in this group

    • The name "linnworks_list_open_orders" says "list": a word for reading.
    Description, as the server wrote it
    Page through the open (not yet processed) orders of a fulfilment location, with general info (status, reference, source, received date), shipping, customer, totals and items. Narrow with text filters (reference, customer, SKU ...) and a received-date range. POST /api/Orders/GetOpenOrders.

    Annotations the server declares

    • title: List open orders
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_list_postal_servicesList the postal (shipping) services with their courier vendor, tracking and weight requirements and linked channels.No findings

    Why it is in this group

    • The name "linnworks_list_postal_services" says "list": a word for reading.
    Description, as the server wrote it
    List the postal (shipping) services with their courier vendor, tracking and weight requirements and linked channels. GET /api/PostalServices/GetPostalServices.

    Annotations the server declares

    • title: List postal services
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_list_stock_locationsList the stock locations (warehouses, fulfilment centres) of the Linnworks account: id, name, address, whether it is a fulfilment centre.No findings

    Why it is in this group

    • The name "linnworks_list_stock_locations" says "list": a word for reading.
    Description, as the server wrote it
    List the stock locations (warehouses, fulfilment centres) of the Linnworks account: id, name, address, whether it is a fulfilment centre. Use the ids as location_id in other tools. GET /api/Inventory/GetStockLocations.

    Annotations the server declares

    • title: List stock locations
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_list_suppliersList the suppliers: id, name, contact, address, email, web page and currency.No findings

    Why it is in this group

    • The name "linnworks_list_suppliers" says "list": a word for reading.
    Description, as the server wrote it
    List the suppliers: id, name, contact, address, email, web page and currency. GET /api/Inventory/GetSuppliers.

    Annotations the server declares

    • title: List suppliers
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_search_inventorySearch the product catalogue by SKU, title or barcode and return the items with their stock levels per location (and optionally pricing, suppliers, images, extended properties).No findings

    Why it is in this group

    • The name "linnworks_search_inventory" says "search": a word for reading.
    Description, as the server wrote it
    Search the product catalogue by SKU, title or barcode and return the items with their stock levels per location (and optionally pricing, suppliers, images, extended properties). An empty keyword lists items. POST /api/Stock/GetStockItemsFull.

    Annotations the server declares

    • title: Search inventory
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • linnworks_search_processed_ordersSearch processed (despatched) orders.No findings

    Why it is in this group

    • The name "linnworks_search_processed_orders" says "search": a word for reading.
    Description, as the server wrote it
    Search processed (despatched) orders. Search by order number, tracking number, channel reference, customer name, email, postcode, address, SKU, source or sub-source, optionally within a date range (at most 3 months; a non-exact search covers only the last 3 months). POST /api/ProcessedOrders/SearchProcessedOrdersPaged.

    Annotations the server declares

    • title: Search processed orders
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http linnworks https://linnworks.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__linnworks__linnworks_list_stock_locations",
      "mcp__linnworks__linnworks_search_inventory",
      "mcp__linnworks__linnworks_get_inventory_item",
      "mcp__linnworks__linnworks_get_stock_levels",
      "mcp__linnworks__linnworks_get_stock_history",
      "mcp__linnworks__linnworks_list_categories",
      "mcp__linnworks__linnworks_list_suppliers",
      "mcp__linnworks__linnworks_list_open_orders",
      "mcp__linnworks__linnworks_get_open_orders_details",
      "mcp__linnworks__linnworks_get_order",
      "mcp__linnworks__linnworks_find_order_by_number",
      "mcp__linnworks__linnworks_find_orders_by_reference",
      "mcp__linnworks__linnworks_search_processed_orders",
      "mcp__linnworks__linnworks_get_order_notes",
      "mcp__linnworks__linnworks_list_postal_services"
    ],
    "ask": [],
    "deny": [
      "mcp__linnworks__linnworks_set_stock_level",
      "mcp__linnworks__linnworks_add_order_note"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as linnworks. Review it before you use it.