# Ferramentas · Presença

> Ferramentas MCP do módulo Presença (coworking): a lotação, Cheguei e Fui embora, quem está aqui, visitantes, histórico, correção e remoção de visitas e os links de quiosque da recepção.

O módulo [Presença](/espacos/presenca) pelo assistente: ver a lotação, marcar a chegada e a saída (de você, de um membro ou de um visitante), listar quem está no espaço e o histórico, corrigir ou remover visitas e gerar e revogar os links de quiosque. O quiosque em si é uma tela do visitante no iPad da recepção; o assistente **gerencia** os links, não opera o quiosque.

Cada ferramenta traz um selo: <span class="tool-kind tool-kind-read">Só consulta</span> não muda nada, <span class="tool-kind tool-kind-write">Altera</span> cria ou muda algo na hora, e <span class="tool-kind tool-kind-confirm">Pede confirmação</span> só age depois do seu sim a um resumo. Ver [Dinheiro e confirmação](/mcp/dinheiro-e-confirmacao).

## Em resumo

| Ferramenta | O que faz | Papel mínimo | Tipo |
|---|---|---|---|
| [`get_attendance_overview`](#get-attendance-overview) | A lotação e a sua visita aberta | Qualquer que veja o espaço | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`check_in`](#check-in) | Registra a chegada, a sua ou a de um membro | Qualquer (a sua); moderador ou financeiro (de outro) | <span class="tool-kind tool-kind-write">Altera</span> |
| [`check_out`](#check-out) | Registra a saída | Qualquer (a sua); moderador ou financeiro (de outro) | <span class="tool-kind tool-kind-write">Altera</span> |
| [`list_present`](#list-present) | Quem está no espaço agora | Moderador ou financeiro | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`list_visits`](#list-visits) | O histórico de visitas, com filtros | Moderador ou financeiro (hoje); administrador (qualquer dia) | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`list_my_visits`](#list-my-visits) | As suas visitas e o resumo do mês | Qualquer | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`update_visit`](#update-visit) | Corrige a chegada ou a saída de uma visita | Moderador ou financeiro (hoje); administrador (qualquer dia) | <span class="tool-kind tool-kind-write">Altera</span> |
| [`delete_visit`](#delete-visit) | Remove uma visita | Administrador | <span class="tool-kind tool-kind-confirm">Pede confirmação</span> |
| [`check_guest_in`](#check-guest-in) | Registra a chegada de um visitante | Moderador ou financeiro | <span class="tool-kind tool-kind-write">Altera</span> |
| [`list_attendance_kiosks`](#list-attendance-kiosks) | Os aparelhos de quiosque do espaço | Moderador ou financeiro | <span class="tool-kind tool-kind-read">Só consulta</span> |
| [`create_attendance_kiosk`](#create-attendance-kiosk) | Gera o link de um quiosque (aparece uma vez) | Moderador | <span class="tool-kind tool-kind-write">Altera</span> |
| [`revoke_attendance_kiosk`](#revoke-attendance-kiosk) | Revoga o link de um quiosque | Moderador | <span class="tool-kind tool-kind-confirm">Pede confirmação</span> |

O espaço se cria com [`create_space`](/mcp/ferramentas-comunidade#create-space) e `module: "attendance"`, com o argumento `attendance` para a configuração; [`update_space`](/mcp/ferramentas-comunidade#update-space) muda só o que você mandar e mantém o resto.

A equipe, aqui, é o proprietário, o administrador, o moderador e o financeiro; o financeiro lê e marca, mas não gera nem revoga link de quiosque. Os papéis são os das rotas: o assistente nunca faz mais do que a pessoa conectada faria na tela.

## A configuração do espaço

O argumento `attendance` de `create_space` e `update_space` aceita:

| Campo | Tipo | Descrição |
|---|---|---|
| `self_check_in` | `off`, `button` ou `code` | Quem marca a chegada: `off`, só a equipe; `button`, o membro, com o botão **Cheguei** (`code` ainda não está disponível) |
| `capacity` | número de 1 a 100000, ou `null` | A lotação, informativa. `null` tira o limite |
| `auto_checkout_time` | `HH:MM` | A [saída automática](/espacos/presenca#saida-automatica), no fuso da comunidade (padrão `23:59`) |
| `show_who_is_here` | `staff` | Quem vê os nomes: só a equipe |
| `kiosk.guest_fields` | `{company, phone}`, cada um `off`, `optional` ou `required` | O que a tela do quiosque pede além do nome |
| `kiosk.notify_host` | verdadeiro ou falso | Avisa o anfitrião por e-mail na chegada do visitante (padrão: sim) |
| `kiosk.reset_seconds` | 5 a 60 | Em quantos segundos a tela do quiosque volta ao início (padrão: 10) |

## `get_attendance_overview`

<span class="tool-kind tool-kind-read">Só consulta</span>

**Lotação do espaço.** Só o número de pessoas e a lotação (nunca nomes), a visita aberta de quem pergunta e o modo de check-in (`off`, `button` ou `code`). *Papel mínimo: qualquer que veja o espaço.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id ou link | Sim | O espaço Presença |

**Peça assim:** *"Quantas pessoas estão na Unidade Centro agora?"*

## `check_in`

<span class="tool-kind tool-kind-write">Altera</span>

**Registrar a chegada.** Sem `profile_id`, é a **sua** chegada, e só se o espaço deixa o membro marcar (a equipe sempre pode se marcar). Com `profile_id`, a equipe registra a chegada de **outro membro**; o membro comum é recusado. Quem não tem acesso ao espaço (plano vencido, grupo fora) é recusado, até pela equipe. É **idempotente**: com uma visita já aberta, devolve essa visita (`already_checked_in: true`). Um visitante sem conta é [`check_guest_in`](#check-guest-in). *Papel: qualquer (a sua); moderador ou financeiro (de outro).*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id ou link | Sim | |
| `profile_id` | id | Não | Só a equipe: o membro a marcar (`list_members`). Sem ele, é você |

**Devolve:** `visit` e `already_checked_in`.

**Peça assim:** *"Registre a minha chegada na Unidade Centro."* · *"Marque a chegada da Maria no coworking."*

## `check_out`

<span class="tool-kind tool-kind-write">Altera</span>

**Registrar a saída.** Sem parâmetros além do espaço, fecha a **sua** visita aberta. A equipe fecha a de um membro (`profile_id`) ou qualquer visita aberta (`visit_id`, de `list_present`). Sem visita aberta, a resposta é `409`. *Papel: qualquer (a sua); moderador ou financeiro (de outro).*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id ou link | Sim | |
| `profile_id` | id | Não | Só a equipe: o membro cuja visita fechar |
| `visit_id` | id | Não | A visita aberta a fechar (a equipe; o membro, só a sua) |

**Peça assim:** *"Estou saindo."*

## `list_present`

<span class="tool-kind tool-kind-read">Só consulta</span>

**Quem está aqui.** As visitas abertas, de membros e de visitantes, da mais nova à mais antiga, com o nome e a hora da chegada, mais a contagem e a lotação. O membro vê só o número, em `get_attendance_overview`. *Papel mínimo: moderador (ou financeiro).*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id ou link | Sim | |
| `page`, `limit` | números | Não | Paginação (até 100 por página) |

**Peça assim:** *"Quem está na casa agora?"*

## `list_visits`

<span class="tool-kind tool-kind-read">Só consulta</span>

**O histórico.** As visitas do espaço, da mais nova à mais antiga: quem, chegada, saída, o tipo (membro ou visitante), se está aberta ou foi fechada automaticamente. O administrador e o proprietário leem qualquer período; o moderador e o financeiro veem **só hoje** (a API estreita o intervalo). *Papel mínimo: moderador (ou financeiro).*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id ou link | Sim | |
| `profile_id` | id | Não | Só este membro |
| `kind` | `member` ou `guest` | Não | Membros ou visitantes |
| `open` | verdadeiro ou falso | Não | `true`: só quem ainda está aqui |
| `from`, `to` | data | Não | `AAAA-MM-DD` ou ISO 8601, lidos no fuso da comunidade |
| `page`, `limit` | números | Não | Paginação |

**Peça assim:** *"Quantos visitantes vieram na semana passada?"*

## `list_my_visits`

<span class="tool-kind tool-kind-read">Só consulta</span>

**As suas visitas.** O seu histórico, da mais nova à mais antiga, com o resumo do mês (visitas, dias e minutos) no fuso da comunidade. *Papel mínimo: qualquer.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id ou link | Não | Só este espaço Presença |
| `page`, `limit` | números | Não | Paginação |

**Peça assim:** *"Quantos dias eu fui ao coworking neste mês?"*

## `update_visit`

<span class="tool-kind tool-kind-write">Altera</span>

**Corrigir uma visita.** Muda a chegada (`check_in_at`) e/ou a saída (`check_out_at`). A saída não pode ser antes da chegada nem no futuro; mandar a saída numa visita aberta a **fecha**. O administrador e o proprietário corrigem qualquer dia; o moderador e o financeiro, só a visita de hoje e com as datas dentro de hoje (ontem devolve `403`). A correção entra no [registro de atividades](/membros/registros-de-atividades) com quem a fez. *Papel mínimo: moderador (ou financeiro).*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `visit_id` | id | Sim | De `list_visits` ou `list_present` |
| `check_in_at` | data e hora | Não | ISO 8601 |
| `check_out_at` | data e hora | Não | ISO 8601 |

**Peça assim:** *"O Pedro esqueceu de marcar a saída: ele saiu às 18h. Feche a visita dele."*

## `delete_visit`

<span class="tool-kind tool-kind-confirm">Pede confirmação</span>

**Remover uma visita.** A visita sai das listas e dos números (uma aberta deixa de contar na lotação) e a remoção entra no registro de atividades. Não apaga o membro. *Papel mínimo: administrador.*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `visit_id` | id | Sim | De `list_visits` |

**Devolve:** na primeira chamada, o resumo e o código de confirmação.

## `check_guest_in`

<span class="tool-kind tool-kind-write">Altera</span>

**Registrar um visitante.** A equipe registra a chegada de quem **não tem conta**, com o membro que o recebe (o anfitrião, que precisa ter acesso ao espaço). A empresa e o telefone são pedidos ou recusados conforme a configuração do quiosque. É idempotente por **nome e anfitrião**: com a visita aberta, devolve `already_checked_in: true`. Se o espaço avisa os anfitriões, ele recebe [um e-mail](/espacos/presenca#e-mail-ao-residente). O visitante conta na lotação. *Papel mínimo: moderador (ou financeiro).*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id ou link | Sim | |
| `guest_name` | texto | Sim | O nome do visitante (até 100 caracteres) |
| `host_profile_id` | id | Sim | O membro que o recebe (`list_members`) |
| `guest_company` | texto | Não | A empresa |
| `guest_phone` | texto | Não | O telefone |

**Peça assim:** *"Registre o visitante Pedro Alves, da Acme, que veio ver a Ana."*

## `list_attendance_kiosks`

<span class="tool-kind tool-kind-read">Só consulta</span>

**Os quiosques.** Os aparelhos do espaço, ativos e revogados: nome, quem criou, quando, o último uso e o estado. **Nunca o link**, que só aparece quando é criado. *Papel mínimo: moderador (ou financeiro).*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id ou link | Sim | |

## `create_attendance_kiosk`

<span class="tool-kind tool-kind-write">Altera</span>

**Gerar o link de um quiosque.** Um por iPad ou local. Devolve `kiosk`, a `url` e um `warning`: a URL aparece **uma única vez** e é **secreta**, como uma senha. Quem a tem registra visitantes. O assistente pede à pessoa para abri-la no aparelho e não compartilhá-la; se perder, é revogar e gerar outra. *Papel mínimo: moderador (proprietário, administrador ou moderador; o financeiro não).*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id ou link | Sim | |
| `name` | texto | Sim | O nome do aparelho, até 80 caracteres (por exemplo, "Tablet da recepção") |

**Peça assim:** *"Gere o link do quiosque do iPad da recepção da Unidade Centro."*

## `revoke_attendance_kiosk`

<span class="tool-kind tool-kind-confirm">Pede confirmação</span>

**Revogar um quiosque.** O link para de funcionar **na hora** e não volta (gere outro). As visitas já registradas ficam. *Papel mínimo: moderador (proprietário, administrador ou moderador).*

| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `space` | id ou link | Sim | |
| `kiosk_id` | id | Sim | De `list_attendance_kiosks` |

**Devolve:** na primeira chamada, o resumo (o nome e o último uso do aparelho) e o código de confirmação.

## Relacionados

- [Presença](/espacos/presenca)
- [Ferramentas](/mcp/ferramentas)
- [Dinheiro e confirmação](/mcp/dinheiro-e-confirmacao)
- [Receitas](/mcp/receitas)
