# Trinks — how to use (mcp.ai)

Use Claude or ChatGPT with your Trinks salon, barbershop or spa: schedule, open slots, clients, revenue and commissions. Book, reschedule and cancel appointments by chat. Connect with the official Trinks API or your panel login.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_trinks?ms=1794515160000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `trinks_agendamento_cancelar`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/trinks`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/trinks/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/trinks/agendamento/cancelar` — CANCELA agendamentos na agenda REAL do salão, até 50 por chamada. Não tem volta: cancelado não pode mais ser editado nem mudar de status. Agendamento já pago não pode ser cancelado.
  - body: { agendamento_ids: integer[], quem_cancelou: string, motivo: string, account?: string }
- `POST https://api.mcp.ai/api/trinks/agendamento/confirmar` — CONFIRMA agendamentos na agenda REAL do salão (muda o status para confirmado), até 50 por chamada, com erro reportado por id. Já confirmado continua como está; agendamento já pago não muda de status. 
  - body: { agendamento_ids: integer[], account?: string }
- `POST https://api.mcp.ai/api/trinks/agendamento/criar` — CRIA agendamentos na agenda REAL do salão no Trinks (até 10 por chamada). Isto altera a agenda que a equipe e o cliente veem.
  - body: { agendamentos: object[], permitir_encaixe?: boolean, account?: string }
- `POST https://api.mcp.ai/api/trinks/agendamento/reagendar` — REAGENDA ou edita agendamentos existentes na agenda REAL do salão (até 10 por chamada): nova data e hora, outro profissional, outra duração, serviço, valor ou observação. Isto altera a agenda que a eq
  - body: { agendamentos: object[], permitir_encaixe?: boolean, account?: string }
- `POST https://api.mcp.ai/api/trinks/agendamentos` — Lê a agenda do salão no Trinks.
  - body: { data_inicio?: string, data_fim?: string, cliente_id?: integer, profissional_ids?: integer[], status?: string[], agendamento_ids?: integer[], max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/trinks/clientes` — Busca clientes do estabelecimento ou traz o cadastro completo.
  - body: { nome?: string, cpf?: string, email?: string, telefone?: string, cadastro_inicio?: string, cadastro_fim?: string, incluir_etiquetas?: boolean, pagina?: integer, cliente_ids?: integer[], account?: string }
- `POST https://api.mcp.ai/api/trinks/clientes/sem/visita` — Clientes sumidos: quem teve atendimento nos últimos janela_dias (padrão 180) mas não volta há pelo menos dias_sem_visita (padrão 60) e não tem nada marcado nos próximos 60 dias. Ordena pelos mais freq
  - body: { dias_sem_visita?: integer, janela_dias?: integer, limite?: integer, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/trinks/comissoes` — Comissões dos profissionais no período, com os mesmos valores do Relatório de Comissões do Trinks: total por profissional, por dia, e (com detalhar) cada item com serviço ou produto, cliente, valor ba
  - body: { profissional_ids: integer[], data_inicio: string, data_fim: string, criterio_data?: string, status_pagamento?: string, detalhar?: boolean, account?: string }
- `POST https://api.mcp.ai/api/trinks/conta/api` — Mostra a situação da API Trinks desta chave: o consumo do mês (cota total, já usado, saldo restante) e os estabelecimentos que a chave acessa, com o id de cada um.
  - body: { account?: string }
- `POST https://api.mcp.ai/api/trinks/disponibilidade` — Horários livres dos profissionais em um ou mais dias (até 7). Para cada profissional: horarios_vagos (inícios possíveis, de intervalo_minutos em intervalo_minutos) e intervalos_vagos (faixas livres, j
  - body: { datas: string[], servico_id?: integer, duracao_minutos?: integer, intervalo_minutos?: integer, profissional_ids?: integer[], incluir_sem_horario?: boolean, account?: string }
- `POST https://api.mcp.ai/api/trinks/estoque/movimentacoes` — Movimentações de estoque no período (até 31 dias): entradas, vendas, uso interno, perdas, ajustes e a baixa automática de produto usado em atendimento. Quantidade negativa nas saídas. Traz produto, pr
  - body: { data_inicio: string, data_fim: string, produto_ids?: integer[], profissional_ids?: integer[], tipo?: integer, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/trinks/lancamentos` — Lançamentos financeiros (receitas e despesas lançadas no financeiro do Trinks, contas a pagar e a receber), filtrados pela data de VENCIMENTO: descrição, categoria, valor, status de pagamento, data de
  - body: { data_inicio: string, data_fim: string, status_pagamento?: string, tipo?: string, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/trinks/list/accounts` — Lista os estabelecimentos Trinks conectados a este install (id da conexão, apelido e nome). Não chama a API.
  - body: { account?: string }
- `POST https://api.mcp.ai/api/trinks/produtos` — Produtos ativos com preço de venda e estoque (atual e mínimo, na unidade de medida do produto: um shampoo de 500 ml com 3 frascos aparece como 1500 ml). Estoque negativo = saída sem saldo.
  - body: { nome?: string, abaixo_do_minimo?: boolean, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/trinks/profissionais` — Lista os profissionais do estabelecimento (padrão: só ativos). Cada um tem dois ids: id (o do estabelecimento, usado em agenda, comissões e disponibilidade) e idProfissional (o cadastro geral, que apa
  - body: { status?: string, profissional_ids?: integer[], account?: string }
- `POST https://api.mcp.ai/api/trinks/resumo/faturamento` — Faturamento do período, já somado a partir das transações do caixa: total, número de transações, ticket médio, descontos, por forma de pagamento, por dia, serviços e produtos que mais faturaram e rece
  - body: { data_inicio: string, data_fim: string, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/trinks/resumo/ocupacao` — Taxa de ocupação da agenda no período (até 14 dias), no total e por profissional: minutos agendados ÷ (agendados + livres). Livres vem da disponibilidade de cada dia; agendados são os agendamentos não
  - body: { data_inicio: string, data_fim: string, profissional_ids?: integer[], max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/trinks/servicos` — Lista os serviços ativos do estabelecimento, em ordem de nome: id, nome, categoria, duração, preço de tabela, preço promocional de hoje e se o cliente vê no agendamento online. Filtros por trecho de n
  - body: { nome?: string, categoria?: string, somente_visiveis_cliente?: boolean, account?: string }
- `POST https://api.mcp.ai/api/trinks/transacoes` — Transações do caixa no período (pela data e hora do pagamento): total pago, descontos, troco, formas de pagamento, cliente e os serviços, produtos e pacotes de cada uma. Os profissionais aparecem pelo
  - body: { data_inicio: string, data_fim: string, incluir_estornos?: boolean, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/trinks/vendas` — Vendas de PRODUTO no período (pela data da venda): itens, quantidade, valor unitário, desconto, valor líquido, cliente, profissional comissionado e as formas de pagamento da transação. Serviços não en
  - body: { data_inicio: string, data_fim: string, incluir_estornos?: boolean, max_paginas?: integer, account?: string }

## Example prompts
- "How much did the salon make in October, by payment method and by professional?"
- "Which regular clients have not come back in over 60 days?"
- "Is there an open slot tomorrow afternoon for a haircut with Ana? If so, book Maria at 3pm"

## More
- Page: https://mcp.ai/trinks
- Agent spec (llms.txt): https://mcp.ai/trinks/llms.txt
- Postman collection: https://mcp.ai/trinks/postman.json
