@lionchat/mcp-server 0.4.5 → 0.4.6

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.
@@ -121,10 +121,28 @@ Mais em `lionchat://docs/glossary` → "Quando usar campo nativo vs custom_attri
121
121
 
122
122
  ## 4. Workflows típicos
123
123
 
124
- ### Listar conversas abertas
125
- ```
126
- lionchat_conversations_list (status: 'open', assignee_type: 'all')
127
- ```
124
+ ### Listar / buscar conversas (use `lionchat_conversations_list`)
125
+
126
+ Combine os filtros conforme o pedido do usuário:
127
+
128
+ | Usuário pede | Parâmetros |
129
+ |---|---|
130
+ | Conversas abertas | `status: 'open'` (já é o padrão) |
131
+ | Mais recentes / últimas | `sort_by: 'last_activity_at_desc'` (padrão) |
132
+ | Últimas criadas | `sort_by: 'created_at_desc'` |
133
+ | Mais antigas | `sort_by: 'created_at_asc'` |
134
+ | **Não lidas** | `conversation_type: 'unread'` |
135
+ | **Não atendidas** (sem 1ª resposta) | `conversation_type: 'unattended'` |
136
+ | Minhas conversas | `assignee_type: 'me'` |
137
+ | Sem dono / não atribuídas | `assignee_type: 'unassigned'` |
138
+ | Esperando há mais tempo | `sort_by: 'waiting_since_desc'` |
139
+ | Por prioridade | `sort_by: 'priority_desc'` |
140
+ | Todas (qualquer status) | `status: 'all'` |
141
+
142
+ Notas:
143
+ - Para SÓ a contagem (sem listar), use `lionchat_conversations_meta` com os mesmos filtros (ex: `conversation_type: 'unread'` conta as não lidas).
144
+ - **Não existe filtro nativo de "lidas".** Para isso, liste e considere lidas as conversas com `unread_count == 0` no payload.
145
+ - `lionchat_conversations_unread` é AÇÃO DE ESCRITA (marca como não lida) — NÃO use para buscar.
128
146
 
129
147
  ### Ver mensagens de uma conversa
130
148
  ```
package/endpoints.json CHANGED
@@ -872,7 +872,7 @@
872
872
  "method": "GET",
873
873
  "path": "/api/v1/accounts/{account_id}/conversations/meta",
874
874
  "title": "Contadores de Conversas",
875
- "description": "Contadores REAL-TIME de conversas (mine_count, assigned_count, unassigned_count, all_count). Use quando o usuário quer SÓ NÚMERO (não lista). Bem mais barato que conversations_list.",
875
+ "description": "Contadores REAL-TIME de conversas (mine_count, assigned_count, unassigned_count, all_count). Use quando o usuário quer SÓ NÚMERO (não lista). Aceita os mesmos filtros de conversations_list (status, conversation_type, etc) — ex: conversation_type=unread conta as não lidas. Bem mais barato que conversations_list.",
876
876
  "category": "Conversas",
877
877
  "params": [
878
878
  {
@@ -880,21 +880,28 @@
880
880
  "type": "string",
881
881
  "location": "query",
882
882
  "required": false,
883
- "description": "open, resolved, pending"
883
+ "description": "Status: open (padrão), resolved, pending, snoozed ou all"
884
884
  },
885
885
  {
886
- "name": "assignee_id",
887
- "type": "integer",
886
+ "name": "conversation_type",
887
+ "type": "string",
888
888
  "location": "query",
889
889
  "required": false,
890
- "description": "ID do agente"
890
+ "description": "Tipo: unread (não lidas), unattended (não atendidas), mention, participating"
891
+ },
892
+ {
893
+ "name": "assignee_type",
894
+ "type": "string",
895
+ "location": "query",
896
+ "required": false,
897
+ "description": "Atribuição: me, unassigned, assigned, groups. Omitir = todas"
891
898
  },
892
899
  {
893
900
  "name": "inbox_id",
894
901
  "type": "integer",
895
902
  "location": "query",
896
903
  "required": false,
897
- "description": "ID da inbox"
904
+ "description": "ID da inbox/caixa de entrada"
898
905
  },
899
906
  {
900
907
  "name": "team_id",
@@ -908,7 +915,7 @@
908
915
  "type": "array",
909
916
  "location": "query",
910
917
  "required": false,
911
- "description": "Labels"
918
+ "description": "Labels (tags) — array de títulos"
912
919
  }
913
920
  ],
914
921
  "returns": "{ meta: { mine_count, assigned_count, unassigned_count, all_count } }",
@@ -924,7 +931,7 @@
924
931
  "method": "GET",
925
932
  "path": "/api/v1/accounts/{account_id}/conversations",
926
933
  "title": "Listar Conversas",
927
- "description": "Lista conversas com filtros. Lista conversas paginados (per_page padrão 25, máximo 100). Filtros disponíveis: page, status, assignee_id, inbox_id, team_id. Retorna meta (contadores) + payload (array de conversa).",
934
+ "description": "Lista conversas com filtros e ordenação. Paginado (25/página, máx 100). Retorna meta (contadores: mine/assigned/unassigned/all) + payload (array de conversas). Para SÓ contagem use conversations_meta; para busca por texto use conversations_search; para filtros avançados (custom_attributes) use conversations_filter.",
928
935
  "category": "Conversas",
929
936
  "params": [
930
937
  {
@@ -932,28 +939,35 @@
932
939
  "type": "integer",
933
940
  "location": "query",
934
941
  "required": false,
935
- "description": "Página"
942
+ "description": "Página (1-indexado)"
936
943
  },
937
944
  {
938
945
  "name": "status",
939
946
  "type": "string",
940
947
  "location": "query",
941
948
  "required": false,
942
- "description": "open, resolved, pending, snoozed"
949
+ "description": "Status: open (aberta, padrão), resolved (resolvida), pending (pendente), snoozed (adiada) ou all (todas)"
943
950
  },
944
951
  {
945
- "name": "assignee_id",
946
- "type": "integer",
952
+ "name": "assignee_type",
953
+ "type": "string",
947
954
  "location": "query",
948
955
  "required": false,
949
- "description": "ID do agente"
956
+ "description": "Atribuição: me (minhas conversas), unassigned (sem dono / não atribuídas), assigned (com dono), groups (grupos de WhatsApp). Omitir = todas"
957
+ },
958
+ {
959
+ "name": "conversation_type",
960
+ "type": "string",
961
+ "location": "query",
962
+ "required": false,
963
+ "description": "Tipo: unread (NÃO LIDAS), unattended (NÃO ATENDIDAS / sem primeira resposta), mention (onde fui mencionado), participating (que participo). Omitir = sem este filtro"
950
964
  },
951
965
  {
952
966
  "name": "inbox_id",
953
967
  "type": "integer",
954
968
  "location": "query",
955
969
  "required": false,
956
- "description": "ID da inbox"
970
+ "description": "ID da inbox/caixa de entrada (0 = conversas de inboxes deletadas)"
957
971
  },
958
972
  {
959
973
  "name": "team_id",
@@ -967,14 +981,14 @@
967
981
  "type": "array",
968
982
  "location": "query",
969
983
  "required": false,
970
- "description": "Labels"
984
+ "description": "Labels (tags) — array de títulos"
971
985
  },
972
986
  {
973
- "name": "sort_on",
987
+ "name": "sort_by",
974
988
  "type": "string",
975
989
  "location": "query",
976
990
  "required": false,
977
- "description": "Campo de ordenação"
991
+ "description": "Ordenação: last_activity_at_desc (MAIS RECENTES, padrão), last_activity_at_asc, created_at_desc (últimas criadas), created_at_asc (mais antigas), priority_desc (prioridade alta primeiro), waiting_since_desc (esperando há mais tempo)"
978
992
  }
979
993
  ],
980
994
  "returns": "meta (contadores globais) + payload (array de conversas)",
@@ -1509,7 +1523,7 @@
1509
1523
  "method": "POST",
1510
1524
  "path": "/api/v1/accounts/{account_id}/conversations/{id}/unread",
1511
1525
  "title": "Marcar como Não Lida",
1512
- "description": "Marca a conversa como não lida. Cria novo conversa. Obrigatórios: id. Valida unicidade quando aplicável. Retorna o conversa criado com ID atribuído.",
1526
+ "description": "AÇÃO DE ESCRITA: marca uma conversa existente como não lida (volta o badge de não lida). NÃO é busca — para LISTAR conversas não lidas use conversations_list com conversation_type=unread. Recebe o display_id da conversa.",
1513
1527
  "category": "Conversas",
1514
1528
  "params": [
1515
1529
  {
@@ -1517,16 +1531,17 @@
1517
1531
  "type": "integer",
1518
1532
  "location": "path",
1519
1533
  "required": true,
1520
- "description": "Display ID"
1534
+ "description": "Display ID (ID de exibição) da conversa"
1521
1535
  }
1522
1536
  ],
1523
- "returns": "conversa criado (com novo ID)",
1537
+ "returns": "A conversa atualizada (agent_last_seen_at zerado)",
1524
1538
  "common_use_cases": [
1525
- "Cadastro inicial de conversa",
1526
- "Automação a partir de evento externo",
1527
- "Importação manual via API"
1539
+ "Marcar conversa como não lida para revisitar depois",
1540
+ "Sinalizar que a conversa precisa de nova atenção"
1528
1541
  ],
1529
- "related_tools": []
1542
+ "related_tools": [
1543
+ "lionchat_conversations_list"
1544
+ ]
1530
1545
  },
1531
1546
  {
1532
1547
  "id": "lionchat_conversations_create_5",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionchat/mcp-server",
3
- "version": "0.4.5",
3
+ "version": "0.4.6",
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",