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
| Name | Type | Required | Meaning |
|---|---|---|---|
| status | string | no | active (default), removed, or all for the full history |
| target | string | no | Only this target: claude, cursor, vscode, hosted, download |
| product_slug | string | no | Only this product |
| project_id | string | no | Only installs bound to this project |
| limit | number | no | How 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:
{
"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 -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.
{
"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
install_product
Record an installation of a product into an AI client or the hosted runner. Writes a row; runs nothing.
get_product
One product in full: capabilities, risk, price, and whether this workspace has bought or installed it
get_platform_usage
What this workspace owns and has run: installs, purchases, the hosted seat, credits and the execution ledger
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.