SKU.io

Inventory, orders and purchasing for multi-channel e-commerce businesses. Remote, OAuth; draft orders and edits only when the user allows.

Hosted MCP Server

npx add-mcp 'https://mcp.sku.io/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

SKU.io speaks the Model Context Protocol (MCP), so an AI assistant can work in your account while you chat with it. It can look up products, stock, sales orders and purchase orders, and, if you allow it when you connect, create draft sales orders and purchase orders, adjust inventory and more. Every call it makes is listed on the Activity tab, and an admin can switch assistants off for the whole account.

There are two ways to connect:

Your assistantHow it connectsSection
Claude, ChatGPT or Cursor, on the web, desktop or phoneAdd the connector URL, then sign in to SKU.io and choose what the assistant may do. No token.Steps
Claude Code, a Claude Desktop config file, or a client that can't sign in with a browserPaste a config that carries a connection token. A token can look things up only.Connect with a token

Before you begin

  • The assistant sees only what your role can see, and it can change only what your role can change.
  • Your Claude or ChatGPT plan has to allow custom connectors. On a team or enterprise plan, an owner may need to add the connector for everyone.
  • An admin can switch assistants off, or keep them to looking things up, on the Settings tab.
  • The screenshots come from a demonstration account with sample activity.

Steps

  1. Go to Settings → Developer → MCP Server. The page opens on the Connect tab.
  2. Click Copy URL to copy the connector URL, https://mcp.sku.io/mcp. Every account uses this same address; you pick your account when you sign in. The Connect tab: the connector URL with a Copy URL button, Add to Claude, Add to ChatGPT and Add to Cursor buttons, and the steps for Claude below them
  3. Add the connector in your assistant. Click the button for your app to see its steps under the buttons:
    • Add to Claude copies the URL and opens Claude's connector settings in a new tab. Choose Add custom connector, paste the URL, click Add, then click Connect.
      • Add to ChatGPT copies the URL and opens ChatGPT's settings in a new tab. Add a custom connector there with the URL, and leave its sign-in set to OAuth.
      • Add to Cursor opens Cursor, which offers to install the SKU.io server. Click Install, then Connect.
  4. Sign in to SKU.io when your assistant sends you there, and check the request:
    • You will be sent back to names the app you started from, such as claude.ai or chatgpt.com. If it names anything else, click Cancel.
      • Account is the SKU.io account the assistant will work in. If you belong to more than one, choose it from the list; Approve stays greyed out until you do. The SKU.io sign-in page: Claude wants to connect to SKU.io, the account, View data switched on, Allow changes with its areas, and Cancel and Approve buttons
  5. Choose what the assistant may do. View data is always on. To let it create and update records, turn on Allow changes, then untick any area it shouldn't change: Orders, Purchasing, Inventory, Products, Accounting or Settings & automations. An area is greyed out, with the reason beside it, when your role can't edit it. Allow changes itself is greyed out when an admin has turned changes off.
  6. Click Approve. You're sent back to your assistant.
  7. Ask your assistant something about your account, such as "How much stock of the 750 ml water bottle do we have, and is more on order?" It looks it up and links each record back to its page in SKU.io.

The connection stays signed in. Your assistant renews it in the background, so you don't approve it again each day. Connecting the same app again later reuses the access you approved; to change it, revoke the app first, then connect again.

What an assistant can do

WithThe assistant can
View data (always)Search products, check stock per warehouse with units on order, look up sales orders and purchase orders, list warehouses, and find products at risk of running out
OrdersCreate sales orders, always as drafts. A draft isn't fulfilled until you click Approve order on it in SKU.io
PurchasingCreate purchase orders, always as drafts; submit a purchase order to its supplier; and record purchase invoices
InventoryMake inventory adjustments
ProductsCreate products and update their prices
AccountingRecord vendor credits
Settings & automationsSave views on your lists and draft workflows. A drafted workflow isn't published

Beyond these, an assistant can look up most other records in SKU.io with View data. Its changes are limited to a fixed set of actions SKU.io has reviewed for assistants, such as adding a note to a sales order or creating a quote, and each still needs the matching Allow changes area. Anything outside that set is refused, even with every area ticked.

Some things it can never do, whatever you approve:

  • Delete or void anything. SKU.io refuses those requests.
  • Manage users, roles, billing or tokens, or change the logins of your connected integrations.

Two things make changes safer:

  • Dry runs. An assistant can check a change first, and SKU.io tells it what would happen without saving anything. The call shows as Dry run on the Activity tab.
  • Safe retries. If an assistant sends the same request twice, for example after a dropped connection, SKU.io returns the first result instead of creating a second record. The repeat shows as Replayed.

See what assistants did

Open the Activity tab. It lists every call an assistant made in this account, newest first.

The Activity tab: a list of calls with ID, Time, User, App, Tool, Kind, Endpoint, Result, Duration and Record columns, and Tool, Result, Kind, User, App and Date filters

ColumnWhat it shows
AppThe assistant that made the call, such as Claude or ChatGPT. Calls made with a connection token show Connection token
ToolWhat the assistant asked for. A Dry run or Replayed badge sits beside it when that applies
KindRead for a look-up, Write for a change
EndpointThe SKU.io address a change went to
ResultSuccess; Error when SKU.io couldn't do it, for example because a field was missing; Denied when the request wasn't allowed
RecordOpen links to the record the call created or changed

Use the search box and the Tool, Result, Kind, User, App and Date filters to narrow the list. Calls are kept for 180 days.

Open a call

Click a call's ID to see its details: who made it, from which app, the address it went to, a link to the record, and the arguments the assistant sent. Passwords, tokens, keys and card details are stored as [redacted].

A call's details: the app, tool, endpoint, duration, idempotency key, an Open record link and the arguments it sent

When the assistant sent an Idempotency key, it's shown too: a repeat of the same request with that key is replayed instead of run twice.

A call that failed or was refused also shows why, in the words the assistant was given. Not allowed marks a refusal, such as a change in an area the connection wasn't approved for; Failed marks a request SKU.io couldn't complete.

A refused call: Not allowed, with the reason that the connection can't change inventory and how to reconnect with that area ticked

Revoke an app

Right-click a call and choose Revoke app access to cut off the app that made it. You can revoke only apps you connected yourself; for anyone else's, the option is greyed out. If you use two-factor authentication, you verify first. Revoking stops the app reaching the account straight away. You can also revoke an app from Settings → Developer → Connected Apps. Removing the connector inside Claude or ChatGPT alone leaves SKU.io's approval in place, so revoke it here as well.

Turn assistants off or keep them read-only

Admins control access for the whole account on the Settings tab.

The Settings tab: Allow AI assistants and Allow AI assistants to make changes switches, both on

  • Allow AI assistants — when off, every assistant connected to this account stops working until you turn it back on. Connections aren't deleted.
  • Allow AI assistants to make changes — when off, assistants can still look things up but can't create or change anything, even on connections approved for changes. The sign-in page then greys out Allow changes.

Both are on by default. Only users who can change settings can switch them; for everyone else they're greyed out.

Connect with a token

Claude Code, a Claude Desktop config file and some other clients can't sign in with a browser. They connect to your account's own address with a connection token instead.

  • A connection token can look things up only. To let an assistant make changes, connect it with the connector URL in the Steps and turn on Allow changes.
  • You get one connection token. Generating another replaces the first, so every client you set up this way shares it.
  • The token is shown once, when you create it. Have the client's config file open, or somewhere safe to paste it.
  1. On the Connect tab, open Advanced: per-account URL and token for Claude Code or Claude Desktop. It shows your account's own address, such as https://yourcompany.sku.io/mcp/sku. The Advanced panel: the per-account address and a Generate Connection Token button
  2. Click Generate Connection Token. SKU.io asks for your password first, and for your two-factor code if you use one. SKU.io emails you whenever a token is created on your account.
  3. In the Connection ready — copy your config now dialog, pick your client from the tabs and copy its snippet with the Copy button. The Connection ready dialog with a warning that the token is shown only once, client tabs, and the Cursor config
    • Cursor: merge the snippet into ~/.cursor/mcp.json, or .cursor/mcp.json inside a project.
      • Claude Desktop: merge the snippet into claude_desktop_config.json, then quit and relaunch Claude Desktop. It needs npx on your machine.
      • Claude Code: run the one-line command in your terminal, then confirm with claude mcp list.
      • Other (Raw): the address and the Authorization header every MCP client needs.
  4. Tick I've copied the config I need and stored my token safely, then click Done.

The panel then shows the token's name, when it was created and last used, and Regenerate and Disconnect buttons. Last used is the quickest way to confirm your client reached SKU.io: ask it something, reload the page, and the value moves. The token doesn't expire, so Disconnect is the control that matters: it revokes the token straight away. Regenerate revokes it and issues a new one; every client holding the old token stops working until you paste the new config.

A connection token reaches the AI connection only. Sent to SKU.io's regular API, it is refused, so a config file that leaks doesn't become a general API key. It doesn't appear in your personal access tokens and doesn't use one of their slots.

Next steps

To connect an AI assistant, open Settings, then Developer, then MCP Server. From here, Claude, ChatGPT or Cursor can look up your stock and orders, and, if you let them, make changes to your records. Every account uses the same address. Click Copy URL, then add it to your assistant as a custom connector. The steps for Claude, ChatGPT and Cursor are right below. When you connect, the assistant opens a SKU sign-in page. Check the account it will use. View data is always included. To let the assistant create records, turn on Allow changes. Untick any area it shouldn't change. Finally, click Approve to grant the access. Back in SKU, the Activity tab lists every call an assistant made. Each row shows the app, the tool, and whether it read or changed something. Success, Error and Denied give the result. Dry run marks a check that changed nothing. To see one call in full, click its ID, and its details open on the right. You see where it went, a link to the record it created, and the arguments it sent, with passwords and tokens hidden. On the Settings tab, admins control access for the whole account. The first switch turns every connection off at once. The second keeps them read-only, so they can look things up but never change a record.