MCP tools
The 18 tools the looot MCP server exposes, the common error shape, and a typical agent flow through discover, run and balance.
looot runs an MCP server at https://api.looot.ai/mcp over Streamable HTTP. Sign in with the
browser (OAuth, no token to copy):
claude mcp add looot https://api.looot.ai/mcp --transport http
Then run /mcp, pick looot, and authenticate. Headless clients add
--header "Authorization: Bearer $LOOOT_TOKEN" to the same command instead. See Connect.
A customer sign-in sees exactly 18 tools.
Tools
| Tool | Free or paid | Read-only | What it does |
|---|---|---|---|
search |
Free | Yes | Start here. Find endpoints for a job in plain words or by filter; 10 short rows by default. |
search_catalog |
Free | Yes | Full-detail listing: 50 full rows by default. Use it only when you need many full rows. |
catalog_overview |
Free | Yes | What the catalog covers, as categories, platforms and jobs. |
discover |
Free | Yes | Search up to 5 eligible endpoints with relevance and evidence scoring. |
discover_smart |
Paid | No | Judge a shortlist against a plain-English use case with one small AI call. |
inspect |
Free | Yes | Return an endpoint’s exact input/output schema, price and a run template. |
run |
Paid | No | Run an endpoint, a job, or a workflow, and spend prepaid credit. |
runs_get |
Free | Yes | Get one run’s status, result and cost. |
runs_list |
Free | Yes | List runs for this workspace, cursor-paginated. |
runs_cancel |
Free | No | Cancel a queued or running run. |
runs_evidence |
Free | Yes | Every attempt made for a run: status, latency, receipt id, cost. |
balance |
Free | Yes | This workspace’s available and reserved balance. |
top_up |
Free | No | Get a Stripe Checkout link to add prepaid credit. |
media_link |
Free | Yes | Get a short-lived download link for a file a run produced. |
capability_request |
Free | No | Ask for a provider or job the catalog does not cover yet. |
feedback |
Free | No | Tell the looot team what went wrong or what would help. |
skills |
Free | Yes | How-to guides for a task, and for getting unstuck. |
my_tools |
Free | Yes | List this workspace’s tenant tools and whether each is callable. |
“Free” means the call itself costs nothing; run still spends credit when the endpoint it runs
has a price. discover_smart is the one tool that always costs a small amount on top of any
endpoint it leads you to run, because it makes its own paid AI call to judge candidates.
run and runs_cancel are the only two tools with destructiveHint: true in their tool
annotations, because they change state: they spend money or stop a run in flight. The
other 16 are read-only or additive.
Errors
Every tool error, whatever produced it, comes back the same way: isError: true on the MCP
result, with structuredContent.data shaped {code, message, retryable, requestId}. Read
code to branch, and show the customer message, which already states the fix when there is
one.
Bad arguments get code: "validation_error". A missing or wrong-typed field names that field in
message, for example q: Invalid input: expected string, received undefined. An argument the
tool does not accept is refused by name too, with the arguments it does accept listed alongside
it in acceptedArguments.
A call can still fail after admission. run and runs_get can both return status: "failed"
inside a successful, non-error MCP call: the tool call itself worked, but the run it describes
did not settle successfully. Always check status and error on the run as well as whether the
tool call errored. See Run errors and MCP errors.
The text and structured content
Every tool answer carries two equivalent copies of the same data: a content[0].text string of
compact JSON (no indentation, to keep it short for a model’s context) and a structuredContent.data
object holding the same values already parsed. Read whichever your client surfaces; they never
disagree.
A typical flow
Find a job
Call search with a plain-English description (“verify an email
address”) to get one or more endpointId values for the job. It answers 10 short rows
by default. Use search_catalog only when you need many full rows at once.
Check the price and schema
Call inspect with the endpointId to see its exact input schema and
estimatedMaxCost before spending anything.
Check your balance
Call balance. A new workspace starts at $0. If it is short, call top_up for a
payment link and wait for the customer to pay.
Run it
Call run with the endpointId, the input the schema requires, and a fresh
idempotencyKey. Add wait to get the settled result back inline.
Follow up
If you did not wait, poll runs_get with the returned runId. runs_evidence shows
every attempt made; runs_cancel stops a run still queued or running.
Not sure how to do a task, or stuck after a run? Call skills with the task
in plain words for a short guide. It is free.
See Connect to wire the server into your agent, and Jobs for how jobs and endpoints relate.