Blog

Building a Cin7 or Unleashed MCP Server for Inventory

August 2026 · 4 min read · Technical

A box, code brackets, and a terracotta bar chart
← Back to all posts

Cin7 and Unleashed both expose reasonably capable REST APIs, and both are common enough in Australian wholesale, retail, and light-manufacturing businesses that building an MCP server against either one is a genuinely worthwhile investment once a business is running more than a handful of Claude-driven inventory workflows, rather than relying on one-off scripts each time someone needs a stock number pulled.

Why a dedicated MCP server beats ad hoc API calls

The tempting shortcut is having Claude call the Cin7 or Unleashed REST API directly with a generic HTTP tool, and that works for a single question, but it breaks down fast once more than one person in the business is asking Claude inventory questions regularly, because every request has to re-explain the same authentication, the same endpoint quirks, and the same field mappings from scratch. An MCP server wraps that complexity once, behind a small, well-named set of tools, so every future Claude session gets consistent, correctly-scoped access without re-deriving how the API actually behaves.

  • get_stock_level(sku): current on-hand and committed stock, correctly netted against open sales orders

  • search_products(query): fuzzy product search across SKU, name, and supplier code

  • get_low_stock(threshold): products below a reorder point, the single most-used tool in practice

  • get_supplier_lead_time(supplier_id): pulled from historical PO data, not just the static supplier record

The field-mapping work that actually takes the time

Both platforms also handle multi-warehouse and multi-location stock differently, and a business running more than one warehouse needs the MCP server's tools to accept a location parameter from the start, rather than bolting it on later once a Cowork query returns a combined figure nobody can actually use to decide which warehouse to ship from.

Neither Cin7 nor Unleashed exposes a perfectly clean "available stock" figure out of the box; both split it across on-hand, allocated, and in-transit fields that need combining correctly for the number to mean what a business owner actually wants when they ask "how much of this do we have." Getting that netting logic right, and writing a short test suite that checks it against a handful of known SKUs before trusting it, is genuinely most of the build effort, not the API authentication, which is comparatively mechanical.

A Brisbane homewares wholesaler running Unleashed had been manually cross-checking stock levels against a spreadsheet every morning because the raw Unleashed on-hand figure didn't account for allocated stock against unfulfilled orders, and staff had learned not to trust it at face value. Building the MCP server with the netting logic correctly applied turned that fifteen-minute daily manual check into a Claude Cowork query answered in seconds, and the owner estimated it recovered close to $8,000 a year in staff time once you counted the mistaken orders the manual process had occasionally missed.

Choosing between Cin7 and Unleashed for the build

The two platforms' APIs differ enough in structure, Cin7's is broader but more verbose, Unleashed's is narrower and more consistently documented, that a server built for one won't transfer directly to the other; budget for a genuinely separate build rather than a quick port if your business runs one platform now and might switch later, since the two APIs share almost nothing structurally once you get past basic authentication and pagination.

Both vendors do version their APIs and occasionally deprecate fields without much warning, which is worth planning for from the start rather than discovering the hard way. Building a thin adapter layer inside the MCP server, so the tool definitions Claude sees stay stable even if the underlying API call has to change, saves a painful rebuild later when Cin7 or Unleashed ships a breaking change to a field your server depends on.

Handling API rate limits during a full stock sync

Both platforms rate-limit their APIs tightly enough that a naive full-catalogue sync, pulling every SKU's stock level in one pass, will hit those limits on any catalogue past a few hundred products. The working pattern batches requests with a short delay between calls and caches results for a few minutes rather than hitting the live API on every single Claude query, which keeps normal usage well within limits while still surfacing genuinely current numbers for the questions that matter, like a low-stock check ahead of a big order.

What this isn't

This is a developer-facing build guide for the MCP server itself, distinct from a business-workflow piece on using inventory data day to day; if you're looking for the latter, the practical automations this server unlocks, reorder alerts and stock-aware quoting, are worth a separate conversation once the server itself is running.

Automata AI builds Cin7 and Unleashed MCP servers for Australian wholesalers and retailers who've outgrown ad hoc API scripts. Reach out via /contact with your platform, your rough SKU count, and whichever stock-level discrepancy has caused the most grief lately, and we'll scope the netting logic your specific catalogue needs against it.

Ready to move from AI pilot to production?

We help mid-market Australian businesses deploy AI automations that actually reach production and deliver measurable ROI.