# Apps e componentes

> Encontre apps e componentes publicados no Nodaro, leia as entradas e execute-os num assistente de IA: list_apps, run_app, list_components e run_component.

Source: https://nodaro.ai/pt-BR/docs/mcp/tools/apps-and-components

As **ferramentas de apps e componentes** permitem que um assistente use workflows que as pessoas publicaram. Um [app](https://nodaro.ai/docs/concepts/apps) é um workflow publicado com um formulário simples, como uma restauração de fotos ou uma edição temática, e um [componente](https://nodaro.ai/docs/concepts/components-and-sub-workflows) é um bloco de construção publicado. O assistente procura um deles, lê as entradas e o executa com os seus créditos.

Os apps atendem muitos pedidos que nenhuma ferramenta de geração resolve sozinha, como transformações inéditas, edições temáticas e pipelines de várias etapas. Um assistente deve procurar nos apps antes de responder que algo não pode ser feito.

## `list_apps`
Busca apps publicados: no marketplace público ou entre os seus próprios apps.

**Permissão:** `apps:read`. **Créditos:** grátis.

| Parâmetro | Tipo | Observações |
| --- | --- | --- |
| `scope` | string | `public` (padrão) para o marketplace, ou `mine` para os seus próprios apps. |
| `search` | string | Um tema a buscar, com até 100 caracteres. |
| `category` | string | Uma categoria, com até 50 caracteres. |
| `limit` | integer | De 1 a 50. |
| `cursor` | string | O cursor da página anterior. |

**Retorna:** os apps correspondentes, com os slugs deles.

## `get_app_inputs`
Retorna as entradas de um app, o mesmo formulário que a página do app mostra. Chame-a antes de `run_app` para saber as chaves das entradas.

**Permissão:** `apps:read`. **Créditos:** grátis.

| Parâmetro | Tipo | Observações |
| --- | --- | --- |
| `slug` | string | **Obrigatório.** O slug do app, por exemplo `photo-restoration`. |

**Retorna:** um item por entrada, com `key`, `label`, `type` (`image`, `video`, `audio`, `text`, `select`, `number`, `boolean` ou `list`), se ela é `required` e as `options` de um campo de seleção.

## `run_app`
Executa um app publicado. Você paga os créditos da execução.

**Permissão:** `workflows:execute`. **Créditos:** os créditos dos nós executados dentro do app.

| Parâmetro | Tipo | Observações |
| --- | --- | --- |
| `slug` | string | **Obrigatório.** O slug do app. |
| `inputs` | object | Um objeto plano indexado pelas chaves das entradas de `get_app_inputs`. Omita-o para usar os valores padrão. |
| `inputOverrides` | object | Avançado. Campos brutos de nós, indexados pelo ID do nó e pelo campo, aplicados por cima de `inputs`, por exemplo `{ "n1": { "promptPrefix": "..." } }`. |
| `client_request_id` | string | Um token de nova tentativa: de 8 a 128 caracteres entre letras, dígitos e `_ - . :`. Reutilize-o ao repetir uma chamada que expirou, para que a execução não seja iniciada nem cobrada duas vezes. |

**Retorna:** um ID de execução. Acompanhe a execução com [`get_app_run`](https://nodaro.ai/docs/mcp/tools/gallery-and-assets#get_app_run).

`inputOverrides` não pode definir para onde uma saída vai, como a URL de um nó **Saída de webhook** (Webhook Output), a conta de um nó de publicação ou o alvo de um scraper. Uma execução que tenta fazer isso é recusada com `400 locked_field`.

## `delete_app_run`
Arquiva a execução de um app. Você pode restaurá-la ou excluí-la de vez em [app.nodaro.ai/archived-runs](https://app.nodaro.ai/archived-runs).

**Permissão:** `workflows:execute`. **Créditos:** grátis.

| Parâmetro | Tipo | Observações |
| --- | --- | --- |
| `slug` | string | **Obrigatório.** O slug do app, a última parte da URL do app. |
| `runId` | string | **Obrigatório.** O ID da execução. |

**Retorna:** uma confirmação.

## `list_components`
Busca componentes publicados: no marketplace público ou entre os seus. Use-a quando o usuário citar um componente pelo nome ou pedir um pipeline de várias etapas que corresponda a um componente conhecido.

**Permissão:** `workflows:read`. **Créditos:** grátis.

| Parâmetro | Tipo | Observações |
| --- | --- | --- |
| `scope` | string | `public` (padrão) para o marketplace, ou `mine` para os seus próprios componentes. |
| `search` | string | Um tema a buscar, com até 100 caracteres. |
| `limit` | integer | De 1 a 50. |
| `cursor` | string | O cursor da página anterior. |

**Retorna:** os componentes correspondentes, com os slugs deles.

## `get_component_inputs`
Retorna as entradas de um componente. Chame-a antes de `run_component` para saber as chaves das entradas.

**Permissão:** `workflows:read`. **Créditos:** grátis.

| Parâmetro | Tipo | Observações |
| --- | --- | --- |
| `component_id` | string | **Obrigatório.** O slug do componente. |

**Retorna:** um item por entrada, com `key`, `label`, `type` e se ela é `required`.

## `run_component`
Executa um componente publicado.

**Permissão:** `workflows:execute`. **Créditos:** os créditos dos nós executados dentro do componente.

| Parâmetro | Tipo | Observações |
| --- | --- | --- |
| `component_id` | string | **Obrigatório.** O slug do componente. |
| `inputs` | object | Um objeto plano indexado pelas chaves das entradas de `get_component_inputs`. Omita-o para usar os valores padrão. |
| `client_request_id` | string | Um token de nova tentativa: de 8 a 128 caracteres entre letras, dígitos e `_ - . :`. Reutilize-o ao repetir uma chamada que expirou. |

**Retorna:** um ID de job. Quando o job termina, o `output_data` dele traz as saídas do componente. Nos clientes com MCP Apps, o cartão do job mostra as saídas uma embaixo da outra.

## Frequently asked questions

### Qual é a diferença entre um app e um componente?

Um app é um workflow publicado que funciona sozinho a partir de um formulário simples. Um componente é um bloco de construção publicado que outros workflows reutilizam. Os assistentes procuram primeiro um app quando não existe uma ferramenta direta para o pedido.

### Quem paga a execução de um app iniciada por um assistente?

Você. run_app e run_component gastam créditos da sua própria conta, aos preços dos nós que existem dentro do app ou do componente.

### Um assistente pode alterar as configurações ocultas de um app?

Só algumas. inputOverrides pode definir campos brutos de nós, como o texto adicionado antes de um prompt, mas não pode mudar o destino de uma saída, como a URL de um webhook ou uma conta de rede social. Essas execuções são recusadas.

### Como excluo a execução de um app pelo assistente?

Chame delete_app_run com o slug do app e o ID da execução. A execução vai para as suas execuções arquivadas, onde você pode restaurá-la ou excluí-la de vez.
