User guide

SupliiChain: Operator Manual

Everything you need to connect, run your first audit, wire up live store data, and understand what the gateway hands back. No dashboard required.

Quick start

Three steps, three minutes.

01

Get a token

Free tier: enter your email on the homepage. A token is issued instantly, no waiting. Workshop tier: your token is issued automatically right after checkout. Either way you land on a success page showing your connection details.

02

Connect your MCP client

Pick whichever you use. The same token works everywhere. See the exact commands below.

03

Say "get started with DPX"

That alone triggers a built-in onboarding tool that reports your progress, earns badges as you try more tools, and suggests what to run next. From there, paste one of the master prompts below and Claude calls the tools your tier unlocks and hands back a markdown risk matrix.

The two surfaces

Chat is one way in. It is not the only one.

SupliiChain has two first-class surfaces, and they are good at different things. Most people start in Copilot and never realise the Console exists — which is a shame, because three things live only there.

Copilot — conversational

Ask a question in plain language; it picks the tools, calls them in sequence, and explains the result. Best for open-ended analysis ("why did Tulsa's OEE drop last week?") and for anything where you don't already know which tool you need. Every figure is attributed to the tool that produced it, and tagged live or demo.

Console — direct

A form per tool: fill the parameters, run it, read the raw response. Best when you know exactly what you want, when you want the unrounded numbers, or when you're building a prompt and need to see a tool's real output shape first. No tokens spent on inference.

Only in the Console

FeatureWhat it doesWho can use it
Scenario modelingOverride inputs (lead times, velocity, capacity) and re-run against the changed assumptions without touching your real data.Owner, director
Seat managementInvite, relabel and revoke seats; set each one's role and facility scope.Owner, director
Activity feedA real timestamped log of every tool call on the account — which tool, which seat, live or demo, errored or not.Owner, director

Find it under Governance → Console in the sidebar. It used to be labelled "Run a tool directly" and styled as a secondary link, which led people to assume it was being retired — it isn't, and the three features above have no other home.

Verticals

One protocol, four operating pictures.

The same tier-gated MCP tool layer, Copilot, and honesty conventions (dataSource/dataSourceNote on every response) power every vertical below. Each has its own tools and single-pane dashboard — your token unlocks the full tier you're on across all of them.

E-commerce / DTC demand planning

Stock, velocity, forecasting, ABC/XYZ, dead stock, safety stock, marketing correlation.

Command center

Agriculture / biosolutions

S&OP reconciliation, plant capacity & OEE, distributor scorecards, seasonal working capital, real USDA crop-progress signals.

Command center

Disaster preparedness (DTC)

Regional surge readiness against real hurricane/wildfire/winter-storm season windows, live weather signals.

Command center

Automotive aftermarket

Cold-snap battery-failure risk from live weather, core-charge return tracking.

Command center

Agriculture, disaster-preparedness, and automotive tool responses are labeled synthetic/illustrative starter data unless a real live signal is available for that specific field (e.g. real weather, real USDA crop-progress data) — the same live/synthetic disclosure convention as every other tool here.

Shop floor & manager reporting

Operator entries, in — trend lines, out.

Two lightweight pages sit on top of every manufacturing/plant vertical (agriculture today; disaster-prep and automotive read the same log once a customer runs plants in those verticals too). Neither needs the MCP client installed — just a seat or owner token in the URL.

/shift — log a checkpoint

A logged-in seat is routed straight to its own plant — no picker, no typing a location ID. Every submit appends to an operator log (multiple checkpoints per shift, never overwritten) and updates the current-state numbers every other tool reads.

Open /shift

/trends — manager rollups

The same operator log, bucketed hourly, daily, weekly, monthly, or annually, with a trend line and a first-vs-last analysis (% change, direction, reading count) per plant/SKU metric.

Open /trends

Loading a whole facility's history at once instead of typing it in? Use /setup for a bulk CSV import.

Identity & access

Six kinds of scope, one mental model.

"Scope" comes up in six different, unrelated-sounding places in this product. Knowing which one is in play — and which one actually governs the thing you're confused about — is the single fastest way to stop guessing and start using SupliiChain like someone who's done this before. Every scope below is enforced by the server, not just hidden in a UI — asking for something outside your scope returns a clear rejection or an empty result, never a leak.

ScopeWhat it actually controlsWho sets itLearn more
OrgThe hard tenant wall. Your token belongs to exactly one org; you can never see another org's data, full stop.Fixed at signup—
TierWhich tools exist for you at all. Copilot Only, the 30-Day Diagnostic and Operator all grant the same tool set — only Enterprise adds cross-node execution. What changes between them is how much of the work an operator does with you, not the software.Your planPlaybooks
RoleWhich actions a seat can take — executive / director / operator / analyst. Write tools (draft a PO, reallocate inventory) are owner-only regardless of role or tier.Whoever created your seatBelow
FacilityWhich data a seat can see — one vertical, specific plant/location IDs. The "hard ceiling" — an out-of-scope request is rejected or comes back empty, never leaked.Whoever created your seatShop floor
PortfolioA deliberate, narrow exception: an owner can roll up read-only KPI summaries across several of their own orgs. Never grants write access, never auto-includes a company — each one joins with its own token.Portfolio owner/portfolio
Data sourceOrthogonal to all the above: is this specific number real (live) or an illustrative demo (synthetic)? Every tool response is tagged, every time.Whether you've connected a real sourceLive data

By role — what you actually see

Account owner

Full nav, every vertical, every tool your tier unlocks. In the sidebar, nothing is dimmed. You're the only identity that can create/revoke seats, manage a Portfolio rollup, load bulk data via /setup, or manage store connections.

Executive seat

Unscoped read visibility — rollups, financials, exception digests. Sits outside the operational chain: no seat management, no writes. A board or PE overseer, not a more-powerful director.

Director seat

Full read access within their facility scope, plus scenario modeling — and the only seat role that can invite, relabel or revoke other seats. Sidebar shows Data import, Portfolio, and Connections dimmed with a lock icon: visible so you know they exist, not something your role can act on.

Operator seat

Routed straight to their own plant on /shift — no picker, nothing to configure. Logs checkpoints, reads their own facility's /trends. The same three items are dimmed as above.

Analyst seat

Read-only across their facility scope — dashboards and /trends, no /shift submissions, no write tools. Usually paired with the external + time-boxed flags for an outside consultant or auditor. Same dimmed nav items as director/operator.

"External" and "time-boxed" are not roles. They're flags layered on top of whichever role a seat holds — an outside consultant is usually analyst + external + expiring, not a fifth permission tier.

Your own role/facility scope and org name are always shown at the bottom of the sidebar under your token — if you're ever unsure which identity you're looking at, that's the fastest place to check.

Connecting

Claude Code / Cursor / Windsurf / VS Code

These all read the same underlying MCP config, so one command covers all of them:

claude mcp add --transport http dpx https://dpx-mcp.vercel.app/api/mcp \
  --header "Authorization: Bearer <your-token>"

claude mcp list   # confirm it shows "Connected"

Claude Desktop

Add this to claude_desktop_config.json (Windows: %APPDATA%\Claude\claude_desktop_config.json), then restart:

{
  "mcpServers": {
    "dpx": {
      "type": "http",
      "url": "https://dpx-mcp.vercel.app/api/mcp",
      "headers": { "Authorization": "Bearer <your-token>" }
    }
  }
}

Look for the plug/tools icon in the chat bar to confirm SupliiChain's tools loaded.

Older Claude Desktop builds

"type": "http" only works on recent Claude Desktop versions. If the tools don't appear after a restart, your build may only speak stdio — use this mcp-remote bridge config instead (requires Node.js installed):

{
  "mcpServers": {
    "dpx": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://dpx-mcp.vercel.app/api/mcp",
               "--header", "Authorization: Bearer <your-token>"]
    }
  }
}

After any config change: fully quit Claude Desktop from the system tray (not just the window), reopen, and check for the plug icon. Still stuck? The logs live in %APPDATA%\Claude\logs\mcp*.log (Windows) or ~/Library/Logs/Claude/mcp*.log (Mac).

Any other MCP client

SupliiChain runs a standard MCP server over Streamable HTTP, not a Claude-only integration. Any client that speaks MCP connects the same way: point it at the URL below with your token as a Bearer header. That includes OpenAI's MCP tool connector today, and Gemini, Grok, Perplexity, or anything else as each platform adds MCP client support, since it's an open, published protocol.

Server URL:  https://dpx-mcp.vercel.app/api/mcp
Transport:   Streamable HTTP
Auth header: Authorization: Bearer <your-token>

Check your specific client's docs for the exact config syntax; this URL/header pair is all any of them need.

Master playbooks

Edit the variables, add your own ask, copy, run.

Every playbook below is a real template: adjust the numbers to your business, fold in a custom request, and Claude runs the whole chain autonomously, calling every tool in sequence without stopping to ask permission between steps.

You'll see 4 starter workflows here, not 47. "The 47-Point Predictor" is the name of Playbook 1 specifically, named for the depth of its diagnostic, dozens of checks across ABC/XYZ classification, forecasting, lead-time variance, safety stock, and dead stock, layered with the 47-signal external demand model (economic indicators, weather, competitor pricing, social sentiment, seasonality). It's one deep workflow, not 47 separate prompts to run.

Playbook 1: The 47-Point Inventory Predictor & Stockout Shield

Requires Workshop tier. Run it every Monday morning.

Work through this autonomously: call each tool in sequence without stopping to ask permission between steps. Only pause once, at the end, to present the results.

Execute a comprehensive supply chain diagnostic across our active SKU catalog:
1. Call run_abc_xyz_classification (lookbackDays: 90) to find our high-margin revenue drivers.
2. For all 'A' class SKUs, call run_time_series_forecast with modelType "AutoML_Ensemble", horizonDays 90.
3. Call calculate_forecast_error (metric "WMAPE", historicalPeriodDays 90) to validate confidence.
4. Call get_purchase_orders and calculate_lead_time_variance for the relevant supplier IDs.
5. Call calculate_safety_stock_drift (serviceLevelTarget 0.95) for the same SKUs.
6. Call identify_dead_stock (daysOfSupplyThreshold: 180).
Output a single "Operational Risk Matrix" table: SKU | Class | Stockout ETA | Safety Stock Drift | Trapped Capital ($) | Recommended Action.

Playbook 2: Autonomous Reorder & Draft PO Generation

Requires Pro/Workshop tier (drafting). Run bi-weekly or when a stockout alert fires.

Work through this autonomously: call each tool in sequence without stopping to ask permission between steps. Only pause once, at the end, to present the results.

Using today's safety stock drift results, for every SKU with a negative drift:
1. Calculate the deficit needed to reach 95% service level over the supplier's actual lead time.
2. Call draft_purchase_order with dryRun: true for the matching supplier.
Present line items, unit costs, and arrival windows for my review before I ask you to submit anything live.

Playbook 3: Marketing-Driven Demand Correlation

Requires Workshop tier. Run whenever ad spend shifts materially.

Work through this autonomously: call each tool in sequence without stopping to ask permission between steps. Only pause once, at the end, to present the results.

Run a marketing-to-demand correlation check:
1. Call get_marketing_performance (lookbackDays: 30) across all channels.
2. Call calculate_demand_elasticity for our top 2 SKUs by revenue, independentVariable "ad_spend".
3. Call run_time_series_forecast with modelType "AutoML_Ensemble", horizonDays 30, includePromotions: true
   for the same SKUs, to see whether current spend trajectory is already priced into the forecast.
Render a Mermaid bar chart of spend vs. revenueAttributed by channel, then a markdown table with columns:
Channel | Spend | ROAS | CAC | Elasticity Read | Recommendation. Close with one paragraph: which channel
is under-invested relative to its demand lift, and which is past the point of diminishing returns.

Playbook 4: Executive P&L Snapshot

Requires Workshop tier. A board-ready summary in one prompt.

Work through this autonomously: call each tool in sequence without stopping to ask permission between steps. Only pause once, at the end, to present the results.

Build a board-ready P&L snapshot:
1. Call calculate_pnl_impact_summary (stockoutHorizonDays: 30, daysOfSupplyThreshold: 180).
2. Call get_external_demand_signals (lookbackDays: 30) for seasonality_event and economic_indicator types,
   and flag anything landing inside the next 30 days.
Render a Mermaid pie chart of totalTrappedCapital vs. totalRevenueAtRisk, then a one-paragraph executive
summary a COO could read in 30 seconds: net exposure, the single biggest liquidation candidate, the single
biggest reorder priority, and any upcoming external signal that changes the picture. End with a markdown
table of the top 5 liquidation and top 5 reorder candidates so it can be copy-pasted straight into a
spreadsheet.

Playbooks 3 and 4 ask Claude to render a Mermaid chart (native inline rendering in Claude Desktop/claude.ai) alongside a markdown table, legible at a glance, and the table copy-pastes straight into a spreadsheet. For interactive charting and raw JSON/CSV export, use the console instead.

Reading the output

What the risk matrix columns mean.

ColumnMeaning
ClassABC (revenue contribution) / XYZ (demand volatility), e.g. "A / Z" = high revenue, unpredictable demand
Stockout ETADays until projected depletion given current velocity and incoming POs
Safety stock driftCurrent buffer vs. statistically optimal buffer for your service-level target
Trapped capitalDollar value of on-hand stock exceeding your dead-stock days-of-supply threshold
ActionClaude's recommendation: draft a PO, monitor, or liquidate/reallocate

Every tool response also carries a dataSource field ("live" or "synthetic") plus a plain-language note explaining which one answered. Claude is instructed to always say which one you're looking at rather than leave it buried in the JSON, and to attribute verified figures to the specific tool that produced them, separate from its own analysis and recommendations.

Live data

Connect your store. Same tools, your numbers.

Every tier starts on the deterministic sandbox catalog so you can prove the workflow risk-free. Connecting a real store swaps the numbers, not the tools: the schemas, playbooks, and prompts you already use stay identical.

01

Open the connect page

Go to /connect?token=<your-token> (also linked from your success page). You'll see one card per data source.

02

Connect Shopify

Enter your store's .myshopify.com subdomain and click Connect. A Shopify consent screen opens; the access requested is read-only. We never see or store your credentials, only an encrypted connection reference.

03

Flip the data mode

Connecting alone changes nothing, on purpose. The "Data mode" toggle on the same page switches your token between demo and live. Flip back any time; your connection is kept either way.

Live today: get_stock_levels (real per-location on-hand, committed, available, and incoming quantities) and get_velocity_metrics (computed from your actual order history). In live mode, node names are your store's real locations. Analytics and forecasting tools continue running on the sandbox catalog and switch over as live coverage expands. Velocity windows are currently limited to your last 60 days of orders. Amazon Seller Central is next; other sources follow.

Exporting & legacy comparison

Get your data out — into a database, Excel, or next to your legacy numbers.

Nothing here is locked in. Every locations/SKUs dataset you've loaded (via /setup, a live connection, or the turnaround/OEE import routes) can be pulled out again at any time, in a shape a spreadsheet or another database can read directly.

CSV / JSON export

/api/export?token=<token>&vertical=ag&format=csv (or format=json) returns everything loaded for that vertical — locations and SKUs, flattened with their full attributes. Open the CSV directly in Excel/Sheets, or point any ETL/database import tool at the JSON.

Bulk CSV import (the reverse direction)

/api/locations/import, /api/skus/import, /api/shift/import, and /api/turnaround/import all accept a token + a bounded row array — the same shape /setup pastes through the UI, callable directly for a scripted bulk load. See scripts/harness-import-synthetic-data.ts in the repo for a working example that reads an external generator's CSV/XLSX output and loads all four.

Testing against legacy data: export a vertical's current numbers (CSV), open it next to your legacy system's own export in Excel, and diff the two directly — same column-per-attribute shape either way, so a mismatch shows up as a spreadsheet formula, not a code change. There's no automatic reconciliation tool yet; this is a manual side-by-side today.

Advanced

Projects, Artifacts, and writing your own prompts.

Everything above runs in any regular chat. If you want a standing setup instead of ad-hoc conversations, everything below builds on the exact same connector and tools already documented on this page — nothing new to install.

Claude.ai Projects: a saved instance instead of ad-hoc chats

Add SupliiChain as a connector to a Project (Project settings → Connectors → Add custom connector), the same URL/token pair as any other client:

Server URL:  https://dpx-mcp.vercel.app/api/mcp
Auth header: Authorization: Bearer <your-token>

Then set the Project's own custom instructions to shape how Claude behaves every time inside it, without retyping anything. A starting template to copy and fill in:

You are our inventory intelligence copilot for <company name>.
Call get_started at the start of every conversation and report progress briefly.
Default service level target: 0.95. Default lead time buffer: <days>.
When asked about SKU health, run Playbook 1 (see /guide#playbooks) unless told otherwise.
Always separate verified tool output from your own recommendations.

SupliiChain has no way to detect it's running inside a Project specifically (no such context comes through per call) — anything Project-specific has to live in the Project's own instructions, not in the server.

Artifacts: a custom live view, where your account supports it

claude.ai's Artifacts can render an interactive page (a chart, a calculator, a small dashboard) inside a conversation. Some claude.ai environments let a published Artifact call your own connected MCP tools directly, so you can ask Claude to build one wired to live SupliiChain data instead of a static mockup. Example prompt:

Build an artifact: a bar chart of days-of-supply per SKU from get_stock_levels,
color-coded red under 14 days, with a refresh button that re-calls the tool.

Whether this works depends on your claude.ai environment supporting that capability, and needs SupliiChain already added as a connector on that account — same connector as above, no separate setup.

Writing your own prompt, not just the 4 built-in playbooks

The master playbooks above are starting points, not the ceiling. A custom prompt is just: pick which tools to chain, in what order, and how you want the output shaped. Skeleton:

Call <tool A> for <scope>.
Then call <tool B> using <tool A>'s output as input.
<Repeat as needed.>
Output as <a markdown table with columns ... / a Mermaid chart / plain text>.
Flag anything where <your specific threshold or condition>.

See /commands for the full tool list and what each one needs as input.

Autonomous agents, scripts, and multi-agent workflows

Copilot, Console, and Commands are all human-facing wrappers around one thing: the MCP endpoint at https://dpx-mcp.vercel.app/api/mcp, authenticated with your Bearer token. A script or an autonomous agent doesn't need any of them — connect directly with @modelcontextprotocol/sdk (or any MCP client), the exact same way Claude Desktop, Cursor, and Windsurf already do per the setup above.

Running more than one agent (say, a demand-planning agent and a separate marketing agent)? Give each its own token rather than sharing one. Tokens are the only thing tier-gating and usage tracking key off, so separate tokens mean separate usage counters and a clean way to tell which agent asked for what later.

One thing that's a permanent design decision, not a current limitation: the two write-capable tools (draft_purchase_order, reallocate_node_inventory) never auto-execute. Every call returns a costed preview, not a completed action, no matter who or what is calling. SupliiChain is built as a co-pilot that hands a human a fully-reasoned recommendation to approve in one click — not a black-box agent quietly cutting POs or moving inventory on its own. If your workflow needs the write to actually happen, that approval step belongs in your own orchestration layer; nothing here will skip it for you.

Security

What SupliiChain will and won't do.

Source of truth

Whatever system you connect stays authoritative. SupliiChain reads from it; it never silently overwrites a count.

Writes are human-in-the-loop

draft_purchase_order and reallocate_node_inventory default to dryRun: true. You approve before anything goes live.

Tier-gated by design

Every tool checks your token's tier before running. A denied call returns a clear "upgrade required" message, not a silent failure.

Troubleshooting

Common issues.

Claude says the MCP server isn't connected

Run claude mcp list. If it shows anything other than "Connected", double check the token was pasted in full (they're long) and that you restarted the client after editing the config.

A tool call returns TIER_ACCESS_DENIED

Your token's tier doesn't unlock that tool yet. Check the console to see exactly which tools your tier includes, or upgrade via the workshop page.

Do I need a paid Claude subscription?

Not to get started. Claude's free desktop app supports MCP servers added via the config file shown above (including the mcp-remote fallback). Free-plan usage caps are the real limit: connecting works fine, but long multi-tool playbook runs burn through a free plan's message allowance quickly, so the full workshop experience is smoother on a paid Claude plan. Cursor, Windsurf, and VS Code connect with their own subscriptions and need no Claude plan at all. Plan features shift over time, so check your client if something seems gated.

I lost my token

For security, tokens are never re-displayed to an unauthenticated visitor. If you use the Demand Planner X Shopify app, the Connect Claude tab shows your token any time (it authenticates you through your store admin). Otherwise email ryanwegman2011@gmail.com from the address you signed up or purchased with, and we'll restore it.

Can I test tools without connecting Claude at all?

Yes. Paste your token into the console to browse and run any unlocked tool directly in the browser, with the same live results Claude would get.