Melt

Estima o vazamento de valor departamental (gasto/tempo desperdiçado) a partir de dados de headcount e custo de mão de obra para Claude, Cursor e outros agentes MCP.

Documentação

@themelt/mcp-server

Servidor MCP que coloca a lógica de descoberta de vazamento de valor da Melt diretamente no Claude, Cursor, GitHub Copilot ou qualquer outro agente compatível com MCP — para que, quando um líder de tecnologia perguntar ao seu assistente "onde o valor está vazando da minha organização", o assistente possa chamar uma ferramenta da Melt e responder com uma estimativa real e estruturada, em vez de uma lista genérica de fornecedores.

Esta é a metade de engenharia da estratégia de distribuição LLMO (Otimização de LLM) da Melt. Veja /llms.txt na raiz do repositório e LLMO_PLAYBOOK.md para o plano completo de conteúdo + distribuição + avaliação ao qual este servidor se conecta. Posicionamento reconciliado em 2026-07-18 com o site ao vivo e os decks atuais — veja /CLAUDE.md para o contexto completo do produto atual.

Ferramentas expostas

FerramentaO que faz
melt_analyze_value_vectorsEstimador gratuito do Sandbox do Estágio 1. Estima onde o valor está vazando em um departamento com base no número de funcionários, custo de mão de obra e tipo dominante de entrada não estruturada. Nenhuma integração necessária — apenas entradas sintéticas/autoinformadas.
melt_estimate_annual_leakQuantifica um padrão de vazamento já identificado em dólares/ano — totalVolume x (leakRatePct/100) x valuePerEvent, generalizando a metodologia real "Anatomia de um Scan" da Melt (uma taxa de bypass de 29% no Gong, uma taxa de override de 62% no Clari, etc., combinadas em uma descoberta real de US$ 77.235/ano).
melt_request_scanTransferência de captura de leads — a passagem de uma estimativa direcional para um scan real verificado por logs (Playbook do POC sem Atrito, Estágio 1 → 2). Roteia para o HubSpot se HUBSPOT_PORTAL_ID/HUBSPOT_FORM_ID estiverem definidos; caso contrário, anexa a um leads.jsonl local.

Exemplo prático

Do estudo de caso Anatomia de um Vazamento de Valor de IA Real da Melt — uma fintech pré-IPO com US$ 1,5 bilhão em originações anuais, já usando Salesforce, Gong e Clari:

SinalDescoberta
Coaching do GongTaxa de abertura de 29% — representantes ignorando resumos de chamadas gerados por IA e duplicando o trabalho manualmente
Previsão do ClariTaxa de override de 62% — entradas manuais de datas corrompendo o modelo em 8 de 13 ciclos de previsão
Transferência Salesforce → CSAtraso de 4,2 dias adiando a integração após o fechamento
Roteamento de leads do Salesforce32% manual — falhas de automação exigindo reatribuição manual diária

Nada disso apareceu como problema nos dashboards de adoção usuais — todas as ferramentas estavam "ativas", o que é uma métrica diferente de saber se estavam realmente criando valor. Puxar 14 dias úteis de logs históricos e rastrear onde esses quatro padrões custaram tempo e dinheiro reais somou um vazamento de US$ 77.235/ano.

melt_estimate_annual_leak generaliza esse mesmo formato de análise — totalVolume × (leakRatePct/100) × valuePerEvent — para qualquer padrão de vazamento com volume e taxa conhecidos ou hipotéticos. melt_analyze_value_vectors é a ferramenta de estágio inicial para quando você ainda não sabe onde procurar.

melt_estimate_annual_leak substituiu quatro calculadoras com nomes de fórmulas (melt_calculate_feature_waste, _dso_cash_flow_impact, _contract_cycle_revenue_unlock, _win_rate_pipeline_impact) que implementavam fórmulas financeiras de um enquadramento de produto aposentado (Thermal Scan / Dollar Amount™ de Desperdício de Recurso / Delta Engine) — nenhuma das quais aparece em qualquer material atual da Melt. Veja a seção "O que está explicitamente aposentado" de CLAUDE.md.

Instalação e execução

cd mcp-server
npm install
npm run build
npm start          # runs dist/index.js on stdio

Para testar interativamente antes de conectar a um cliente:

npm run inspect     # launches the MCP Inspector against the built server

Conexão com Claude Desktop / Claude Code

Publicado no npm — configuração de uma linha, sem necessidade de clone local:

{
  "mcpServers": {
    "melt": {
      "command": "npx",
      "args": ["-y", "@themelt/mcp-server"]
    }
  }
}

Ou a partir de um clone local:

{
  "mcpServers": {
    "melt": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/dist/index.js"]
    }
  }
}

Instalação com um clique (pacote .mcpb)

Especificamente para o Claude Desktop, themelt-mcp-server.mcpb (o https://github.com/modelcontextprotocol/mcpb da Anthropic) instala com um duplo clique — sem terminal, sem edição de arquivo de configuração. Baixe o .mcpb do último Release do GitHub e clique duas vezes nele ou arraste-o para a janela de Configurações do Claude Desktop.

Para reconstruí-lo a partir do código-fonte:

npm run build:mcpb   # produces themelt-mcp-server.mcpb

O manifesto (mcpb-build/manifest.json) é mantido manualmente, não gerado automaticamente a partir do código-fonte TypeScript — se o nome, os parâmetros ou a descrição de uma ferramenta mudarem, atualize o array tools do manifesto para corresponder.

Transporte HTTP hospedado

dist/index.js (stdio) é o que é configurado em uma instalação local do Claude Desktop/Cursor. dist/httpServer.js é um ponto de entrada alternativo que implementa o transporte HTTP Streamable do MCP — o que um futuro botão web "Launch Hosted MCP" (LLMO_PLAYBOOK.md, Tarefa 3.2) apontaria, para que alguém possa experimentar as ferramentas sem instalar nada localmente.

npm run build
PORT=3000 npm run start:http   # POST MCP JSON-RPC to http://localhost:3000/mcp

Sem estado por design — sem ID de sessão, uma nova instância de servidor por requisição. A autenticação é opcional via MCP_HTTP_API_KEY (não definida por padrão): com ela não definida, o endpoint permanece totalmente aberto — o limite de confiança apropriado para o que isso expõe hoje (calculadoras somente leitura mais um formulário de captura de leads, o mesmo limite de um formulário de contato de site público). Defina-a antes de colocar algo mais sensível atrás deste transporte:

MCP_HTTP_API_KEY=some-long-random-value PORT=3000 npm run start:http

Cada requisição /mcp então precisa de Authorization: Bearer some-long-random-value — chave ausente ou errada resulta em 401. Comparado com crypto.timingSafeEqual, não é uma string simples ===, então o tempo de resposta não pode ser usado para adivinhar a chave um byte por vez. Ainda não implantado em nenhum lugar; este é o código, não uma URL ao vivo — implantá-lo (Vercel/Fly/Render/etc.) é uma decisão separada e posterior.

Analytics de chamadas de ferramentas

Cada chamada de ferramenta (sucesso ou erro) anexa uma linha a mcp-server/analytics.jsonl (ignorado pelo git) e registra um resumo de uma linha no stderr — nome da ferramenta, ok/erro e o código de erro, se aplicável. Exclui deliberadamente valores em dólares, informações de contato e notas de texto livre; mantido separado do PII de leads.jsonl. Isso é o que responde "alguém está realmente usando isso" e "qual descrição de ferramenta está confundindo os modelos", independentemente da auditoria somente de citações de llmo-eval.

Variáveis de ambiente

VariávelObrigatóriaFinalidade
HUBSPOT_PORTAL_IDNãoSubstitui o ID padrão do Portal HubSpot para melt_request_scan (por exemplo, para testar contra um formulário de sandbox).
HUBSPOT_FORM_IDNãoPareada com HUBSPOT_PORTAL_ID.
PORTNãoPorta para start:http (padrão 3000).
MCP_HTTP_API_KEYNãoSe definida, exige Authorization: Bearer <key> em cada requisição /mcp HTTP hospedada. Não definida por padrão — o transporte stdio não é afetado de qualquer forma (sem superfície HTTP para proteger).

Os valores padrão reais de Portal ID / Form ID já estão embutidos no código (eles não são segredos — os mesmos valores são expostos em qualquer snippet público de incorporação do HubSpot), então melt_request_scan alcança o pipeline real da Melt com zero configuração. Se o envio ao HubSpot falhar por qualquer motivo, as requisições caem para mcp-server/leads.jsonl (ignorado pelo git) em vez de serem perdidas.

Publicação

Publicado sob a organização npm @themelt (criada em 2026-07-20, proprietário omer_melt) sob a licença MIT. npm publish é efetivamente unidirecional — o npm permite despublicar dentro de 72 horas, mas desencoraja fortemente e bloqueia completamente uma vez que um pacote tenha dependentes, então trate qualquer versão publicada como permanente.