# As ferramentas MCP

# As ferramentas MCP

Conectado o servidor MCP, o cliente ganha quatro ferramentas. **Só uma delas cobra.**

| Ferramenta | O que faz | Cobra? |
| --- | --- | --- |
| `autoconsulta_list_products` | Lista as consultas disponíveis para a sua conta, com preço | **Não** |
| `autoconsulta_describe_product` | Detalha uma consulta: o que exige e o que entrega | **Não** |
| `autoconsulta_run_product` | **Executa** uma consulta | **Sim** |
| `autoconsulta_check_result` | Lê o resultado de uma consulta já executada | **Não** |

---

## `autoconsulta_list_products`

Lista o catálogo **da sua conta**. Aceita filtro por texto livre, por categoria e pelo tipo de
documento que a consulta exige.

Devolve, para cada item, o identificador, o nome, o preço para a sua conta e o `prazo_tipico` —
uma **faixa** (`imediato`, `até 1 minuto`, `alguns minutos`, `assíncrono`), não um tempo exato.
Quando não há medição suficiente, o campo vem vazio.

:::note
A listagem já traz **apenas o que a sua conta pode usar**. Uma consulta que não aparece aqui não
está disponível para você.
:::

O padrão traz 50 itens de um catálogo maior — o retorno inclui `total` e `has_more` para o
modelo saber que há mais.

## `autoconsulta_describe_product`

Detalha **uma** consulta: o que ela entrega, quais campos exige na entrada (em JSON Schema) e o
preço para a sua conta.

É o passo que o modelo deve dar **antes** de pedir seus dados — é daqui que ele descobre o que
perguntar. `entrada.required` é a lista do que é obrigatório.

## `autoconsulta_run_product`

**Executa a consulta e cobra.** É a única que gasta dinheiro, e ela é declarada assim no
protocolo MCP, com instrução explícita de **confirmar com você antes de chamar**.

Recebe o identificador da consulta e os campos de entrada.

- Se a consulta é rápida, o resultado volta na hora.
- Se demora, volta um **`consultation_id`** e a instrução de **não repetir a chamada** — o
  resultado se lê com `autoconsulta_check_result`.

:::caution
Se o cliente MCP repetir esta chamada, isso pode gerar nova cobrança. Por isso a instrução de não
repetir vem dentro da própria resposta: quando você vê um `consultation_id`, o caminho é **ler**,
não reexecutar. Veja [Como a cobrança funciona](/assistente/cobranca).
:::

## `autoconsulta_check_result`

Lê o resultado pelo `consultation_id`. **Nunca cobra, em nenhuma situação.**

É a ferramenta certa para acompanhar uma consulta que ainda está processando — pode ser chamada
quantas vezes for preciso, com alguns segundos entre uma e outra.

Enquanto processa, devolve que ainda está processando; não há resultado parcial.
