@lionchat/mcp-server 0.5.2 → 0.5.4

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.
@@ -141,7 +141,7 @@ Webhooks embutidos NÃO aparecem na listagem de integrações standalone; exclui
141
141
  }
142
142
  ```
143
143
 
144
- **`validation` válidos:** `any`, `options`, `varied_options`, `regex`, `email`, `phone`, `number`.
144
+ **`validation` válidos:** `any`, `options`, `varied_options`, `regex`, `email`, `phone`, `number`, `cpf`, `cnpj`, `cpf_cnpj`, `date`, `rg`, `profession`. As validações cadastrais (`cpf`/`cnpj`/`cpf_cnpj`/`date`/`rg`/`profession`) conferem o formato e, no CPF/CNPJ, o dígito verificador — resposta inválida volta pra `invalidMessage` (respeita `maxRetries`).
145
145
 
146
146
  **`options` normaliza a resposta (2026-06-16):** a comparação com `acceptedOptions` é feita sem acento e sem maiúscula (`I18n.transliterate` + downcase + strip nos dois lados). "São Paulo", "sao paulo" e "SAO PAULO" casam todos.
147
147
 
@@ -161,12 +161,22 @@ Webhooks embutidos NÃO aparecem na listagem de integrações standalone; exclui
161
161
  - `contact_name` — sobrescreve o nome do contato
162
162
  - `contact_email` — sobrescreve o email do contato
163
163
  - `contact_phone` — sobrescreve o telefone do contato
164
+ - `contact_cpf` — campo cadastral CPF (exige `validation: "cpf"`)
165
+ - `contact_cnpj` — campo cadastral CNPJ (exige `validation: "cnpj"`)
166
+ - `contact_document` — CPF ou CNPJ, decide pelo nº de dígitos (exige `validation: "cpf_cnpj"`)
167
+ - `contact_birthdate` — data de nascimento (exige `validation: "date"`; cliente digita dd/mm/aaaa, salva ISO)
168
+ - `contact_rg` — campo cadastral RG (exige `validation: "rg"`)
169
+ - `contact_profession` — campo cadastral Profissão (exige `validation: "profession"`)
164
170
  - `contact_attr` — custom attribute do CONTATO (precisa de `saveAttrKey`)
165
171
  - `conversation_attr` — custom attribute da CONVERSA (precisa de `saveAttrKey`)
166
172
  - `""` — não salva
167
173
 
174
+ **Campos cadastrais (2026-06):** os destinos `contact_cpf/cnpj/document/birthdate/rg/profession` gravam pelo `CadastralAttributesService` (valida, normaliza e RESPEITA imutabilidade — campo sensível já preenchido NÃO é sobrescrito). Cada um só funciona com a validação correspondente (mesma regra do `allowedSaveTargets` da UI). No editor visual eles só aparecem quando a validação bate.
175
+
168
176
  **NÃO existem** `attribute` nem `contact_attribute` — use `conversation_attr` / `contact_attr`.
169
177
 
178
+ **Agrupar mensagens picadas (debounce, 2026-06):** opcional `groupInputsSeconds` (Integer; `0`/ausente = desligado; ex. 10–40). Quando > 0, o flow espera esse tempo após cada mensagem do cliente, concatena os balões num texto só e só então valida; cada nova mensagem reinicia o relógio. Útil quando o cliente quebra a resposta em vários balões. Ex.: `"data": { ..., "validation": "cpf", "saveTo": "contact_cpf", "groupInputsSeconds": 15 }`.
179
+
170
180
  **Salvar e-mail/telefone/nome do contato com segurança (2026-06-16):** o valor é normalizado antes de gravar (telefone → E.164 via `+55`; e-mail → strip). O cadastro do contato REVERTE silenciosamente um e-mail/telefone inválido (não dá erro, mas não muda). Por isso os destinos `contact_email`/`contact_phone`/`contact_name` SÓ devem ser usados com a validação que combina:
171
181
  - `saveTo: "contact_email"` → use `validation: "email"`
172
182
  - `saveTo: "contact_phone"` → use `validation: "phone"`
@@ -201,6 +211,20 @@ No editor visual esses destinos só aparecem quando a validação bate (computed
201
211
  }
202
212
  ```
203
213
 
214
+ **Agrupar várias regras numa saída — E / OU (2026-06):** cada item de `conditions` (cada saída `cond_N`) pode, em vez de uma regra plana, agrupar VÁRIAS regras com `rules[]` + `logic`:
215
+
216
+ ```json
217
+ { "id": "c1", "label": "Cliente do Centro VIP", "logic": "and", "rules": [
218
+ { "field": "contact.custom_attribute.bairro", "operator": "contains", "value": "centro" },
219
+ { "field": "contact.custom_attribute.plano", "operator": "equal", "value": "premium" }
220
+ ] }
221
+ ```
222
+
223
+ - `logic`: `"and"` (todas têm que ser verdadeiras) ou `"or"` (basta uma). Ausente = `"and"`.
224
+ - Cada item de `rules[]` tem a MESMA forma de uma regra plana (`field`/`operator`/`value`/`values`/`attr_key`/`attrSource`/`funnel_id`/`stage`...). Limite: 10 regras por saída.
225
+ - **Retrocompat:** uma saída SEM `rules` (só `field`/`operator`/`value` direto) continua valendo = grupo de 1 regra. Pode misturar saídas planas e agrupadas no mesmo node.
226
+ - `label` é o NOME (opcional) da saída — só cosmético, aparece no rótulo do canvas. NÃO afeta roteamento (continua por ÍNDICE `cond_N`, first-match-wins). As regras de um grupo podem ser de tipos diferentes (atributo + status + etiqueta + SLA...).
227
+
204
228
  **ATENÇÃO — atributo customizado é SINGULAR:** `contact.custom_attribute.X` e `conversation.custom_attribute.X` (também `account.custom_attribute.X`). Usar plural `custom_attributes` resolve VAZIO — vale tanto no `field` da condição quanto em mensagens/variáveis `{{...}}`.
205
229
 
206
230
  **Dados cadastrais — forma curta é a canônica (2026-06):** `{{contact.cpf}}`, `{{contact.cnpj}}`, `{{contact.rg}}`, `{{contact.address.number}}`, `{{contact.address.street}}` etc. O backend traduz internamente pra `contact.cadastral.*` (flows antigos com a forma longa continuam resolvendo). NÃO use `contact.attributes.cpf` nem `contact.custom_attribute.cpf` — cadastral NÃO é custom attribute.
@@ -226,6 +250,7 @@ No editor visual esses destinos só aparecem quando a validação bate (computed
226
250
  | `kanban_exists` / `kanban_in_stage` / `kanban_won` / `kanban_lost` | card no funil (usa `funnel_id` + `stage`) |
227
251
  | `card_attr_equals` / `card_attr_contains` | atributo do card (`attrSource: 'card'` + `attr_key`) |
228
252
  | `pagetrack_visited` / `pagetrack_event` | LionTrack |
253
+ | `sla_check` | status do SLA da conversa (usa `value` = código fixo; ver abaixo) |
229
254
 
230
255
  **Restrição por TIPO de atributo (a UI só oferece um subconjunto, e é o que faz sentido):**
231
256
  - **Texto/string:** `equal`, `not_equal`, `contains`, `not_contains`, `starts_with`, `ends_with`, `is_empty`, `is_not_empty`
@@ -234,6 +259,19 @@ No editor visual esses destinos só aparecem quando a validação bate (computed
234
259
 
235
260
  Use operador numérico (`greater_than`, `less_than`, `number_range`) SÓ em atributo de tipo número.
236
261
 
262
+ **SLA — operador `sla_check` (2026-06):** verifica se a conversa está dentro/fora do prazo de SLA. A regra NÃO usa `field`, só `value` (código fixo):
263
+
264
+ | `value` | Verdadeiro quando |
265
+ |---|---|
266
+ | `frt_breached` / `frt_ok` | primeira resposta estourou / dentro do prazo |
267
+ | `nrt_breached` / `nrt_ok` | próxima resposta estourou / dentro do prazo |
268
+ | `rt_breached` / `rt_ok` | resolução estourou / dentro do prazo |
269
+ | `has_sla` / `no_sla` | tem / não tem política de SLA aplicada |
270
+
271
+ Ex.: `{ "operator": "sla_check", "value": "frt_breached" }`. "Estourado" = o monitor de SLA registrou o furo (job periódico, não em tempo real). As opções `_ok` exigem que a conversa TENHA uma política de SLA aplicada (sem política, só `has_sla`/`no_sla` dão resultado). Combina com E/OU (ex.: `sla_check frt_breached` **E** status aberto).
272
+
273
+ **Horário comercial — `business_hours` / `outside_business_hours` (campos próprios):** além do operador, a regra aceita `days` (array de dias da semana, 0=domingo..6=sábado; ausente = todos os dias), `start_hour` e `end_hour` (0-23; padrão 9 e 18). Ex.: `{ "operator": "business_hours", "days": [1,2,3,4,5], "start_hour": 9, "end_hour": 18 }` = seg–sex, 9h–18h.
274
+
237
275
  **Handles que SAEM:** `cond_0`, `cond_1`, `cond_2`, ... (UM POR CONDIÇÃO, pela ordem do array — NÃO use o `id` da condição) + `default` (quando nenhuma bate).
238
276
 
239
277
  **ATENÇÃO — lógica first-match-wins (if / elsif):** as condições são avaliadas em ordem e PARA na primeira que bate. A ordem do array importa. O handle é `cond_INDEX` baseado na posição, NÃO o `id` da condição. Se `conditions[0].id = "vip"`, o handle ainda é `cond_0`.
@@ -480,6 +480,36 @@
480
480
 
481
481
  **Lembretes:** em `varied_options` o handle é `option_<id do grupo>` (não por termo); use `matchType: "equals"` quando um termo curto colidiria (ex: "1" casando "12" com `contains`). Pra salvar telefone use `validation: "phone"` + `saveTo: "contact_phone"`.
482
482
 
483
+ ## 15. Condição agrupada (E/OU) + SLA — escalar atrasados
484
+
485
+ **Caso:** quando a conversa furou o SLA de primeira resposta **E** ainda está aberta, escala pro supervisor; quem está no prazo segue o fluxo normal. Mostra três recursos novos: regras agrupadas (`rules`/`logic`), o operador `sla_check` e o nome de saída (`label`).
486
+
487
+ ```json
488
+ {
489
+ "nodes": [
490
+ { "id": "start", "type": "start", "position": { "x": 50, "y": 300 }, "data": { "label": "Início", "trigger": "conversation_created" } },
491
+ { "id": "n2", "type": "condition", "position": { "x": 370, "y": 300 }, "data": { "label": "Atrasado?", "conditions": [
492
+ { "id": "c1", "label": "SLA estourado e aberta", "logic": "and", "rules": [
493
+ { "operator": "sla_check", "value": "frt_breached" },
494
+ { "field": "conversation.status", "operator": "equal", "value": "open" }
495
+ ] }
496
+ ] } },
497
+ { "id": "n3", "type": "action", "position": { "x": 690, "y": 180 }, "data": { "label": "Etiqueta Atrasado", "actionType": "add_conversation_label", "labels": ["atrasado"] } },
498
+ { "id": "n4", "type": "send_message", "position": { "x": 690, "y": 420 }, "data": { "label": "Segue normal", "messageType": "text", "content": "Obrigado por aguardar! Em que posso ajudar?" } },
499
+ { "id": "end", "type": "end", "position": { "x": 1010, "y": 300 }, "data": { "label": "Fim" } }
500
+ ],
501
+ "edges": [
502
+ { "id": "e1", "source": "start", "target": "n2" },
503
+ { "id": "e2", "source": "n2", "sourceHandle": "cond_0", "target": "n3" },
504
+ { "id": "e3", "source": "n2", "sourceHandle": "default", "target": "n4" },
505
+ { "id": "e4", "source": "n3", "target": "end" },
506
+ { "id": "e5", "source": "n4", "target": "end" }
507
+ ]
508
+ }
509
+ ```
510
+
511
+ **Lembretes:** a saída agrupada continua sendo `cond_0` (uma saída por item de `conditions`, não por regra). `sla_check` só dá resultado de prazo se a conversa tiver uma Política de SLA aplicada; senão use `has_sla`/`no_sla`. Para "OU" troque `"logic": "and"` por `"or"`.
512
+
483
513
  ---
484
514
 
485
515
  ## Como usar este catálogo
package/dist/tools.js CHANGED
@@ -332,14 +332,20 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
332
332
  ▸ wait_response
333
333
  data: {
334
334
  label, waitTime, waitUnit: "minutes"|"seconds"|"hours",
335
- validation: "any"|"number"|"email"|"phone"|"options"|"varied_options"|"regex",
335
+ groupInputsSeconds: 0|10|15|20|25|30|40, // 0=off (padrao). Agrupa baloes picados do cliente antes de validar (debounce)
336
+ validation: "any"|"number"|"email"|"phone"|"options"|"varied_options"|"regex"|"cpf"|"cnpj"|"cpf_cnpj"|"date"|"rg"|"profession",
336
337
  acceptedOptions: ["1","2"], // se validation='options'
337
338
  optionGroups: [{ id, terms:["sim","claro"], matchType:"contains"|"equals" }], // se validation='varied_options'
338
339
  regexPattern, // se validation='regex'
339
340
  invalidMessage, maxRetries,
340
- saveTo: "variable"|"contact_name"|"contact_email"|"contact_phone"|"contact_attr"|"conversation_attr"|"",
341
+ saveTo: "variable"|"contact_name"|"contact_email"|"contact_phone"|"contact_cpf"|"contact_cnpj"|"contact_document"|"contact_birthdate"|"contact_rg"|"contact_profession"|"contact_attr"|"conversation_attr"|"",
341
342
  saveVariable, saveAttrKey // saveAttrKey obrigatorio p/ contact_attr e conversation_attr
342
343
  }
344
+ CPF/CNPJ validam digito verificador (documento falso -> invalidMessage). Alvos cadastrais so com a validation
345
+ correspondente: cpf=>contact_cpf, cnpj=>contact_cnpj, cpf_cnpj=>contact_document (decide pelos digitos),
346
+ date=>contact_birthdate (dd/mm/aaaa->ISO), rg=>contact_rg, profession=>contact_profession. Campo cadastral
347
+ ja preenchido NAO e sobrescrito (imutavel). saveTo contact_attr/conversation_attr: se o atributo tiver tipo
348
+ (number/currency/percent/date/list ou text+regex), a resposta tambem e validada/formatada por esse tipo.
343
349
  saveTo "attribute"/"contact_attribute" NAO EXISTEM — nao salvam nada.
344
350
  TIMEOUT DISPARA DE VERDADE (corrigido 2026-06-09): waitTime estourou -> handle "timeout"
345
351
  (ou "option_{val}_timeout" no modo options). Sempre ligue um edge no timeout.
@@ -357,14 +363,22 @@ flow_data tem o formato Vue Flow: { nodes: [...], edges: [...] }.
357
363
  data: { label, conditions: [
358
364
  { id, label, field, operator, value }
359
365
  ]}
366
+ Agrupar E/OU: cada saida pode trocar a regra plana por rules[]+logic:
367
+ { id, label, logic: "and"|"or", rules: [ {field,operator,value}, ... ] }
368
+ logic ausente = "and"; ate 10 regras por saida; sem rules = grupo de 1 (retrocompat).
369
+ label = nome OPCIONAL da saida (cosmetico, aparece no canvas; NAO muda roteamento).
370
+ As regras de um grupo podem ser de tipos diferentes (atributo + status + etiqueta + SLA...).
360
371
  Handles: "cond_0", "cond_1", ... (POSICAO no array, NAO o id da condicao!) + "default".
361
372
  First-match-wins: avalia em ordem e PARA na primeira que bate.
362
373
  Operadores: equal/not_equal, contains/not_contains, starts_with/ends_with,
363
374
  is_empty/is_not_empty (NAO existe is_present/is_blank), greater_than/less_than,
364
375
  number_range ("min-max"), regex, equal_any/contains_any (values[]),
365
- business_hours/outside_business_hours, can_reply/can_reply_closed,
366
- conversation_has_agent/no_agent, contact_has_label/conversation_has_label,
367
- kanban_exists/kanban_in_stage/kanban_won/kanban_lost, pagetrack_visited/pagetrack_event.
376
+ business_hours/outside_business_hours (campos opcionais days[0=dom..6=sab]/start_hour/end_hour),
377
+ can_reply/can_reply_closed, conversation_has_agent/no_agent,
378
+ contact_has_label/conversation_has_label,
379
+ kanban_exists/kanban_in_stage/kanban_won/kanban_lost, pagetrack_visited/pagetrack_event,
380
+ sla_check (SO value, codigo fixo: frt_breached/frt_ok/nrt_breached/nrt_ok/rt_breached/rt_ok/has_sla/no_sla;
381
+ frt=primeira resp, nrt=proxima, rt=resolucao; _ok exige politica de SLA aplicada).
368
382
  Operador numerico SO em atributo numero.
369
383
 
370
384
  ▸ action
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/endpoints.json CHANGED
@@ -1055,7 +1055,7 @@
1055
1055
  "location": "query",
1056
1056
  "required": false,
1057
1057
  "query_name": "labels[]",
1058
- "description": "Labels (tags) — array de títulos"
1058
+ "description": "Labels (tags) — array de titulos. Conta conversas marcadas com a etiqueta E conversas cujo CONTATO tem a etiqueta (uniao)."
1059
1059
  }
1060
1060
  ],
1061
1061
  "returns": "{ meta: { mine_count, assigned_count, unassigned_count, all_count } }",
@@ -1122,7 +1122,7 @@
1122
1122
  "location": "query",
1123
1123
  "required": false,
1124
1124
  "query_name": "labels[]",
1125
- "description": "Labels (tags) — array de títulos"
1125
+ "description": "Labels (tags) — array de titulos. Traz conversas marcadas com a etiqueta E conversas cujo CONTATO tem a etiqueta (uniao). Cada conversa retorna 'labels' (da conversa) e 'contact_labels' (do contato)."
1126
1126
  },
1127
1127
  {
1128
1128
  "name": "sort_by",
@@ -2063,6 +2063,13 @@
2063
2063
  "location": "query",
2064
2064
  "required": false,
2065
2065
  "description": "Filtros estruturados aplicados aos resultados de CARDS. JSON-string de condicoes no formato do endpoint /filter correspondente (ex: [{\"attribute_key\":\"status\",\"filter_operator\":\"equal_to\",\"values\":[\"open\"]}]). Cap 10 condicoes; payload invalido = 422"
2066
+ },
2067
+ {
2068
+ "name": "favorited",
2069
+ "type": "boolean",
2070
+ "location": "query",
2071
+ "required": false,
2072
+ "description": "Apenas mensagens favoritadas (true). Favorito GLOBAL — vale para todos os atendentes."
2066
2073
  }
2067
2074
  ],
2068
2075
  "returns": "payload (array de mensagens, geralmente 25 resultados)",
@@ -2077,6 +2084,39 @@
2077
2084
  "lionchat_conversations_messages_update"
2078
2085
  ]
2079
2086
  },
2087
+ {
2088
+ "id": "lionchat_conversations_messages_toggle_favorite",
2089
+ "method": "POST",
2090
+ "path": "/api/v1/accounts/{account_id}/conversations/{conversation_id}/messages/{id}/toggle_favorite",
2091
+ "title": "Favoritar/Desfavoritar Mensagem",
2092
+ "description": "Inverte o estado de favorita de uma mensagem (favorito GLOBAL — todos os atendentes veem a mesma estrela; atualiza em tempo real). Toggle puro: nao recebe corpo, so alterna. Use o filtro favorited=true na busca de mensagens para listar as favoritadas.",
2093
+ "category": "Mensagens",
2094
+ "params": [
2095
+ {
2096
+ "name": "conversation_id",
2097
+ "type": "integer",
2098
+ "location": "path",
2099
+ "required": true,
2100
+ "description": "Display ID da conversa"
2101
+ },
2102
+ {
2103
+ "name": "id",
2104
+ "type": "integer",
2105
+ "location": "path",
2106
+ "required": true,
2107
+ "description": "ID da mensagem"
2108
+ }
2109
+ ],
2110
+ "returns": "Mensagem serializada com o novo estado em 'favorited' (booleano)",
2111
+ "common_use_cases": [
2112
+ "Marcar uma mensagem importante para todos os atendentes",
2113
+ "Desfavoritar uma mensagem"
2114
+ ],
2115
+ "related_tools": [
2116
+ "lionchat_conversations_messages_search",
2117
+ "lionchat_conversations_messages_list"
2118
+ ]
2119
+ },
2080
2120
  {
2081
2121
  "id": "lionchat_conversations_messages_create_1",
2082
2122
  "method": "POST",
@@ -7504,7 +7544,7 @@
7504
7544
  "method": "GET",
7505
7545
  "path": "/api/v1/accounts/{account_id}/search",
7506
7546
  "title": "Busca Global",
7507
- "description": "Busca global por texto (conversas, contatos, mensagens, artigos) — sempre retorna todos os tipos. Para um tipo unico use /search/conversations|contacts|messages.\n\nNOVO (2026-06): 'q' aceita multiplos termos (espacos = E/AND, cap 5; cada termo precisa bater) e dados cadastrais (CPF/CNPJ/RG por digitos, ignora pontuacao).",
7547
+ "description": "Busca global por texto (conversas, contatos, mensagens, artigos) — sempre retorna todos os tipos. Para um tipo unico use /search/conversations|contacts|messages.\n\nNOVO (2026-06): 'q' aceita multiplos termos (espacos = E/AND, cap 5; cada termo precisa bater) e dados cadastrais (CPF/CNPJ/RG por digitos, ignora pontuacao). Sempre retorna todos os tipos: conversations, contacts, messages, articles e kanban_items. Mensagens trazem previous_message/next_message.",
7508
7548
  "category": "Busca",
7509
7549
  "params": [
7510
7550
  {
@@ -7571,7 +7611,7 @@
7571
7611
  "description": "Filtros estruturados aplicados aos resultados de CARDS. JSON-string de condicoes no formato do endpoint /filter correspondente (ex: [{\"attribute_key\":\"status\",\"filter_operator\":\"equal_to\",\"values\":[\"open\"]}]). Cap 10 condicoes; payload invalido = 422"
7572
7612
  }
7573
7613
  ],
7574
- "returns": "payload (array de resultados de busca, geralmente 25 resultados)",
7614
+ "returns": "Resultado por tipo: conversations, contacts, messages, articles e kanban_items (cards do Kanban). Cada mensagem inclui previous_message/next_message (contexto vizinho).",
7575
7615
  "common_use_cases": [
7576
7616
  "Localizar resultado de busca pelo nome",
7577
7617
  "Buscar pelo email/telefone parcial",
@@ -10755,11 +10795,60 @@
10755
10795
  "category": "Ofertas",
10756
10796
  "params": [
10757
10797
  {
10758
- "name": "offer",
10759
- "type": "object",
10798
+ "name": "title",
10799
+ "type": "string",
10760
10800
  "location": "body",
10761
10801
  "required": true,
10762
- "description": "Wrapper com { title, value, currency, type (product/service), description, prices: [{label, value, currency, description, checkout_url}], links: [{label, url}], image }. value auto-derivado do menor prices[].value quando prices presente."
10802
+ "description": "Titulo da oferta/produto"
10803
+ },
10804
+ {
10805
+ "name": "value",
10806
+ "type": "number",
10807
+ "location": "body",
10808
+ "required": false,
10809
+ "description": "Valor base"
10810
+ },
10811
+ {
10812
+ "name": "currency",
10813
+ "type": "string",
10814
+ "location": "body",
10815
+ "required": false,
10816
+ "description": "Moeda (ex: BRL)"
10817
+ },
10818
+ {
10819
+ "name": "image",
10820
+ "type": "string",
10821
+ "location": "body",
10822
+ "required": false,
10823
+ "description": "URL da imagem"
10824
+ },
10825
+ {
10826
+ "name": "type",
10827
+ "type": "string",
10828
+ "location": "body",
10829
+ "required": false,
10830
+ "description": "Tipo da oferta"
10831
+ },
10832
+ {
10833
+ "name": "description",
10834
+ "type": "string",
10835
+ "location": "body",
10836
+ "required": false,
10837
+ "description": "Descricao da oferta"
10838
+ },
10839
+ {
10840
+ "name": "prices",
10841
+ "type": "array",
10842
+ "location": "body",
10843
+ "required": false,
10844
+ "description": "Lista de precos/planos: [{label,value,currency,description,checkout_url}]"
10845
+ },
10846
+ {
10847
+ "name": "links",
10848
+ "type": "array",
10849
+ "location": "body",
10850
+ "required": false,
10851
+ "description": "Lista de links: [{label,url}]"
10763
10852
  }
10764
10853
  ],
10765
10854
  "returns": "oferta criado (com novo ID)",
@@ -10811,11 +10900,60 @@
10811
10900
  "description": "ID da oferta"
10812
10901
  },
10813
10902
  {
10814
- "name": "offer",
10815
- "type": "object",
10903
+ "name": "title",
10904
+ "type": "string",
10816
10905
  "location": "body",
10817
- "required": true,
10818
- "description": "Wrapper com { title, value, currency, type, description, prices, links, image, remove_image }. Todos os campos opcionais."
10906
+ "required": false,
10907
+ "description": "Titulo da oferta/produto"
10908
+ },
10909
+ {
10910
+ "name": "value",
10911
+ "type": "number",
10912
+ "location": "body",
10913
+ "required": false,
10914
+ "description": "Valor base"
10915
+ },
10916
+ {
10917
+ "name": "currency",
10918
+ "type": "string",
10919
+ "location": "body",
10920
+ "required": false,
10921
+ "description": "Moeda (ex: BRL)"
10922
+ },
10923
+ {
10924
+ "name": "image",
10925
+ "type": "string",
10926
+ "location": "body",
10927
+ "required": false,
10928
+ "description": "URL da imagem"
10929
+ },
10930
+ {
10931
+ "name": "type",
10932
+ "type": "string",
10933
+ "location": "body",
10934
+ "required": false,
10935
+ "description": "Tipo da oferta"
10936
+ },
10937
+ {
10938
+ "name": "description",
10939
+ "type": "string",
10940
+ "location": "body",
10941
+ "required": false,
10942
+ "description": "Descricao da oferta"
10943
+ },
10944
+ {
10945
+ "name": "prices",
10946
+ "type": "array",
10947
+ "location": "body",
10948
+ "required": false,
10949
+ "description": "Lista de precos/planos: [{label,value,currency,description,checkout_url}]"
10950
+ },
10951
+ {
10952
+ "name": "links",
10953
+ "type": "array",
10954
+ "location": "body",
10955
+ "required": false,
10956
+ "description": "Lista de links: [{label,url}]"
10819
10957
  }
10820
10958
  ],
10821
10959
  "returns": "oferta atualizado",
@@ -19708,11 +19846,60 @@
19708
19846
  "category": "Atributos Personalizados",
19709
19847
  "params": [
19710
19848
  {
19711
- "name": "custom_attribute_definition",
19712
- "type": "object",
19849
+ "name": "attribute_display_name",
19850
+ "type": "string",
19851
+ "location": "body",
19852
+ "required": true,
19853
+ "description": "Nome de exibicao do atributo (ex: 'Perfil')"
19854
+ },
19855
+ {
19856
+ "name": "attribute_display_type",
19857
+ "type": "string",
19858
+ "location": "body",
19859
+ "required": true,
19860
+ "description": "Tipo de exibicao: text, number, link, date, list, checkbox, currency, percent ou secret"
19861
+ },
19862
+ {
19863
+ "name": "attribute_key",
19864
+ "type": "string",
19713
19865
  "location": "body",
19714
19866
  "required": true,
19715
- "description": "Wrapper com { attribute_display_name, attribute_display_type (text/number/link/date/list/checkbox), attribute_model (contact_attribute/conversation_attribute, default conversation_attribute), attribute_key (slug snake_case), attribute_description, attribute_values (para tipo list), regex_pattern, regex_cue }"
19867
+ "description": "Slug unico em snake_case (ex: 'perfil')"
19868
+ },
19869
+ {
19870
+ "name": "attribute_model",
19871
+ "type": "string",
19872
+ "location": "body",
19873
+ "required": false,
19874
+ "description": "contact_attribute ou conversation_attribute (default conversation_attribute)"
19875
+ },
19876
+ {
19877
+ "name": "attribute_description",
19878
+ "type": "string",
19879
+ "location": "body",
19880
+ "required": false,
19881
+ "description": "Descricao do atributo"
19882
+ },
19883
+ {
19884
+ "name": "attribute_values",
19885
+ "type": "array",
19886
+ "location": "body",
19887
+ "required": false,
19888
+ "description": "Opcoes quando o tipo for list (ex: ['MCMV','SBPE','Investidor'])"
19889
+ },
19890
+ {
19891
+ "name": "regex_pattern",
19892
+ "type": "string",
19893
+ "location": "body",
19894
+ "required": false,
19895
+ "description": "Regex de validacao (opcional)"
19896
+ },
19897
+ {
19898
+ "name": "regex_cue",
19899
+ "type": "string",
19900
+ "location": "body",
19901
+ "required": false,
19902
+ "description": "Dica do formato esperado (opcional)"
19716
19903
  }
19717
19904
  ],
19718
19905
  "returns": "atributo personalizado criado (com novo ID)",
@@ -19772,11 +19959,60 @@
19772
19959
  "description": "ID da definicao"
19773
19960
  },
19774
19961
  {
19775
- "name": "custom_attribute_definition",
19776
- "type": "object",
19962
+ "name": "attribute_display_name",
19963
+ "type": "string",
19777
19964
  "location": "body",
19778
- "required": true,
19779
- "description": "Wrapper com os mesmos campos do create { attribute_display_name, attribute_display_type, attribute_model, attribute_key, attribute_description, attribute_values, regex_pattern, regex_cue }"
19965
+ "required": false,
19966
+ "description": "Nome de exibicao do atributo"
19967
+ },
19968
+ {
19969
+ "name": "attribute_display_type",
19970
+ "type": "string",
19971
+ "location": "body",
19972
+ "required": false,
19973
+ "description": "Tipo de exibicao: text, number, link, date, list, checkbox, currency, percent ou secret"
19974
+ },
19975
+ {
19976
+ "name": "attribute_key",
19977
+ "type": "string",
19978
+ "location": "body",
19979
+ "required": false,
19980
+ "description": "Slug unico em snake_case"
19981
+ },
19982
+ {
19983
+ "name": "attribute_model",
19984
+ "type": "string",
19985
+ "location": "body",
19986
+ "required": false,
19987
+ "description": "contact_attribute ou conversation_attribute"
19988
+ },
19989
+ {
19990
+ "name": "attribute_description",
19991
+ "type": "string",
19992
+ "location": "body",
19993
+ "required": false,
19994
+ "description": "Descricao do atributo"
19995
+ },
19996
+ {
19997
+ "name": "attribute_values",
19998
+ "type": "array",
19999
+ "location": "body",
20000
+ "required": false,
20001
+ "description": "Opcoes quando o tipo for list"
20002
+ },
20003
+ {
20004
+ "name": "regex_pattern",
20005
+ "type": "string",
20006
+ "location": "body",
20007
+ "required": false,
20008
+ "description": "Regex de validacao (opcional)"
20009
+ },
20010
+ {
20011
+ "name": "regex_cue",
20012
+ "type": "string",
20013
+ "location": "body",
20014
+ "required": false,
20015
+ "description": "Dica do formato esperado (opcional)"
19780
20016
  }
19781
20017
  ],
19782
20018
  "returns": "atributo personalizado atualizado",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionchat/mcp-server",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
4
4
  "description": "MCP server for LionChat API — 547 tools + 10 resources + 9 prompts. Audit-log aware, completion API, progress notifications.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",