What it does
Start from the job, not from the product. A capability is the atomic unit of this catalogue — one thing an agent can do — and every capability names what performs it: a live MCP tool, a written skill, a workflow, or nothing yet. The last case is the useful one: `fulfilled_by: "planned"` is how this catalogue admits a gap instead of leaving a buyer to find it.
Arguments
| Name | Type | Required | Meaning |
|---|---|---|---|
| q | string | no | Substring matched against a capability's id, name and description |
| fulfilled_by | string | no | What performs it: tool, skill, workflow, planned. Accepts a list. |
| risk | string | no | Risk level: low, medium, high. Accepts a list. |
| automation_method | string | no | How it acts: official-api, user-session, human-in-the-loop, read-only. Accepts a list. |
| available_only | boolean | no | Drop capabilities nothing can fulfil yet (default false — planned ones are returned and flagged) |
| limit | number | no | How many capabilities, 1–100 (default 50) |
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": {
"q": {
"type": "string",
"description": "Substring matched against a capability's id, name and description"
},
"fulfilled_by": {
"type": "string",
"description": "What performs it: tool, skill, workflow, planned. Accepts a list."
},
"risk": {
"type": "string",
"description": "Risk level: low, medium, high. Accepts a list."
},
"automation_method": {
"type": "string",
"description": "How it acts: official-api, user-session, human-in-the-loop, read-only. Accepts a list."
},
"available_only": {
"type": "boolean",
"description": "Drop capabilities nothing can fulfil yet (default false — planned ones are returned and flagged)"
},
"limit": {
"type": "number",
"description": "How many capabilities, 1–100 (default 50)"
}
}
}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": "search_capabilities",
"arguments": { "q": "profile", "available_only": true }
}
}'Returns
{ catalog_published, count, capabilities[] }. Each capability is the stored row — id, name, description, fulfilled_by, tool_name, risk, automation_method — plus `available` and a risk_summary carrying the canonical wording.
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,
"capabilities": [
{
"id": "linkedin.read_profile",
"name": "Read a LinkedIn profile",
"description": "Identity, current role, followers, job-change signal and the latest post.",
"fulfilled_by": "tool",
"tool_name": "get_linkedin_profile",
"risk": "low",
"automation_method": "read-only",
"available": true,
"risk_summary": {
"level": "low",
"label": "Low risk",
"detail": "Reads only, at human pace. No writes to LinkedIn.",
"automation_method": "read-only",
"automation_label": "Read only",
"automation_detail": "Fetches and reasons. It cannot write anything to LinkedIn."
}
}
]
}Worth knowing
tool_name, when present, is a real tool in this same MCP server — call it directly if all you wanted was the one step. `available_only` defaults to false on purpose: an agent planning a job needs to see the wall before it walks into it.
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
search_products
Search the TopClozer catalogue by outcome, kind, tier, price, risk or capability
get_product
One product in full: capabilities, risk, price, and whether this workspace has bought or installed it
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.