Epox Docs
Open app

Workspace & try-on tools

MCP tools for reading workspace identity, credit balances, store connection status, and aggregate virtual try-on analytics.

Before you read this page

Every tool below is covered by the baseline `mcp:read` scope — none of them need mcp:generate. None of them take a workspaceId argument either: your credential is already scoped to one workspace, so the server resolves it server-side and would reject a client-supplied one anyway.

Every response below is shown unwrapped — just the data value. On the wire it's still inside the standard { notice, data } object, inside the MCP content[0].text string. See Developer overview for the full envelope.

Workspace

epox_workspace_summary

Read connected workspace identity and high-level catalogue totals.

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "epox_workspace_summary",
    "arguments": {}
  }
}

Response:

json
{
  "workspace": { "id": "clnt_9f2a1c", "name": "Northwind Home Goods" },
  "productCount": 128,
  "hasGeneratedAssets": true,
  "automationCount": 3
}

hasGeneratedAssets is a cheap boolean check, not a count — call `epox_list_assets` for real numbers.

epox_workspace_usage

Read workspace generation and try-on credit balances. This is read-only.

json
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "epox_workspace_usage",
    "arguments": {}
  }
}

Response:

json
{
  "month": "2026-09",
  "generationCount": 412,
  "credits": {
    "plan": "growth",
    "balance": 2380,
    "lifetimeReserve": 500,
    "tryonBalance": 640,
    "tryonLifetimeReserve": 0,
    "tryonDailyGenerationsUsed": 12
  }
}

credits is null if the workspace has no quota record yet (a brand-new workspace that hasn't generated anything). balance is consumed first; lifetimeReserve is the reserve pool with no monthly rollover.

epox_store_connection_status

Read the connected store status without credentials.

json
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "epox_store_connection_status",
    "arguments": {}
  }
}

Response, with a store connected:

json
{
  "storeType": "woocommerce",
  "storeName": "Northwind Home Goods",
  "status": "connected",
  "reauthRequired": false,
  "lastSyncAt": "2026-09-29T04:12:07.000Z",
  "autoSyncEnabled": true,
  "syncOnApproval": true
}

With no store connected, the response is just { "connected": false } — never credentials, tokens, or webhook secrets either way.

Try-on analytics

Both tools are privacy-redacted: shopper email, IP address, uploaded images, and prompts never leave the platform. What you get back is aggregate counts and per-session status only.

epox_get_tryon_analytics

Read privacy-safe aggregate virtual try-on usage and credit telemetry.

json
{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "tools/call",
  "params": {
    "name": "epox_get_tryon_analytics",
    "arguments": {}
  }
}

Response:

json
{
  "byProduct": [
    {
      "productId": "prod_7a1b2c",
      "productName": "Classic Oxford Shirt",
      "category": "Apparel",
      "sessionCount": 340,
      "generationCount": 512,
      "creditsSpent": 1024,
      "lastUsedAt": "2026-09-28T18:44:02.000Z"
    }
  ],
  "byDay": [
    { "date": "2026-09-16", "sessionCount": 41, "generationCount": 63, "creditsSpent": 126 }
  ],
  "dailyUsage": { "used": 12, "resetAt": "2026-09-30T00:00:00.000Z" }
}

byDay covers a fixed trailing 14-day window. dailyUsage is null if the workspace has no quota record.

epox_list_tryon_sessions

List privacy-redacted virtual try-on session summaries.

json
{
  "jsonrpc": "2.0",
  "id": 5,
  "method": "tools/call",
  "params": {
    "name": "epox_list_tryon_sessions",
    "arguments": { "status": "completed", "limit": 20 }
  }
}

status is optional and, when given, one of active, completed, or blocked. limit/cursor follow the standard pagination convention.

Response:

json
{
  "items": [
    {
      "id": "tryon_4d29ab",
      "productId": "prod_7a1b2c",
      "status": "completed",
      "generationCount": 2,
      "creditsSpent": 4,
      "resultCount": 2,
      "createdAt": "2026-09-28T18:40:11.000Z",
      "updatedAt": "2026-09-28T18:44:02.000Z"
    }
  ],
  "nextCursor": null
}
Was this guide useful?Your feedback helps us refine the documentation.