Tools registradas no Triglav Hub. Cada uma é callable pelo Claude Code, GPT, Gemini ou qualquer cliente MCP.
sankhya_list_productsexecutar →Lista produtos cadastrados no Sankhya ERP. Retorna campos como CODPROD, DESCRPROD, REFERENCIA, MARCA, NCM, PESOLIQ. Usado para sincronizar com Google Merchant, Mercado Livre, ou auditar catálogo.
sankhya_get_pricesexecutar →Retorna a tabela de preços de venda do Sankhya (TGFEXC). Use price_table_id=1 para a tabela padrão.
sankhya_list_products_with_pricesexecutar →Lista produtos cadastrados COM preço de venda (joined com TabelaPreco). Retorna CODPROD, DESCRPROD, MARCA, ENDIMAGEM (URL da foto), NCM, REFERENCIA, VLRVENDA. Útil pra catalogo visual e auditoria de preços.
sankhya_get_stockexecutar →Retorna saldo de estoque por produto. Filtra por CODLOCAL (loja/filial) se warehouse_code informado. Retorna ESTOQUE e RESERVADO.
sankhya_list_locationsexecutar →Lista locais/filiais de estoque cadastrados na Sankhya. Use para mapear CODLOCAL → storeCode do Google Business Profile.
sankhya_get_salesexecutar →Retorna notas fiscais de venda (1 linha por nota, entidade CabecalhoNota). Datas no formato dd/MM/yyyy. Vazias = todo o histórico disponível. Cada linha tem: NUNOTA, NUMNOTA, DTNEG, TIPMOV, CODPARC, VLRNOTA, VLRTOT (alias de VLRNOTA), CODNOTA (alias de NUNOTA). Top produtos por SKU exige query separada em ItemNota (TODO Fase 2.x).
sankhya_stalled_itemsexecutar →Capital parado: produtos sem venda há min_days dias OU mais. Cruza Produto (ativo) com itens de venda em CabecalhoNota.NUNOTA. Retorna lista com CODPROD, DESCRPROD, ESTOQUE atual e valor estimado (custo médio × estoque). Aceita filtro de filial (codemp) e categoria (codgrupoprod). Default min_days=90.
sankhya_get_top_productsexecutar →Retorna top N produtos por faturamento no período em ItemNota. Cruza com Produto.DESCRPROD via relacionamento (se disponível). Filtra TIPMOV='V' (venda) via CabecalhoNota. Aceita codemp.
sankhya_diagnose_loginexecutar →Tenta autenticar no Sankhya com as credenciais do .env e reporta qual etapa falha. Útil pra debugar por que JSESSIONID expira e o auto-renew não está funcionando. NÃO grava o JSESSIONID.
sankhya_list_companiesexecutar →Lista empresas/filiais cadastradas na Sankhya (entidade Empresa). Use para popular seletor de filial na UI. Retorna CODEMP, NOMEFANTASIA, RAZAOSOCIAL, CGC. Sankhya pode ter várias empresas no mesmo banco — cada uma é uma filial fiscal independente.
sankhya_diagnose_salesexecutar →DIAGNÓSTICO: testa múltiplas estratégias de fetch de vendas: (1) ItemNota sem relacionamento (campos diretos só), (2) ItemNota com variantes de nome do relacionamento pai (CAB, Cabecalho, NotaCab, Nota, CabecalhoNota), (3) entidades alternativas. Reporta qual variante funcionou.
sankhya_top_clients_profileexecutar →Top N clientes por faturamento no periodo, com CNPJ (CGC) + nome + qtd notas + total. Base para ICP Engine — alimenta b2b_icp_infer pra inferir CNAEs/UFs/portes dominantes.
merchant_list_productsexecutar →Lista produtos publicados no Google Merchant Center. Por padrão retorna a primeira página (250). Para paginar, passe o `page_token` retornado em `next_page_token`.
merchant_get_productexecutar →Busca um produto específico no Merchant Center pelo ID completo. ID no formato 'online:pt:BR:SKU123' (channel:locale:country:offerId).
merchant_list_disapprovalsexecutar →Diagnóstico: retorna resumo de produtos reprovados no Merchant Center com histograma das principais causas e detalhes por produto. Essencial antes de qualquer push em massa para evitar reprovações repetidas.
merchant_get_product_statusexecutar →Retorna o status de aprovação completo de um produto, incluindo issues por canal (Shopping, Local Inventory) e código de erro.
merchant_push_productWRITEexecutar →WRITE TOOL: sincroniza um único produto da Sankhya para o Merchant Center. Busca o produto pelo CODPROD na Sankhya, transforma com a regra atual (transformer.sankhya_to_merchant) e envia via Content API. Requer confirm=True para executar — chame primeiro com confirm=False para fazer um dry-run e ver o payload que seria enviado.
merchant_delete_productWRITEexecutar →WRITE TOOL: remove um produto do Merchant Center. Requer confirm=True para executar.
ml_list_my_itemsexecutar →Lista anúncios do vendedor no Mercado Livre. Use offset+limit para paginar. Retorna IDs dos anúncios; combine com `ml_get_item` para detalhes.
ml_get_itemexecutar →Busca detalhes completos de um anúncio do Mercado Livre pelo MLB ID (ex: 'MLB1234567890'). Retorna título, preço, estoque, status, atributos.
ml_predict_categoryexecutar →Sugere a categoria do Mercado Livre para um título de produto. Use antes de criar um anúncio para descobrir a category_id correta.
ml_get_seller_infoexecutar →Retorna o seller_id e dados do vendedor autenticado.
ml_update_stockWRITEexecutar →WRITE TOOL: atualiza a quantidade disponível (available_quantity) de um anúncio. Requer confirm=True para executar — sem isso retorna apenas o que seria enviado (dry-run).
ml_set_item_statusWRITEexecutar →WRITE TOOL: pausa, ativa ou encerra um anúncio. Status válidos: 'paused', 'active', 'closed'. Requer confirm=True.
instagram_publish_imageWRITEexecutar →WRITE TOOL: publica uma única imagem no Instagram Business com legenda. Requer confirm=True; sem isso retorna o que seria publicado (dry-run).
instagram_publish_carouselWRITEexecutar →WRITE TOOL: publica um carrossel (2-10 imagens) com legenda única. Requer confirm=True.
instagram_publish_reelWRITEexecutar →WRITE TOOL: publica um Reel (vídeo) com legenda e capa opcional. Requer confirm=True.
b2b_search_companiesexecutar →Busca CNPJs de empresas por CNAE (Classificação Nacional de Atividades) e UF na base pública. Retorna lista de CNPJs candidatos para prospecção. Use depois `b2b_enrich_company` para detalhar cada um.
b2b_enrich_companyexecutar →Detalha um CNPJ: nome, razão social, situação, atividade, endereço, telefones, e-mails, sócios. Inclui também score de prospecção e identificação do responsável (decision-maker).
b2b_icp_inferexecutar →ICP Engine: analisa uma lista de CNPJs (seus melhores clientes) e retorna padrões agregados que descrevem seu ICP — CNAEs majoritários, UFs concentradas, faixa de porte. Útil pra alimentar busca lookalike depois com b2b_search_companies.
b2b_check_is_clientexecutar →Verifica se um CNPJ ja é cliente da Sankhya consultando entidade Parceiro pela CGC. Útil pra excluir clientes existentes na prospecção.
analytics_sales_windowexecutar →Retorna a janela de 12 meses (data_ini, data_fim) usada nos relatórios de vendas. Útil para preview antes de gerar análise.
analytics_classify_abcexecutar →Classifica produtos pela curva ABC (Pareto): A = 80% do faturamento, B = 15%, C = 5%. Retorna lista de produtos com classe e percentual acumulado.
analytics_min_stock_suggestionexecutar →Calcula estoque mínimo sugerido para cada produto baseado em consumo médio dos últimos 12 meses + lead time + safety stock. Premissa default: lead_time_meses=2.5, safety_stock_meses=1.0 (itens importados China).
analytics_generate_report_12mWRITEexecutar →WRITE TOOL: gera planilha XLSX completa de análise 12 meses no servidor. Inclui Resumo, Faturamento por Vendedor, Ranking, Top Produtos ABC, Estoque + Mínimo, Vendas Mensais por Produto. Requer confirm=True (gera arquivo de ~5-20MB em /legacy/out/). Retorna o caminho do arquivo gerado para download via outro endpoint.
email_list_inactive_productsexecutar →Lista produtos parados há 90+ dias (sem venda) que entrariam na próxima campanha de email marketing. Usado para preview antes de enviar.
email_list_recipientsexecutar →Lista destinatários do próximo disparo: leads CSV + clientes ativos da Sankhya com e-mail. Filtra envios duplicados (já enviou nos últimos N dias).
email_send_campaignWRITEexecutar →WRITE TOOL: dispara campanha de e-mail marketing dos produtos parados. Por padrão é DRY-RUN — só mostra quantos seriam enviados. Use confirm=True para enviar de verdade (rate-limited, sem spam).
auth_check_facebook_appexecutar →Diagnóstico do App Facebook: verifica META_APP_ID, META_APP_SECRET, se app está ativo, e se 'Login do Facebook' está configurado. Útil antes de iniciar o fluxo OAuth para evitar erros silenciosos.
auth_facebook_oauth_urlexecutar →Gera a URL OAuth do Facebook para o usuário autorizar o app. Use para mostrar um botão 'Conectar com Facebook' no dashboard. Após o usuário autorizar, o Facebook redireciona para o META_REDIRECT_URI com ?code=... e o callback troca por token.
auth_exchange_code_for_tokenWRITEexecutar →WRITE TOOL: troca o ?code=... recebido no callback OAuth por um access_token de longa duração (60 dias). Salva em credentials/. Requer confirm=True.
auth_meta_token_statusexecutar →Status do token Meta atual: conectado, quando expira, qual conta IG está vinculada. Usado pelo dashboard pra mostrar status de conexão.
auth_meta_refresh_tokenWRITEexecutar →WRITE TOOL: renova o long-lived token Meta (estende mais 60 dias). Funciona se o token atual ainda for válido. Requer confirm=True.
auth_sankhya_statusexecutar →Verifica se o JSESSIONID do Sankhya está válido fazendo uma chamada leve à API. Retorna {connected, jsessionid_present, last_validated}.
auth_sankhya_save_jsessionidWRITEexecutar →WRITE TOOL: salva um novo JSESSIONID em .jsessionid e testa imediatamente. Requer confirm=True. Use após copiar o cookie do DevTools do browser.
auth_sankhya_auto_loginWRITEexecutar →WRITE TOOL: tenta login automático na Sankhya via form (username/password do .env). Funciona em alguns servidores Sankhya; em outros (com proteção CSRF/anti-bot) falha — nesse caso use auth_sankhya_save_jsessionid manual.
auth_google_statusexecutar →Status do token Google OAuth (Merchant Center).
auth_google_client_infoexecutar →Diagnóstico do credentials/client_secret.json: tipo (installed/web), client_id e redirect_uris cadastradas. Útil pra detectar configuração incompatível com OAuth web (tipo 'installed' não funciona em /connect/google).
auth_google_oauth_urlexecutar →Gera URL OAuth do Google para autorizar acesso ao Merchant Center. Após autorizar, Google redireciona pro callback com ?code=... que auth_google_exchange_code converte em token salvo.
auth_google_exchange_codeWRITEexecutar →WRITE TOOL: troca o code recebido no callback Google por um refresh_token. Salva em credentials/token.json. Requer confirm=True.
auth_ml_statusexecutar →Status do token Mercado Livre.
auth_ml_oauth_urlexecutar →Gera URL OAuth do Mercado Livre.
auth_ml_exchange_codeWRITEexecutar →WRITE TOOL: troca code do ML por access_token + refresh_token. Salva em credentials/ml_token.json.
auth_whatsapp_statusexecutar →Status da config WhatsApp Business.
auth_whatsapp_save_configWRITEexecutar →WRITE TOOL: salva WHATSAPP_BUSINESS_ID e WHATSAPP_PHONE_NUMBER_ID em credentials/whatsapp_config.json (lido pelo meta_whatsapp tools).
facebook_list_pagesexecutar →Lista as páginas do Facebook que o usuário conectado administra. Retorna id, name, category e access_token específico de cada página.
facebook_publish_postWRITEexecutar →WRITE TOOL: publica um post de texto (com link opcional) numa página do Facebook. Requer page_id e confirm=True. Sem confirm faz dry-run.
facebook_publish_photoWRITEexecutar →WRITE TOOL: publica uma foto numa página do Facebook. image_url precisa ser HTTPS publica. Requer confirm=True.
facebook_recent_postsexecutar →Lista os posts publicados recentemente numa página. Retorna id, created_time, message, permalink_url, reactions, comments, shares.
facebook_post_statusexecutar →Status detalhado de um post específico: reactions, comments, shares, permalink. Use para acompanhar engagement após publicar.
facebook_publish_historyexecutar →Retorna o log de publicações feitas via Triglav Hub (credentials/facebook_publish_log.json). Últimas 200 entradas.
facebook_page_insightsexecutar →Retorna métricas de engajamento de uma página: page_impressions, page_engaged_users, page_post_engagements (últimos 28 dias).
whatsapp_send_textWRITEexecutar →WRITE TOOL: envia mensagem de texto WhatsApp para um contato. Só funciona se o contato iniciou conversa nas últimas 24h (janela de conversa) ou se for resposta a uma mensagem do contato. Para 1ª mensagem outbound, use whatsapp_send_template.
whatsapp_send_templateWRITEexecutar →WRITE TOOL: envia mensagem usando um template aprovado (única forma de iniciar conversa fora da janela de 24h). Lista de templates: https://business.facebook.com/wa/manage/message-templates/
whatsapp_list_templatesexecutar →Lista templates aprovados no WhatsApp Business. Retorna nome, status (APPROVED/REJECTED/PENDING) e categoria.
whatsapp_phone_infoexecutar →Retorna informações do número WhatsApp Business configurado: display name, quality rating, status do número.
whatsapp_list_business_accountsexecutar →Descobre as WhatsApp Business Accounts (WABAs) que o token Meta atual tem acesso. Usado pelo dashboard pra montar dropdown sem o usuário precisar digitar o WABA ID manualmente.
whatsapp_list_phone_numbersexecutar →Lista os números de telefone WhatsApp Business cadastrados numa WABA. Retorna id (Phone Number ID), display_phone_number e verified_name de cada número. Use junto com whatsapp_list_business_accounts pra montar dropdown de seleção sem o usuário digitar IDs.
ai_keys_statusexecutar →Lista status de cada provedor AI (Anthropic, OpenAI, Gemini): se tem key configurada (env ou JSON), e onde (origem). Não retorna as chaves em si — só o status.
ai_get_keyexecutar →SERVER-SIDE ONLY: retorna a API key REAL de um provider (não mascarada). Usado pelo /api/chat do dashboard pra resolver a key dinamicamente. NUNCA chame essa tool a partir do browser — exposição vazaria a key. Origem: env (process.env) ou ai_keys.json (salvo via UI).
ai_set_default_providerWRITEexecutar →WRITE TOOL: define qual provider é o padrão usado pelo /api/chat (anthropic, openai ou google). Requer confirm=True. O provider deve estar previamente configurado com ai_save_key.
ai_save_keyWRITEexecutar →WRITE TOOL: salva uma API key de um provedor AI em credentials/ai_keys.json (lida pelo /api/chat). Validação básica de prefixo (sk-ant- para Anthropic, sk- para OpenAI, AIza para Gemini). Requer confirm=True.
ai_remove_keyWRITEexecutar →WRITE TOOL: remove a API key salva de um provedor. Requer confirm=True.
ai_test_keyexecutar →Testa uma API key fazendo uma chamada mínima ao provedor (messages.create com max_tokens=10). Valida que a key funciona sem gastar muito orçamento.