Skip to main content

Fabrikatör MCP — Run your inventory in plain language

Connect your AI assistant — Claude, ChatGPT, Gemini, Cursor, Codex, or Copilot — directly to your Fabrikatör account. Ask "What do I need to reorder this week?" and have it draft, edit, approve, and receive purchase orders for you — all in a conversation.

Written by Adrian

The Fabrikatör MCP server connects over the Model Context Protocol (MCP) using a single remote URL. Reads (stockouts, PO lists, supplier and warehouse lookups) run freely. Anything that changes your data — creating, editing, approving, receiving, reverting, or reassigning suppliers — is always summarised and confirmed with you before it happens.


What it can do

The server exposes eleven tools. Your assistant picks the right ones automatically — you just describe the outcome you want.

Forecast & reorder intelligence

Tool

What it does

list_stockouts

Lists products forecast to run out, ranked by urgency — with days of stock left, suggested restock quantity, and 30-day potential lost revenue. Mirrors the Replenishment view in the app.

list_suppliers

Lists every supplier on your account, so the assistant can scope reorders or reassignments to the right vendor.

list_locations

Lists your active warehouses and addresses — used to confirm where each PO should ship before anything is created.

Purchase orders — create & manage

Tool

What it does

create_purchase_orders

Turns a list of products and quantities into draft purchase orders — one per supplier, automatically. Pairs with stockouts for “reorder everything that’s low”.

update_purchase_order

Edits an existing order — quantities, due dates, freight method, tracking code, supplier, or adding and removing line items.

approve_purchase_order

Moves a draft PO to Approved — the gate that unlocks receiving. Only ever fires on your explicit go-ahead.

list_purchase_orders

Browse and filter every PO by status, supplier, or due date — Draft, Approved, Received, and so on.

get_purchase_order

Returns the full detail of a single order: line items, receiving progress (ordered / accepted / outstanding), and receive history.

Receiving & suppliers

Tool

What it does

receive_purchase_order

Books inbound inventory against a PO — accept all, or set per-line accepted/rejected. Supports partial and over-receipts, with an optional push to Shopify inventory.

revert_receive_purchase_order

Rolls back a specific receive entry if something was booked in error. Destructive — always confirmed line-by-line.

update_product_suppliers

Bulk-sets primary or alternative suppliers across products by SKU, title, or ID — up to 500 rows at once.


Connection details

The server uses the Model Context Protocol over a remote HTTP endpoint (stateless Streamable HTTP transport), authenticated via OAuth 2.1 with your existing Fabrikatör (Shopify) account.

  • Server URL: https://api.fabrikator.io/mcp

  • Authentication: OAuth — the Fabrikatör authorization page opens the first time a client connects.

  • Scopes: replenishment:read, purchase_orders:read, purchase_orders:write, warehouses:read, products:write, suppliers:read

The first time any client connects, a browser tab opens asking you to sign in with the Shopify store linked to your Fabrikatör account and approve the requested scopes. After that, the client stores the access token and reconnects automatically.


Connect your assistant

Every client points at the same remote URL — https://api.fabrikator.io/mcp. Pick yours below.

Claude Desktop

  1. Open Claude Desktop and go to Customize → Connectors.

  2. Click Add custom connector.

  3. Set Name to Fabrikatör and URL to https://api.fabrikator.io/mcp.

  4. Click Add — the Fabrikatör authorization page opens; sign in and approve access.

  5. Back in Claude, the Fabrikatör tools are available in any new chat.

Tip: after adding a connector, fully quit and relaunch Claude Desktop so the new tools register.

Claude Code

  1. Run the command below in your terminal.

  2. Start Claude Code and run /mcp — you’ll be prompted to authenticate in your browser.

  3. After sign-in, all Fabrikatör tools become available.

claude mcp add --transport http fabrikator https://api.fabrikator.io/mcp

ChatGPT (Web)

This is chatgpt.com in the browser — different from the Codex CLI below. Custom connectors need a paid plan (Plus, Pro, Business, Enterprise, or Edu); the Free plan can’t add them. On Business / Enterprise, a workspace admin must first enable Developer mode under Settings → Permissions & Roles.

  1. Open Settings → Apps & Connectors → Advanced settings and toggle Developer mode on.

  2. Confirm the warning — custom connectors aren’t verified by OpenAI.

  3. Click Create app (shown as Add custom connector on some plans).

  4. Set Name to Fabrikatör, MCP Server URL to https://api.fabrikator.io/mcp, and Authentication to OAuth; confirm “I trust this application”.

  5. A popup opens to the Fabrikatör authorization page — sign in and approve access.

  6. In a new chat, switch on the Developer mode tool in the composer. Ask it to use the Fabrikatör tools explicitly until it learns when to.

Naming note: OpenAI renamed “connectors” to “apps” in late 2025 — you’ll see one label or the other depending on your version, but the steps are the same.

ChatGPT (Desktop app)

The desktop app shares your ChatGPT account-level apps / connectors. If you already added Fabrikatör on the web, it’s already here — nothing else to do. To add it from the app:

  1. Open the ChatGPT desktop app and go to Settings.

  2. Open Apps / Connectors (turn on Developer mode under Advanced settings if you don’t see custom connectors).

  3. Add the MCP server URL https://api.fabrikator.io/mcp.

  4. Complete the OAuth sign-in on the Fabrikatör authorization page.

The same paid-plan requirement as ChatGPT Web applies.

Codex CLI (OpenAI)

OpenAI’s command-line coding agent — separate from the ChatGPT app.

  1. Run the command below to add the server.

  2. Verify it registered with codex mcp list.

  3. If OAuth is required, Codex opens a browser to authorize; after login it stores credentials locally.

codex mcp add fabrikator --url https://api.fabrikator.io/mcp

Alternative: to configure it by hand, edit ~/.codex/config.toml and add:

[mcp_servers.fabrikator] command = "npx" args = ["-y", "mcp-remote", "https://api.fabrikator.io/mcp"]

Cursor

  1. Open Cursor → Settings → MCP & Integrations → New MCP Server.

  2. Cursor opens ~/.cursor/mcp.json. Add the entry below.

  3. Save — Cursor reloads and opens a browser tab for OAuth sign-in.

{   "mcpServers": {     "fabrikator": {       "url": "https://api.fabrikator.io/mcp"     }   } }

Want it for one project only? Drop the same file at .cursor/mcp.json in your project root.

Visual Studio Code (GitHub Copilot)

  1. Create or edit .vscode/mcp.json in your workspace (or User Settings for a global install).

  2. Add the configuration below.

  3. Reload the window, open Copilot Chat in Agent mode, click the tools icon, and sign in when prompted.

{   "servers": {     "fabrikator": {       "type": "http",       "url": "https://api.fabrikator.io/mcp"     }   } }

Gemini CLI

  1. Edit ~/.gemini/settings.json and add the block below.

  2. Restart the Gemini CLI and authenticate in your browser when prompted.

{   "mcpServers": {     "fabrikator": {       "httpUrl": "https://api.fabrikator.io/mcp"     }   } }

Other clients

Any MCP client that supports remote servers over HTTP can connect by pointing at https://api.fabrikator.io/mcp. Clients that only speak stdio can bridge to it with mcp-remote:

npx mcp-remote https://api.fabrikator.io/mcp

What you can ask

Talk in plain language — the assistant maps it to the right tools. Tweak the SKUs, suppliers, and PO numbers to match your store.

Reviewing what needs to be reordered

  • What should I reorder this week?

  • Show me my 10 most urgent stockouts, ranked by days until stockout.

  • Which out-of-stock SKUs are losing me the most revenue over the next 30 days?

  • Forecast my stockouts over the next 60 days.

  • Which products from supplier Hydrogen Vendor are about to run out?

Creating purchase orders

  • Draft purchase orders for everything that’s running low this week.

  • Create a PO for 200 units of SKU ABC-123 and 150 units of SKU XYZ-987.

  • From my top urgent stockouts, draft POs for the Hydrogen Vendor supplier only.

  • Draft a PO due in 30 days for my 5 most at-risk products, shipping to my Berlin warehouse.

Looking up purchase orders

  • Show me all purchase orders that are In Progress.

  • What’s the status of PO#42?

  • List the line items on PO#17 and how many have been received.

  • Which POs are due in the next two weeks?

Editing a purchase order

  • On PO#42, increase the quantity of SKU ABC-123 to 500.

  • Change the estimated arrival of PO#17 to next Friday.

  • Add tracking code 1Z999AA10123456784 to PO#42.

  • Remove line item 3 from PO#42, then approve it.

Receiving stock

  • Receive all outstanding units on PO#42 and push the stock to Shopify.

  • On PO#17, mark 8 of the 10 ordered units as received and reject 2 as damaged.

  • My warehouse already updated Shopify — receive PO#42 without pushing inventory again.

  • Undo the last receive on PO#42 — it was booked by mistake.

Suppliers

  • List all my suppliers.

  • Set Hydrogen Vendor as the primary supplier for SKUs ABC-123 and XYZ-987.

  • Add Acme Imports as an alternative supplier for product SKU ABC-123.

Warehouses

  • List my active locations.

  • What’s the address of my Istanbul warehouse?


Power workflows

Where it really earns its keep: chained, end-to-end jobs you’d normally click through screen by screen. Just describe the goal — the assistant runs the steps and pauses for your OK before any write.

The Monday reorder run

From “what’s low?” to approved POs in one conversation:

  1. “What’s about to stock out, and what’s it costing me?” — you get a ranked list of at-risk products, days of cover left, and the revenue you’d lose if each runs dry.

  2. “Draft purchase orders for everything urgent.” — items are grouped by supplier into one draft order each, and you’re asked which warehouse to ship to.

  3. “Bump the hydration bottles to 500 and push delivery to the 20th.” — the draft is edited in place before anything is committed.

  4. “Looks good — approve them.” — the orders move to Approved, only after your explicit go-ahead.

Result: a full week of replenishment handled in one chat, with you signing off on every number.

A shipment lands at the dock

Book what arrived, flag what didn’t:

  1. “The order for PO#42 just arrived.” — you see ordered vs. still-outstanding for every line.

  2. “Everything came except 2 broken bottles.” — good units are accepted and the damaged ones rejected; the rest stays open as partially received.

  3. “Mark it received and update my stock.” — inventory is booked and, with your OK, pushed live to your store.

  4. “Wait, that was the wrong PO — undo it.” — the exact receipt is rolled back cleanly.

Result: stock that’s accurate the moment goods hit the shelf — mistakes included.

Supplier spring-clean

Fix who supplies what, in bulk:

  1. “Who are my suppliers?” — a clean list of every vendor on your account.

  2. “Move all my ‘Bottles’ products to Hydrogen Vendor as primary.” — hundreds of products reassigned in a single step.

  3. “Keep the old vendor as a backup.” — re-applied as an alternative supplier, so nothing is lost.

Result: tidy supplier mapping, so future reorders land on the right vendor automatically.

Automations — set it once, run it every week

Save a standing instruction so a routine runs the same way every time. If your assistant supports scheduled tasks, it can fire on its own (say, every Monday morning); otherwise keep it as a one-tap saved prompt. Either way it only ever drafts — nothing is approved or ordered without you.

Example: “Every Monday morning, check what’s about to stock out, draft purchase orders for everything urgent — one per supplier, shipping to my Berlin warehouse — and list them for me to approve.”

Variations:

  • Every Monday, draft a PO for everything running low from Hydrogen Vendor only.

  • On the 1st of each month, draft POs for my top 10 at-risk products.

  • Every Friday, draft reorders for anything with less than 14 days of stock left.

  • Each Monday, only draft POs over $500 — skip the small ones.

Always safe to schedule: the routine stops at draft POs. You still review and approve every order before it’s placed.

Better together — pair Fabrikatör with your other apps

Fabrikatör first. Stock levels, forecasts, suppliers, and purchase orders all come from Fabrikatör itself. Your assistant only reaches for another app for the part that lives outside Fabrikatör — sending a message, writing an email, filling a spreadsheet, adding a calendar reminder.

  • Monday digest to the team (Fabrikatör + Slack): “Summarise my 5 most urgent stockouts and post it to #operations every Monday.”

  • Hand finance the numbers (Fabrikatör + Google Sheets): “List this week’s draft POs with totals per supplier and drop them into a spreadsheet for finance.”

  • Never miss a delivery date (Fabrikatör + Google Calendar): “Which POs are due in the next two weeks? Add a reminder two days before each one.”


Good to know & troubleshooting

How does it keep my data safe?

Reads (stockouts, PO lists, supplier and warehouse lookups) run freely. Anything that changes your data — creating, editing, approving, receiving, reverting, or reassigning suppliers — is always summarised and confirmed with you before it fires. Receiving and reverting additionally ask whether to push the change to Shopify inventory.

The browser tab never opens, or sign-in loops.

Allow pop-ups for app.fabrikator.io. If the loop continues, sign out of Fabrikatör in your browser and retry — the OAuth flow needs a fresh session to bind to your company.

My assistant says “tool not found” or doesn’t see Fabrikatör.

Restart the client after editing its config file. For Claude Desktop and Cursor, a full quit-and-relaunch is required before a new MCP server appears.

I have multiple Shopify stores under one account.

During sign-in you’ll pick which company to grant access to. Each access token is bound to a single company — re-run the OAuth flow to switch stores.

Why was a PO split into several orders?

A purchase order can only target one supplier. When you ask to reorder a mixed basket, the assistant creates one draft PO per supplier automatically.

I want to revoke access.

There’s nothing to do in Fabrikatör — removing the connection in your AI assistant is all it takes. Do it in the same place you set it up:

  • Claude Desktop — Customize → Connectors → remove Fabrikatör.

  • ChatGPT (Web or App) — Settings → Apps & Connectors → delete the Fabrikatör connector. It’s one account-level connector, so removing it in either place clears it from both.

  • Claude Code — run claude mcp remove fabrikator.

  • Codex CLI — run codex mcp remove fabrikator (or delete the block from ~/.codex/config.toml if you set it up by hand).

  • Cursor — delete the fabrikator entry from ~/.cursor/mcp.json.

  • VS Code · Copilot — delete the fabrikator entry from .vscode/mcp.json (or User Settings).

  • Gemini CLI — delete the fabrikator entry from ~/.gemini/settings.json.

  • Any other assistant — remove the server entry from its MCP config.

Once removed, that assistant can no longer reach your Fabrikatör data. To reconnect later, set it up again and sign in.

Did this answer your question?