@lionchat/mcp-server 0.4.6 → 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,20 +12,80 @@ Como interpretar cada um dos endpoints de relatório (`lionchat_reports_*`) e m
12
12
  86400 segundos → "24 horas" ou "1 dia"
13
13
  ```
14
14
 
15
- ## Endpoints disponíveis (19 total)
16
-
17
- ### 1. `lionchat_reports_summary` — Resumo geral
18
- **Use quando o usuário pedir:** "como tá o desempenho?", "resumo da semana", "visão geral"
19
-
20
- **Retorna:**
15
+ ## Mapeamento dos endpoints `lionchat_reports_*`
16
+
17
+ > ⚠️ **A numeração `_N` é gerada automaticamente e NÃO segue uma ordem lógica.** Use SEMPRE a tabela
18
+ > abaixo pra saber qual ferramenta chamar. Nunca chute pelo número.
19
+
20
+ | Ferramenta MCP | O que faz |
21
+ |---|---|
22
+ | `lionchat_reports_summary` | Resumo geral da conta (conversations, mensagens, tempos médios) com `previous` |
23
+ | `lionchat_reports_list` | Resumo POR AGENTE (summary/agent) |
24
+ | `lionchat_reports_list_1` | Resumo POR TIME (team) |
25
+ | `lionchat_reports_list_2` | Resumo POR INBOX |
26
+ | `lionchat_reports_list_3` | Resumo POR LABEL |
27
+ | `lionchat_reports_list_4` | Resumo POR CANAL (channel) |
28
+ | `lionchat_reports_list_5` | Série temporal / evolução (timeseries de um `metric`) |
29
+ | `lionchat_reports_list_6` | Resumo do BOT (bot_summary) |
30
+ | `lionchat_reports_list_7` | Exportação de AGENTES em CSV |
31
+ | `lionchat_reports_list_8` | Exportação de INBOXES em CSV |
32
+ | `lionchat_reports_list_9` | Exportação de LABELS em CSV |
33
+ | `lionchat_reports_list_10` | Exportação de TIMES em CSV |
34
+ | `lionchat_reports_list_11` | Lista de conversas do relatório (conversations) |
35
+ | `lionchat_reports_list_12` | Resumo de conversas em CSV (conversations_summary) |
36
+ | `lionchat_reports_list_13` | Conversation Traffic / tráfego por hora (heatmap, CSV) |
37
+ | `lionchat_reports_list_14` | Métricas do BOT detalhadas (bot_metrics) |
38
+ | `lionchat_reports_list_15` | Retrospectiva do ano (year_in_review) |
39
+ | `lionchat_reports_list_16` / `_17` | Relatórios em TEMPO REAL (live_reports: conversation_metrics / grouped) |
40
+
41
+ **Métricas correlatas (fora da família `reports_*`):**
42
+
43
+ | Ferramenta MCP | O que faz |
44
+ |---|---|
45
+ | `lionchat_csat_metrics` | Agregado de CSAT (contagem total + distribuição por nota) |
46
+ | `lionchat_csat_list` | Respostas CSAT individuais (paginadas) |
47
+ | `lionchat_csat_download` | CSV de CSAT |
48
+ | `lionchat_sla_metrics` | Agregado de SLA — **ENTERPRISE-ONLY** (total, falhas, hit_rate) |
49
+ | `lionchat_sla_list` | Conversas que estouraram SLA — **ENTERPRISE-ONLY** |
50
+ | `lionchat_sla_download` | CSV de SLA — **ENTERPRISE-ONLY** |
51
+
52
+ ---
53
+
54
+ ## Tabela "qual usar pra cada pergunta"
55
+
56
+ | Usuário pede... | Ferramenta |
57
+ |---|---|
58
+ | "resumo da semana", "como tá o desempenho?", "visão geral" | `lionchat_reports_summary` |
59
+ | "produtividade por atendente", "ranking de agentes" | `lionchat_reports_list` |
60
+ | "comparar times", "time A vs time B" | `lionchat_reports_list_1` |
61
+ | "qual canal tem mais demanda", "comparar WhatsApp vs Email" | `lionchat_reports_list_2` (inbox) ou `lionchat_reports_list_4` (tipo de canal) |
62
+ | "quantas conversas urgentes", "por etiqueta" | `lionchat_reports_list_3` |
63
+ | "evolução dia a dia", "mês a mês", "gráfico de linha" | `lionchat_reports_list_5` |
64
+ | "como tá o bot resolvendo", "% de handoff pra humano" | `lionchat_reports_list_6` ou `lionchat_reports_list_14` |
65
+ | "exportar planilha de agentes/inboxes/labels/times" | `_7` / `_8` / `_9` / `_10` (CSV) |
66
+ | "horário de pico", "quando tem mais demanda" | `lionchat_reports_list_13` |
67
+ | "quem tá online agora", "carga atual" | `lionchat_reports_list_16` / `_17` (live) |
68
+ | "retrospectiva do ano" | `lionchat_reports_list_15` |
69
+ | "satisfação", "CSAT", "nota dos clientes" | `lionchat_csat_metrics` |
70
+ | "SLA", "cumprimento de prazo" (se a conta tiver Enterprise) | `lionchat_sla_metrics` |
71
+
72
+ ---
73
+
74
+ ## Detalhe dos principais endpoints
75
+
76
+ ### `lionchat_reports_summary` — Resumo geral
77
+ **Use quando:** "como tá o desempenho?", "resumo da semana", "visão geral"
78
+
79
+ **Retorna (campos confirmados no código):**
21
80
  ```json
22
81
  {
23
82
  "conversations_count": 142,
24
83
  "incoming_messages_count": 1250,
25
84
  "outgoing_messages_count": 980,
26
- "resolutions_count": 98,
27
85
  "avg_first_response_time": 245, // segundos
28
86
  "avg_resolution_time": 7200, // segundos
87
+ "resolutions_count": 98,
88
+ "reply_time": 320, // segundos
29
89
  "previous": { ...mesma estrutura para comparativo... }
30
90
  }
31
91
  ```
@@ -33,109 +93,111 @@ Como interpretar cada um dos endpoints de relatório (`lionchat_reports_*`) e m
33
93
  **Parâmetros principais:**
34
94
  - `type`: `account` (padrão), `agent`, `inbox`, `label`, `team`
35
95
  - `since` / `until`: Unix timestamp (segundos) — período
36
- - `business_hours`: `true` excluí horários fora do expediente
37
-
38
- **Exemplo de uso:**
39
- ```
40
- since = 7 dias atrás
41
- until = agora
42
- type = account
43
- → retorna resumo dos últimos 7 dias da conta toda
44
- ```
96
+ - `business_hours`: `true` exclui horários fora do expediente
97
+ - `timezone_offset`: deslocamento de fuso (horas) usado no agrupamento
45
98
 
46
- ### 2. `lionchat_reports_list` — Por agente
99
+ ### `lionchat_reports_list` — Por agente
47
100
  **Use quando:** "produtividade por atendente", "ranking de agentes"
48
101
 
49
- Retorna array de métricas, uma por agente. Cada item:
102
+ Retorna array de métricas, **uma por usuário da conta**. Campos confirmados (e SÓ esses):
50
103
  ```json
51
104
  {
52
105
  "id": 6,
53
- "name": "Elvis",
54
106
  "conversations_count": 23,
55
- "avg_first_response_time": 180,
56
- "avg_resolution_time": 5400,
57
- "csat_score_average": 4.3,
58
- "online_at_total": 28800 // segundos online no período
107
+ "resolved_conversations_count": 18,
108
+ "avg_resolution_time": 5400, // segundos (pode vir null)
109
+ "avg_first_response_time": 180, // segundos (pode vir null)
110
+ "avg_reply_time": 320 // segundos (pode vir null)
59
111
  }
60
112
  ```
61
113
 
62
- ### 3. `lionchat_reports_list_1` — Por time
63
- **Use quando:** "comparar times", "como está o time Premium vs Standard"
114
+ > ⚠️ **Não existe `name`, `csat_score_average` nem `online_at_total` neste retorno.**
115
+ > - O campo é só `id` (id do agente). Para o nome, cruze com `lionchat_agents_list`.
116
+ > - **CSAT por agente:** use `lionchat_csat_list` com filtro `user_ids=<id>` e calcule a média.
117
+ > - **Tempo online / status:** use `lionchat_agent_availability` ou os live_reports (`_16`/`_17`).
64
118
 
65
- Mesma estrutura por team_id.
119
+ `_1` (time), `_2` (inbox), `_3` (label), `_4` (canal) seguem a mesma ideia de resumo agrupado,
120
+ trocando a chave de agrupamento.
66
121
 
67
- ### 4. `lionchat_reports_list_2` — Por inbox
68
- **Use quando:** "qual canal está com mais demanda", "comparar WhatsApp vs Email"
122
+ ### `lionchat_reports_list_5` — Série temporal (timeseries)
123
+ **Use quando:** "dia a dia da última semana", "evolução temporal", "gráfico de linha"
69
124
 
70
- Mesma estrutura por inbox_id.
125
+ Retorna pontos (data + valor) para UM `metric` por vez:
126
+ - `metric` (médias, em segundos): `avg_first_response_time`, `avg_resolution_time`, `reply_time`
127
+ - `metric` (contagens): `conversations_count`, `incoming_messages_count`, `outgoing_messages_count`, `resolutions_count`, `bot_resolutions_count`, `bot_handoffs_count`
128
+ - `group_by`: `hour`, `day`, `week`, `month`, `year`
129
+ - `since` / `until`: período (Unix timestamp em segundos)
130
+ - `business_hours`: `true` faz médias contarem só o horário de atendimento
131
+ - `timezone_offset`: deslocamento de fuso (horas) — afeta como os pontos são agrupados por dia/hora
71
132
 
72
- ### 5. `lionchat_reports_list_3` — Por label
73
- **Use quando:** "quantas conversas urgentes", "comparativo por label"
133
+ ### `lionchat_reports_list_6` — Resumo do Bot
134
+ **Use quando:** "como tá o bot resolvendo", "quantos handoffs pra humano"
74
135
 
75
- Mesma estrutura por label.
136
+ Retorna SOMENTE estes dois campos (não existe taxa pronta):
137
+ ```json
138
+ {
139
+ "bot_resolutions_count": 45,
140
+ "bot_handoffs_count": 12
141
+ }
142
+ ```
143
+ > A "taxa de resolução do bot" NÃO vem pronta. Se o usuário pedir, calcule:
144
+ > `bot_resolutions_count / (bot_resolutions_count + bot_handoffs_count)`.
76
145
 
77
- ### 6. `lionchat_reports_list_4` — Por canal
78
- **Use quando:** "WhatsApp vs Email vs Webchat"
146
+ ### `lionchat_reports_list_13` — Conversation Traffic (tráfego)
147
+ **Use quando:** "horário de pico", "quando tem mais demanda"
79
148
 
80
- Agrupa por `channel_type`.
149
+ Heatmap de volume por hora. Aceita `timezone_offset` (importante: sem ele o pico sai em UTC).
81
150
 
82
- ### 7. `lionchat_reports_list_5` — Relatórios detalhados
83
- **Use quando:** "dia a dia da última semana", "evolução temporal"
151
+ ### `lionchat_reports_list_16` / `_17` — Tempo real (live)
152
+ **Use quando:** "quem tá online agora", "carga atual", "conversas abertas no momento"
84
153
 
85
- Retorna timeseries (data + valor) para um metric específico:
86
- - `metric`: `conversations_count`, `incoming_messages_count`, `outgoing_messages_count`, `resolutions_count`, `avg_first_response_time`, `avg_resolution_time`, `reply_time`, `resolutions_count`
87
- - `group_by`: `day`, `week`, `month`, `year`
88
- - `since`/`until`: período
154
+ São os live_reports (`conversation_metrics` e a versão agrupada). Use estes — e não os resumos
155
+ históricos — quando o usuário quiser o agora.
89
156
 
90
- ### 8. `lionchat_reports_list_6` — Resumo do Bot
91
- **Use quando:** "como tá o bot resolvendo", "% de handoff pra humano"
157
+ ### `lionchat_csat_metrics` — CSAT agregado
158
+ **Use quando:** "satisfação", "nota média dos clientes", "CSAT"
92
159
 
160
+ Retorna SOMENTE estes campos (nem média, nem taxa de resposta vêm prontas):
93
161
  ```json
94
162
  {
95
- "bot_resolutions_count": 45,
96
- "bot_handoffs_count": 12,
97
- "bot_resolution_rate": 0.79
163
+ "total_count": 80, // total de respostas respondidas
164
+ "ratings_count": { "5": 50, "4": 18, "3": 8, "2": 2, "1": 2 },
165
+ "total_sent_messages_count": 210 // pesquisas CSAT enviadas no período
98
166
  }
99
167
  ```
168
+ > **Nota média** = `Σ(nota × ratings_count[nota]) / total_count`.
169
+ > No exemplo: (5×50 + 4×18 + 3×8 + 2×2 + 1×2) / 80 = 352/80 = **4,4**.
170
+ >
171
+ > **Taxa de resposta** = `total_count / total_sent_messages_count`.
172
+ > No exemplo: 80/210 = **38%**.
100
173
 
101
- ### 9. `lionchat_reports_list_7` — Conversation Traffic (tráfego)
102
- **Use quando:** "horário de pico", "quando tem mais demanda"
174
+ **Filtros aceitos:** `user_ids`, `inbox_id`, `team_id`, `rating`, `since`/`until`.
103
175
 
104
- Retorna heatmap por hora do dia ou dia da semana:
105
- ```json
106
- [
107
- { "hour": 9, "conversations_count": 18 },
108
- { "hour": 10, "conversations_count": 25 },
109
- ...
110
- ]
111
- ```
176
+ ### `lionchat_sla_metrics` — SLA agregado (ENTERPRISE-ONLY)
177
+ **Use quando:** "cumprimento de SLA", "quantos prazos estouraram"
112
178
 
113
- ### 10. `lionchat_reports_list_8` — Agente em tempo real
114
- **Use quando:** "quem tá online agora", "carga atual"
179
+ > ⚠️ **Pode não existir na conta.** SLA é recurso Enterprise. Se a chamada falhar/retornar vazio,
180
+ > informe ao usuário que o relatório de SLA não está disponível no plano dele.
115
181
 
182
+ Retorna:
116
183
  ```json
117
- [
118
- { "id": 6, "name": "Elvis", "status": "online", "open_count": 5, "unattended_count": 2 }
119
- ]
184
+ {
185
+ "total_applied_slas": 200,
186
+ "number_of_sla_misses": 9,
187
+ "hit_rate": "95.5%" // STRING com "%", NÃO uma fração
188
+ }
120
189
  ```
190
+ > O `hit_rate` já vem calculado como string (ex.: `"95.5%"`, ou `"100%"` quando não há falhas).
191
+ > Não divida nada — apenas exiba o valor.
121
192
 
122
- ### 11-15. CSAT
123
- - `lionchat_csat_metrics`: agregação (média, distribuição)
124
- - `lionchat_csat_list`: respostas individuais
125
- - `lionchat_csat_download`: CSV pra download
126
-
127
- ### 16-18. SLA
128
- - `lionchat_sla_metrics`: hits / breaches por período
129
- - `lionchat_sla_list`: SLAs aplicadas a conversas
130
- - `lionchat_sla_download`: CSV
131
-
132
- ### 19. `lionchat_reports_list_9` — Aggregated agent overview
133
- **Use quando:** combinação de tudo: produtividade + CSAT + SLA por agente
193
+ **Filtros aceitos:** `inbox_id`, `team_id`, `sla_policy_id`, `label_list`, `assigned_agent_id`, `since`/`until`.
134
194
 
135
195
  ## Padrões de interpretação
136
196
 
137
197
  ### Comparando períodos
138
- Quando passa `since/until`, a maioria dos endpoints retorna `previous` com o período anterior de mesmo tamanho:
198
+ O `previous` (período anterior de mesmo tamanho) é retornado pelo `lionchat_reports_summary` e pelo
199
+ resumo do bot (`_6`). Os resumos agrupados (agente/time/inbox/label/canal) e a timeseries NÃO trazem
200
+ `previous` — pra comparar, chame o endpoint duas vezes (período atual e período anterior):
139
201
 
140
202
  ```
141
203
  Esta semana: 142 conversas
@@ -154,11 +216,14 @@ Semana anterior: 120 conversas
154
216
  ### CSAT
155
217
  - Score: 1-5 estrelas
156
218
  - Médias típicas: 4.0+ é bom, 3.5-4.0 é OK, abaixo de 3.5 é alerta
157
- - `csat_response_rate`: % de conversas resolvidas que ganharam resposta CSAT (taxa baixa = pouco feedback)
219
+ - A média e a taxa de resposta NÃO vêm prontas — calcule a partir de `ratings_count`, `total_count`
220
+ e `total_sent_messages_count` (fórmulas na seção do `lionchat_csat_metrics`)
221
+ - Taxa de resposta = `total_count / total_sent_messages_count` (baixa = pouco feedback)
158
222
 
159
- ### SLA
160
- - `breach_count` alto = problema sério, agentes não cumprindo prazos
161
- - Sempre olhar `hit_rate` (hits / (hits + breaches)) — meta 95%+
223
+ ### SLA (Enterprise-only)
224
+ - `number_of_sla_misses` alto = problema sério, agentes não cumprindo prazos
225
+ - `hit_rate` já vem pronto como STRING com `%` (ex.: `"95.5%"`) — só exibir, meta 95%+
226
+ - Se a conta não tem Enterprise, o relatório de SLA simplesmente não existe
162
227
 
163
228
  ## Workflows comuns
164
229
 
@@ -174,8 +239,8 @@ Semana anterior: 120 conversas
174
239
 
175
240
  ### "Quem tá com gargalo"
176
241
  ```
177
- 1. reports_list_8 (real-time) → quem tá com muita conversa aberta
178
- 2. reports_list (por agente, últimos 7d) → quem tá com avg_first_response alto
242
+ 1. reports_list_16/_17 (live) → quem tá com muita conversa aberta agora
243
+ 2. reports_list (por agente, últimos 7d) → quem tá com avg_first_response_time alto
179
244
  3. Cruzar: agente sobrecarregado E com tempo médio alto
180
245
  ```
181
246
 
@@ -184,11 +249,23 @@ Semana anterior: 120 conversas
184
249
  reports_list_5 com group_by=month, metric=conversations_count, since=12 meses atrás
185
250
  ```
186
251
 
252
+ ### "Tempo por etapa do funil" / "conversão de funil"
253
+ > ⚠️ NÃO existe endpoint nativo de relatório de funil/Kanban. Componha no client-side:
254
+ ```
255
+ 1. kanban_items_list (do funnel desejado) → traz cada card com funnel_stage e stage_entered_at
256
+ 2. Agrupe por funnel_stage e calcule:
257
+ - tempo por etapa: diferença entre stage_entered_at de etapas consecutivas do mesmo card
258
+ - conversão: nº de cards que chegaram em cada etapa / nº de cards que entraram na anterior
259
+ 3. Apresente como tabela/etapas — avisando que é um cálculo composto, não um relatório oficial
260
+ ```
261
+
187
262
  ## Pegadinhas comuns
188
263
 
189
- ### ⚠️ Comparar agente "online_at_total"
190
- Tempo online inclui breaks, almoço, etc. Pra produtividade real, prefira:
191
- - `conversations_count / online_at_total` = conversas por hora online
264
+ ### ⚠️ O relatório por agente NÃO traz CSAT nem tempo online
265
+ `lionchat_reports_list` (por agente) retorna só `id`, contagens e tempos médios.
266
+ - Para **CSAT por agente**: `lionchat_csat_list` com `user_ids=<id>` e calcule a média.
267
+ - Para **status/tempo online**: `lionchat_agent_availability` ou live_reports (`_16`/`_17`).
268
+ - Para o **nome** do agente: cruze o `id` com `lionchat_agents_list`.
192
269
 
193
270
  ### ⚠️ Avg time pode ser enganador
194
271
  Mediana é mais representativa que média (1 conversa que durou 5 dias puxa tudo).
@@ -198,8 +275,10 @@ Mediana é mais representativa que média (1 conversa que durou 5 dias puxa tudo
198
275
  A maioria dos endpoints é eventually consistent (cache 5min). Pra info real-time use `conversations_meta`.
199
276
 
200
277
  ### ⚠️ Comparativos de período
201
- `previous` tem o MESMO tamanho do período atual. Se since-until = 7d, previous = 7d antes.
202
- NÃO compare manualmente "esse mês vs mês passado" — passe `since/until` com mês inteiro e use o `previous` retornado.
278
+ No `lionchat_reports_summary` (e no resumo do bot), o `previous` já vem com o MESMO tamanho do período
279
+ atual. Se since-until = 7d, previous = 7d antes. Pra esses dois, passe `since/until` com o período
280
+ inteiro e use o `previous` retornado em vez de comparar na mão.
281
+ Nos demais (agente/time/inbox/label/canal e timeseries) NÃO há `previous` — chame duas vezes.
203
282
 
204
283
  ## Quando o usuário pede algo MUITO específico que não existe num endpoint
205
284