Tool reference · Workspace

list_installations

What this workspace has installed, where, and what it paid for

read-onlyreads the workspacenot rate limited

Updated 2026-09-18 · Server 2.0.0

What it does

The workspace library, as rows. What is installed where, what was bought, and whether a hosted seat is active — the three things an agent needs before it claims the workspace can do something.

Arguments

NameTypeRequiredMeaning
statusstringnoactive (default), removed, or all for the full history
targetstringnoOnly this target: claude, cursor, vscode, hosted, download
product_slugstringnoOnly this product
project_idstringnoOnly installs bound to this project
limitnumbernoHow many rows, 1–200 (default 100)

This table is generated from the literal inputSchema that tools/list returns, so what your client sees and what this page says are the same object:

inputSchema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "description": "active (default), removed, or all for the full history"
    },
    "target": {
      "type": "string",
      "description": "Only this target: claude, cursor, vscode, hosted, download"
    },
    "product_slug": {
      "type": "string",
      "description": "Only this product"
    },
    "project_id": {
      "type": "string",
      "description": "Only installs bound to this project"
    },
    "limit": {
      "type": "number",
      "description": "How many rows, 1–200 (default 100)"
    }
  }
}

Request

Paste this, swap the key, and you have called the tool.

curl
curl -s https://topclozer.com/api/mcp \
  -H "Authorization: Bearer tcz_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "list_installations",
      "arguments": { "status": "active" }
    }
  }'

Returns

{ catalog_published, count, installations[], purchases[], subscription }. Each installation carries the product row it points at, or null when the catalogue has no such slug.

The payload arrives inside an MCP content block — one text block whose body is this JSON, pretty-printed. Parse the string; there is no structured-content field.

payload
{
  "catalog_published": true,
  "count": 1,
  "installations": [
    {
      "id": "ins_9f3a21",
      "product_slug": "linkedin-starter-agent",
      "target": "claude",
      "status": "active",
      "installed_at": 1789084800000,
      "removed_at": null,
      "project_id": null,
      "project_name": null,
      "product": { "slug": "linkedin-starter-agent", "name": "LinkedIn Starter Agent", "price": "Free" }
    }
  ],
  "purchases": [],
  "subscription": null
}

Worth knowing

`status: "all"` returns removals too, with removed_at set. A removal is kept rather than deleted — "installed it and took it off two days later" is worth knowing. `product: null` means the slug has no catalogue row, which happens when a product was retired after it was installed; the row is still shown as itself.

Limits

No request limit. This tool reads the workspace database and costs nothing to serve. The limits that bite in this product are the sending controls — per-sender weekly invite caps, the warm-up ramp, the working-hours window and a randomised gap between actions — and no tool can raise them.

Related tools

All 21 tools are listed on the tool index. Connecting a client is on the Claude setup page, and the protocol details are on the server page.