@lionchat/mcp-server 0.5.4 → 0.5.5

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.
@@ -23,6 +23,7 @@ Account (conta/empresa)
23
23
  ├─ Funnel (funil Kanban) → FunnelStage (etapas)
24
24
  ├─ AutomationRule (regras de automação)
25
25
  ├─ Captain::Assistant (AI Agente / IA de atendimento)
26
+ │ └─ Captain::Scenario (instrução situacional; pode FIXAR parâmetro de tool em tool_bindings)
26
27
  ├─ AccountTask (agenda/tarefas)
27
28
  └─ Booking (agendamento de demonstração/reunião)
28
29
  ```
@@ -288,6 +289,8 @@ Antes de escolher a ferramenta, cheque se a intenção bate com a coluna da dire
288
289
  | **Importar histórico** de caixa WhatsApp Cloud (QR) | `lionchat_inboxes_whatsapp_history_start` / `_status` / `_cancel` | Admin-only + flag `qr_history_import`; só caixa oficial. Acompanhe `state` no `_status` |
289
290
  | **Definir supervisor** de caixa | `lionchat_inbox_members_create` / `_update` com `supervisor_ids[]` | Supervisor vê TUDO da caixa mas fica fora do rodízio (ver abaixo) |
290
291
  | Saber se a IA deve TOCAR a ligação WP (Wavoip) / marcar recusada | `lionchat_wavoip_should_ring` / `lionchat_wavoip_flag_rejected` | Controle fino do toque de chamada na caixa QR Code |
292
+ | Restringir agendas que a IA oferece | `lionchat_captain_assistants_update` (`config.booking_event_type_ids: [Int]`) | binding de agenda por cenário NÃO é settable via API |
293
+ | Configurar o Copiloto (modelo/temperatura/prompt base) | `lionchat_copilot_settings_update` | admin-only; copiloto tem motor próprio (padrão temp 0.3) |
291
294
 
292
295
  ## 9. Quando NÃO chamar nenhuma ferramenta
293
296
 
@@ -161,6 +161,27 @@ Como a coleta de dados/cenários funciona hoje (importante pra diagnosticar "IA
161
161
  fica no "caderninho" da conversa (campo scenario_checklist, visível no card Raciocínio).
162
162
  - Sem AI Agente ativo na conversa = NENHUMA resposta de IA (motor V1 aposentado em 2026-06).
163
163
 
164
+ ## Cenários com parâmetro fixo e execução determinística (2026-06)
165
+
166
+ - O admin pode FIXAR o parâmetro de uma ferramenta no cenário (campo scenario.tool_bindings): quais mídias enviar, qual funil+etapa do card, quais agendas no agendamento. "Deixar a IA decidir" = binding vazio.
167
+ - Quando UM cenário fixa a tool, a execução vira determinística (a IA não escolhe): mídia e kanban são aplicados pós-turno pelo BindingResolver (ordem texto→ação, sem duplicar, idempotente); o agendamento força/restringe a agenda mas a IA ainda define data/hora.
168
+ - Via MCP: scenarios_create/update persiste binding de send_media_asset e create_kanban_item/move_kanban_item (re-escopados por conta). O binding de create_booking NÃO é aceito pela API — pra limitar agendas via MCP, use config.booking_event_type_ids no assistente (captain_assistants_update).
169
+
170
+ ## Conhecimento passivo da IA: FAQ + artigos (RAG) (2026-06)
171
+
172
+ - A IA já recebe no prompt a FAQ e os artigos da Central de Ajuda relevantes para a mensagem atual — automaticamente, sem chamar ferramenta. Só acontece quando há conteúdo cadastrado (FAQ/documento aprovado ou artigo publicado); sem conteúdo não gasta token nem embedding.
173
+ - As ferramentas "Buscar FAQ" e "Buscar Artigos" são auto-gerenciadas: ligam sozinhas conforme o conteúdo e somem da tela de ferramentas (não são desligáveis por disabled_tools). Diagnóstico "IA não usa a base": confira se há FAQ APROVADA/documento, ou artigo PUBLICADO na Central de Ajuda.
174
+ - A IA pode oferecer ao cliente o link do artigo (precisa de Portal com slug e domínio/FRONTEND_URL).
175
+
176
+ ## Anti-loop de ferramentas (custo) (2026-06)
177
+
178
+ - Ferramentas (webhooks/custom tools e flows) que falham agora param sozinhas: a IA recebe aviso escalonado (1ª falha = no máximo 1 retry; 2ª+ da mesma tool = pare e siga sem ela ou transfira). Tetos por turno: 5 chamadas por ferramenta e 25 no total; ao estourar, a IA dá halt e cria nota mencionando um humano (sem desligar a IA).
179
+
180
+ ## Copilot age na conversa (2026-06)
181
+
182
+ - O Copiloto do atendente tem motor próprio (modelo/temperatura da conta, padrão 0.3; prompt base em copilot_instructions), configurável em captain/copilot_settings (admin).
183
+ - Ele EXECUTA ações na conversa aberta, dentro da permissão do atendente: ações reversíveis (kanban, etiqueta, nota, prioridade, atribuir, resolver, contato) na hora; ações que falam com o cliente (mídia, agendar mensagem, agendamento) viram proposta que o atendente confirma/cancela. Histórico é por conversa.
184
+
164
185
  ## Automações: atributo de Conversa vs de Contato (2026-06)
165
186
 
166
187
  Atributos customizados podem existir com o MESMO nome nos dois escopos (ex: utm_source).
@@ -118,6 +118,10 @@ Se `captain_assistant_id` foi setado (manual ou via automação):
118
118
  - Chama LLM com prompt do assistant + histórico
119
119
  - LLM pode invocar tools (FAQ, update_contact, create_booking, etc)
120
120
  - Resposta vira `Message` outgoing com `sender_type: Captain::Assistant`
121
+ - Conhecimento passivo: a IA recebe FAQ + artigos relevantes no prompt sem chamar ferramenta (só se houver conteúdo).
122
+ - Cenário pode FIXAR o parâmetro de uma tool (mídia/funil-etapa/agenda) → execução determinística (mídia/kanban pós-turno via BindingResolver).
123
+ - Tool que falha aciona o anti-loop (aviso escalonado + tetos 5/tool e 25/turno).
124
+ - Comentários do Instagram: chegam como mensagens (content_attributes.image_type='ig_comment' + in_reply_to_comment_id). Pra responder um comentário via API, mande a mensagem na conversa com content_attributes { reply_mode: 'private'|'public', in_reply_to_comment_id }. O AI Agente responde só DM (não comenta em post).
121
125
 
122
126
  **Quando IA é desativada manualmente:**
123
127
  - Agente clica em "Desativar AI" → `captain_assistant_id` vira null
@@ -163,6 +163,11 @@ o painel humano usa. IA e integrações NUNCA passam force_update. Endpoint dedi
163
163
  `PATCH /contacts/{id}/cadastral` (tool `contacts_update_cadastral`). NÃO grave cadastral como
164
164
  custom_attribute. Regra absoluta relacionada: NUNCA sobrescrever `phone_number` já preenchido.
165
165
 
166
+ **Lead só com CPF (2026-06):** um lead só com CPF (sem telefone/email) agora vira contato real
167
+ pesquisável — o CPF fica em `identifier` (único) com fallback em `additional_attributes.cadastral.cpf`.
168
+ A identificação por CPF acontece na ingestão de webhooks (pagamento, Meta Lead Ads, webhook
169
+ universal); a superfície REST de contatos não mudou.
170
+
166
171
  **Padrões de `source_id` por canal:**
167
172
  - Waha: `5511999999999@c.us` (1-on-1) ou `120363xxx@g.us` (grupo) ou `XXXX@lid` (LID)
168
173
  - WhatsApp Cloud: `5511999999999` (E.164 sem prefixo)
@@ -242,6 +247,8 @@ Captain::Assistant
242
247
  │ activation_label (etiqueta que ativa o agente — unica por conta),
243
248
  │ min_response_time / max_response_time (delay humanizado, 1-60s),
244
249
  │ disabled_tools (array de IDs de tools desativadas pro assistente),
250
+ │ (faq_lookup/search_articles NÃO são desligáveis — auto-gerenciadas: carregam só quando há
251
+ │ FAQ/documento ou artigo publicado, e são escondidas do endpoint captain_assistants_tools)
245
252
  │ offer_ids / media_asset_ids / booking_event_type_ids (arrays de IDs vinculados),
246
253
  │ products (array legado de produtos)
247
254
  ├── guardrails (jsonb array de strings — limites duros injetados no prompt, ex: anti-pitch)
@@ -257,10 +264,16 @@ Captain::Scenario (cenários do assistente — instruções inline, sem handoff)
257
264
  ├── instruction (text — tools referenciadas como links markdown [Titulo](tool://id))
258
265
  ├── tools (jsonb — auto-extraído da instruction)
259
266
  ├── enabled (bool)
260
- └── trigger_type (llm_interpreted [default] | on_assistant_activation | on_first_customer_message)
261
- ⚠️ trigger_type NAO é editável via API hoje — todo cenário criado por API fica em
262
- llm_interpreted (a IA decide aplicar lendo a conversa). Os modos programáticos só
263
- via banco/console por enquanto.
267
+ ├── trigger_type (llm_interpreted [default] | on_assistant_activation | on_first_customer_message)
268
+ │ ⚠️ trigger_type NAO é editável via API hoje — todo cenário criado por API fica em
269
+ │ llm_interpreted (a IA decide aplicar lendo a conversa). Os modos programáticos só
270
+ │ via banco/console por enquanto.
271
+ └── tool_bindings (jsonb — parâmetro FIXADO pelo admin por tool; "IA decide" = ausente/vazio)
272
+ send_media_asset → { asset_ids: [Int] } | create_kanban_item / move_kanban_item →
273
+ { funnel_id: Int, stage: "<key>" } | create_booking → { event_type_ids: [Int] }
274
+ Obs: via API/MCP, scenarios_update SÓ persiste send_media_asset/create_kanban_item/
275
+ move_kanban_item. O binding create_booking é só de UI/runtime — NÃO round-trippa pela API.
276
+ Use config.booking_event_type_ids no assistente pra restringir agendas via MCP.
264
277
 
265
278
  Captain::AssistantResponse (FAQ)
266
279
  ├── assistant_id (FK)
@@ -221,6 +221,15 @@ os de `user_ids` viram membros comuns. A resposta traz `is_supervisor` (boolean)
221
221
  aplicação fica no "caderninho do cenário" da conversa (scenario_checklist, card Raciocínio)
222
222
  - **Regra DITO ≠ SALVO**: a IA só considera coletado o dado que foi PERSISTIDO — salva cada dado
223
223
  na hora e não repergunta o que já salvou
224
+ - **Cenário com parâmetro fixo (tool_bindings)**: o admin pode fixar o parâmetro de uma ferramenta do cenário — quais mídias enviar, qual funil+etapa criar/mover o card, quais agendas usar no agendamento. Com 1 cenário fixando a tool, a execução é DETERMINÍSTICA (a IA não escolhe): mídia/kanban rodam pós-turno (BindingResolver); o agendamento força/restringe a agenda mas a IA ainda escolhe a data/hora.
225
+ - **Conhecimento passivo (RAG)**: a IA recebe automaticamente no prompt a FAQ e os artigos da Central de Ajuda relevantes para a mensagem — só quando a conta tem esse conteúdo (sem conteúdo = zero custo). Pode oferecer o link do artigo ao cliente. As ferramentas "Buscar FAQ"/"Buscar Artigos" são automáticas (não aparecem nem se ligam na tela de ferramentas).
226
+ - **Anti-loop de ferramentas**: se uma ferramenta (webhook/custom tool ou flow) falha, a IA recebe aviso escalonado (1ª falha = tente 1x; 2ª = pare e siga/transfira) e para sozinha; tetos de 5 chamadas/ferramenta e 25/turno por mensagem.
227
+
228
+ ## Copilot (Copiloto do atendente)
229
+
230
+ - Motor PRÓPRIO: usa account.custom_attributes['copilot_model'] e ['copilot_temperature'] (padrão 0.3), independente do agente conversacional. O agente selecionado dá só a base de conhecimento. Prompt base em copilot_instructions (admin, até 5000 chars). Config via endpoint captain/copilot_settings.
231
+ - AGE na conversa aberta no painel (sem opt-in), dentro da permissão do atendente. Tools reversíveis (kanban, etiqueta, nota, prioridade, atribuir, resolver, contato/atributos) executam na hora; tools que falam com o cliente (enviar mídia, agendar mensagem, criar/reagendar agendamento) viram PROPOSTA e só executam quando o atendente confirma. Transferência/handoff/flows ficam de fora.
232
+ - Histórico POR CONVERSA (copilot_threads.conversation_display_id): cada conversa mantém o seu Copiloto, não mistura.
224
233
 
225
234
  ## Account (Conta)
226
235
 
@@ -164,6 +164,12 @@ Um card individual dentro de uma etapa.
164
164
 
165
165
  Múltiplos agentes podem ter o mesmo card. `source` pode ser `manual`, `automation`, `inherited_from_conversation`.
166
166
 
167
+ **Agente do card vira participante das conversas (2026-06):** atribuir um agente a um card do Kanban
168
+ (via `kanban_agents` ou ao vincular uma conversa) agora também o adiciona como PARTICIPANTE de todas
169
+ as conversas do card (a principal `conversation_display_id` + as de `linked_conversations`). É a 4ª
170
+ forma de virar participante — aditivo e idempotente (não duplica nem remove os participantes que já
171
+ existiam).
172
+
167
173
  ### linked_conversations — IMPORTANTE
168
174
 
169
175
  ```json
package/endpoints.json CHANGED
@@ -7206,7 +7206,7 @@
7206
7206
  "description": "Lista todas as labels da conta. Lista labels/etiquetas paginados (per_page padrão 25, máximo 100). Retorna meta (contadores) + payload (array de label/etiqueta).",
7207
7207
  "category": "Labels",
7208
7208
  "params": [],
7209
- "returns": "{ payload: array de labels } (sem meta)",
7209
+ "returns": "{ payload: array de labels, cada label com conversations_count e contacts_count (uso em conversas/contatos) }",
7210
7210
  "common_use_cases": [
7211
7211
  "Dashboard: contar/exibir labels/etiquetas",
7212
7212
  "Buscar com filtros antes de outra operação",
@@ -12052,7 +12052,7 @@
12052
12052
  "method": "POST",
12053
12053
  "path": "/api/v1/accounts/{account_id}/voip/calls",
12054
12054
  "title": "Iniciar Chamada",
12055
- "description": "Inicia uma chamada telefônica para um contato via Zenvia. Requer configuração VoIP ativa. Obrigatorios: contact_id.",
12055
+ "description": "Inicia uma chamada telefônica para um contato via Zenvia. Requer configuração VoIP ativa. Obrigatorios: contact_id. Passe provider='vtcall' pra discar pelo PABX VTCall.",
12056
12056
  "category": "Chamadas",
12057
12057
  "params": [
12058
12058
  {
@@ -12075,6 +12075,13 @@
12075
12075
  "location": "body",
12076
12076
  "required": false,
12077
12077
  "description": "Número de origem"
12078
+ },
12079
+ {
12080
+ "name": "provider",
12081
+ "type": "string",
12082
+ "location": "body",
12083
+ "required": false,
12084
+ "description": "Roteia o disparo: 'vtcall' disca pelo PABX VTCall (sem bina); ausente/outro = Zenvia"
12078
12085
  }
12079
12086
  ],
12080
12087
  "returns": "chamada VoIP criada",
@@ -14813,7 +14820,15 @@
14813
14820
  "title": "Conectar Google Calendar",
14814
14821
  "description": "Inicia o fluxo de conexao com Google Calendar. Lista configs Google Calendar paginados (per_page padrão 25, máximo 100). Retorna meta (contadores) + payload (array de config Google Calendar).",
14815
14822
  "category": "Google Calendar",
14816
- "params": [],
14823
+ "params": [
14824
+ {
14825
+ "name": "return_to",
14826
+ "type": "string",
14827
+ "location": "query",
14828
+ "required": false,
14829
+ "description": "Pra onde voltar apos o OAuth (ex: 'agenda'); fora da whitelist = padrao"
14830
+ }
14831
+ ],
14817
14832
  "returns": "meta (contadores globais) + payload (array de configs Google Calendar)",
14818
14833
  "common_use_cases": [
14819
14834
  "Dashboard: contar/exibir configs Google Calendar",
@@ -24066,7 +24081,7 @@
24066
24081
  "method": "PATCH",
24067
24082
  "path": "/api/v1/accounts/{account_id}/inboxes/{id}",
24068
24083
  "title": "Atualizar Caixa de Entrada",
24069
- "description": "Atualiza configurações da caixa (nome, saudação, atribuição automática, atributos extras). MUDANÇA DE CONFIG — confirme com o usuário antes. additional_attributes.mark_as_seen (bool, default true, SÓ WhatsApp oficial, 2026-06-11): envia o visto/check azul quando o agente abre a conversa — desligar em coexistência app+API. ATENÇÃO: enviar additional_attributes substitui o objeto; para WAHA prefira não mexer nesse campo (config sensível).",
24084
+ "description": "Atualiza configurações da caixa (nome, saudação, atribuição automática, atributos extras). MUDANÇA DE CONFIG — confirme com o usuário antes. additional_attributes.mark_as_seen (bool, default true, SÓ WhatsApp oficial, 2026-06-11): envia o visto/check azul quando o agente abre a conversa — desligar em coexistência app+API. ATENÇÃO: enviar additional_attributes substitui o objeto; para WAHA prefira não mexer nesse campo (config sensível). Email (sincronizacao de mao dupla, admin, via objeto channel): two_way_sync_enabled, sync_sent, sync_deletions, sync_read, delete_strategy.",
24070
24085
  "category": "Caixas de Entrada",
24071
24086
  "params": [
24072
24087
  {
@@ -24367,5 +24382,239 @@
24367
24382
  "lionchat_wavoip_should_ring",
24368
24383
  "lionchat_wavoip_calls"
24369
24384
  ]
24385
+ },
24386
+ {
24387
+ "id": "lionchat_vtcall_settings_show",
24388
+ "method": "GET",
24389
+ "path": "/api/v1/accounts/{account_id}/voip/vtcall_settings",
24390
+ "title": "Config VTCall (PABX)",
24391
+ "description": "Mostra a configuracao do PABX VTCall da conta (servidor, gravacao, transcricao). Liberado pro agente saber se o botao de discar VTCall esta disponivel.",
24392
+ "category": "Chamadas",
24393
+ "params": [],
24394
+ "returns": "{ configured, active, vtcall_server, gravar_audio, ai_summary_source, transcription_provider, transcription_language, has_transcription_key, auto_transcribe, current_user_has_ramal, webhook_url (admin) }",
24395
+ "common_use_cases": [
24396
+ "Saber se o VTCall esta configurado/ativo antes de discar",
24397
+ "Conferir gravacao/transcricao da conta"
24398
+ ],
24399
+ "related_tools": [
24400
+ "lionchat_vtcall_settings_update",
24401
+ "lionchat_voip_calls_create"
24402
+ ]
24403
+ },
24404
+ {
24405
+ "id": "lionchat_vtcall_settings_update",
24406
+ "method": "PATCH",
24407
+ "path": "/api/v1/accounts/{account_id}/voip/vtcall_settings",
24408
+ "title": "Salvar Config VTCall",
24409
+ "description": "Salva a configuracao do PABX VTCall (admin). active e derivado no servidor (liga so quando ha servidor + token).",
24410
+ "category": "Chamadas",
24411
+ "params": [
24412
+ {
24413
+ "name": "vtcall_server",
24414
+ "type": "string",
24415
+ "location": "body",
24416
+ "required": false,
24417
+ "description": "Servidor do PABX VTCall"
24418
+ },
24419
+ {
24420
+ "name": "vtcall_token",
24421
+ "type": "string",
24422
+ "location": "body",
24423
+ "required": false,
24424
+ "description": "Token de autenticacao do PABX"
24425
+ },
24426
+ {
24427
+ "name": "gravar_audio",
24428
+ "type": "boolean",
24429
+ "location": "body",
24430
+ "required": false,
24431
+ "description": "Gravar audio das ligacoes"
24432
+ },
24433
+ {
24434
+ "name": "auto_transcribe",
24435
+ "type": "boolean",
24436
+ "location": "body",
24437
+ "required": false,
24438
+ "description": "Transcrever automaticamente"
24439
+ },
24440
+ {
24441
+ "name": "transcription_provider",
24442
+ "type": "string",
24443
+ "location": "body",
24444
+ "required": false,
24445
+ "description": "Provedor de transcricao"
24446
+ },
24447
+ {
24448
+ "name": "transcription_api_key",
24449
+ "type": "string",
24450
+ "location": "body",
24451
+ "required": false,
24452
+ "description": "Chave da transcricao"
24453
+ },
24454
+ {
24455
+ "name": "transcription_language",
24456
+ "type": "string",
24457
+ "location": "body",
24458
+ "required": false,
24459
+ "description": "Idioma da transcricao"
24460
+ },
24461
+ {
24462
+ "name": "ai_summary_source",
24463
+ "type": "string",
24464
+ "location": "body",
24465
+ "required": false,
24466
+ "description": "Fonte do resumo por IA"
24467
+ }
24468
+ ],
24469
+ "returns": "{ success: true } ou { error }",
24470
+ "common_use_cases": [
24471
+ "Configurar o PABX VTCall da conta"
24472
+ ],
24473
+ "related_tools": [
24474
+ "lionchat_vtcall_settings_show",
24475
+ "lionchat_vtcall_settings_test_connection"
24476
+ ]
24477
+ },
24478
+ {
24479
+ "id": "lionchat_vtcall_settings_test_connection",
24480
+ "method": "POST",
24481
+ "path": "/api/v1/accounts/{account_id}/voip/vtcall_settings/test_connection",
24482
+ "title": "Testar Conexao VTCall",
24483
+ "description": "Testa a conexao com o servidor VTCall configurado (admin).",
24484
+ "category": "Chamadas",
24485
+ "params": [],
24486
+ "returns": "{ success: bool, error? }",
24487
+ "common_use_cases": [
24488
+ "Validar servidor/token do VTCall apos salvar"
24489
+ ],
24490
+ "related_tools": [
24491
+ "lionchat_vtcall_settings_update"
24492
+ ]
24493
+ },
24494
+ {
24495
+ "id": "lionchat_vtcall_ramals_list",
24496
+ "method": "GET",
24497
+ "path": "/api/v1/accounts/{account_id}/voip/vtcall_ramals",
24498
+ "title": "Listar Ramais VTCall",
24499
+ "description": "Lista os agentes da conta com o ramal de cada um no VTCall (admin). 1 ramal por agente.",
24500
+ "category": "Chamadas",
24501
+ "params": [],
24502
+ "returns": "{ agents: [{ user_id, name, email, ramal, ramal_id }] }",
24503
+ "common_use_cases": [
24504
+ "Montar a tela de mapeamento agente->ramal"
24505
+ ],
24506
+ "related_tools": [
24507
+ "lionchat_vtcall_ramals_create"
24508
+ ]
24509
+ },
24510
+ {
24511
+ "id": "lionchat_vtcall_ramals_create",
24512
+ "method": "POST",
24513
+ "path": "/api/v1/accounts/{account_id}/voip/vtcall_ramals",
24514
+ "title": "Definir Ramal VTCall",
24515
+ "description": "Define/atualiza o ramal de um agente no VTCall (upsert por user_id, admin).",
24516
+ "category": "Chamadas",
24517
+ "params": [
24518
+ {
24519
+ "name": "user_id",
24520
+ "type": "integer",
24521
+ "location": "body",
24522
+ "required": true,
24523
+ "description": "ID do agente"
24524
+ },
24525
+ {
24526
+ "name": "ramal",
24527
+ "type": "string",
24528
+ "location": "body",
24529
+ "required": true,
24530
+ "description": "Numero do ramal"
24531
+ }
24532
+ ],
24533
+ "returns": "{ success: true, id }",
24534
+ "common_use_cases": [
24535
+ "Atribuir um ramal a um agente"
24536
+ ],
24537
+ "related_tools": [
24538
+ "lionchat_vtcall_ramals_list",
24539
+ "lionchat_vtcall_ramals_destroy"
24540
+ ]
24541
+ },
24542
+ {
24543
+ "id": "lionchat_vtcall_ramals_destroy",
24544
+ "method": "DELETE",
24545
+ "path": "/api/v1/accounts/{account_id}/voip/vtcall_ramals/{id}",
24546
+ "title": "Remover Ramal VTCall",
24547
+ "description": "Remove o ramal de um agente no VTCall (admin).",
24548
+ "category": "Chamadas",
24549
+ "params": [
24550
+ {
24551
+ "name": "id",
24552
+ "type": "integer",
24553
+ "location": "path",
24554
+ "required": true,
24555
+ "description": "ID do registro de ramal"
24556
+ }
24557
+ ],
24558
+ "returns": "{ success: true }",
24559
+ "common_use_cases": [
24560
+ "Tirar o ramal de um agente"
24561
+ ],
24562
+ "related_tools": [
24563
+ "lionchat_vtcall_ramals_list"
24564
+ ]
24565
+ },
24566
+ {
24567
+ "id": "lionchat_copilot_settings_show",
24568
+ "method": "GET",
24569
+ "path": "/api/v1/accounts/{account_id}/captain/copilot_settings",
24570
+ "title": "Config do Copiloto",
24571
+ "description": "Mostra a config do motor do Copiloto do atendente (modelo, temperatura, prompt base). Admin-only.",
24572
+ "category": "Assistentes",
24573
+ "params": [],
24574
+ "returns": "{ model, temperature, instructions }",
24575
+ "common_use_cases": [
24576
+ "Ver modelo/temperatura/prompt base do Copiloto"
24577
+ ],
24578
+ "related_tools": [
24579
+ "lionchat_copilot_settings_update"
24580
+ ]
24581
+ },
24582
+ {
24583
+ "id": "lionchat_copilot_settings_update",
24584
+ "method": "PATCH",
24585
+ "path": "/api/v1/accounts/{account_id}/captain/copilot_settings",
24586
+ "title": "Salvar Config do Copiloto",
24587
+ "description": "Salva modelo, temperatura e prompt base do Copiloto (admin). Motor proprio, independente do agente conversacional (padrao temperatura 0.3).",
24588
+ "category": "Assistentes",
24589
+ "params": [
24590
+ {
24591
+ "name": "model",
24592
+ "type": "string",
24593
+ "location": "body",
24594
+ "required": false,
24595
+ "description": "Modelo de IA"
24596
+ },
24597
+ {
24598
+ "name": "temperature",
24599
+ "type": "number",
24600
+ "location": "body",
24601
+ "required": false,
24602
+ "description": "Temperatura (0.0-2.0; padrao 0.3)"
24603
+ },
24604
+ {
24605
+ "name": "instructions",
24606
+ "type": "string",
24607
+ "location": "body",
24608
+ "required": false,
24609
+ "description": "Prompt base do Copiloto (ate 5000 chars)"
24610
+ }
24611
+ ],
24612
+ "returns": "{ model, temperature, instructions }",
24613
+ "common_use_cases": [
24614
+ "Ajustar o comportamento do Copiloto da conta"
24615
+ ],
24616
+ "related_tools": [
24617
+ "lionchat_copilot_settings_show"
24618
+ ]
24370
24619
  }
24371
24620
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionchat/mcp-server",
3
- "version": "0.5.4",
3
+ "version": "0.5.5",
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",