---
title: Let your agent learn looot with skills
description: When an agent should call the free skills tool, a four-step example from a list of companies to work emails, and why guides served over MCP have no sign-up step.
---

[`skills`](/mcp-tools/skills) is a free MCP tool that hands an agent a short guide for the task in
front of it: which job to run, what to ask the user for, and what to do on a miss. It costs nothing
and needs no balance, so an agent can call it before every unfamiliar task.

## When an agent should call it

- The user asks for something new, and the agent does not know which job or endpoint does it.
- A run came back in a way the agent did not expect: no email found, `queued`, `insufficient_balance`,
  a provider error, a price higher than the user expected.
- The task is a batch, such as a list of companies or people. The batch guide says when to stop and ask.

Call it with a `query` in plain words. Call it with no arguments to see the index, or with a
`slug` from the index or a search to read one full guide.

## Example: work emails for a list of companies

1. **The user asks**

    "Find the work email of the head of marketing at each of these 30 SaaS companies."

2. **The agent searches the guides**

    ```json MCP
    skills {"query": "work email for a list of companies"}
    ```

    The answer ranks the email guides first (`use-cases/domain-email-search`,
    `agent-skills/find-professional-emails`), then three edge cases: `edge-cases/no-email-found`,
    `edge-cases/batch-over-100-calls` and `edge-cases/verify-email-after-finding`.

3. **The agent reads the guide**

    ```json MCP
    skills {"slug": "agent-skills/find-professional-emails"}
    ```

    The answer carries the job ids the guide names in `jobIds` (here `people.email.find`) and the
    guide as markdown: what to ask the user for, the steps, and what to do on a miss. Its header says to
    prefer one `run` of `job:<id>` with `fallback: true`, so looot picks the provider and tries the next
    on a miss.

4. **The agent runs one call first**

    The agent reads the live prices of the job's providers, then runs one company with the job and
    `fallback`, and shows the user the result and its cost:

    ```json MCP
    search_catalog {"filters": {"capability": "people.email.find"}}
    ```

    ```json MCP
    run {"endpointId": "job:people.email.find", "input": {"first_name": "Jane", "last_name": "Doe", "domain": "example.com"}, "idempotencyKey": "email-jane-doe-1", "fallback": true}
    ```

    30 companies can need a call to find each person and another to find
    each email. Past 100 calls, the `edge-cases/batch-over-100-calls` guide says to ask the user first,
    with the number of calls and the total price, and to check [`balance`](/mcp-tools/balance) before
    the batch.

A miss on one person is a normal answer, not an error: `edge-cases/no-email-found` tells the agent
to check the domain, run the job with `fallback`, and say plainly that no email was found.

## Why guides over MCP have no sign-up step

Most of the 415 use case guides start as the `skill.md` of a page on looot.ai: an alternatives page,
a use case, a recipe, a free tool or an MCP page. On the website that file has a Setup section with a
sign-up link and `looot login`, for a human who is not connected yet. Over MCP the `skills` tool drops
that section, because an agent that can call `skills` is already connected. The header in front of
each guide says so. To check: none of the 415 guides in
`src/modules/agent-guides/useCaseGuides.generated.json` contains a `## Setup` section, `looot login`
or an `onboarding?src=` link.

The ChatGPT profile serves its own wording of each guide, with no sign-up steps and only that
profile's tools. See [`skills`](/mcp-tools/skills#in-the-chatgpt-profile).

<Related />
