MCP JVM Diagnostics

Servidor MCP de diagnóstico JVM para análise de thread dump e logs de GC. Detecta deadlocks, contenção de locks e pressão de GC. Executa via npx no Node.js — sem necessidade de JVM ou Docker.

Documentação

npm version License: MIT

MCP JVM Diagnostics

Um servidor Model Context Protocol (MCP) que dá aos assistentes de IA a capacidade de analisar dumps de threads JVM e logs de GC. Ele detecta deadlocks, identifica pontos de contenção de locks, analisa a pressão de garbage collection e recomenda parâmetros de ajuste da JVM.

Por que Esta Ferramenta?

Servidores MCP de diagnóstico JVM existem (TDA, jfr-mcp, Arthas) — mas todos são baseados em Java, exigindo um runtime JVM apenas para diagnosticar problemas de JVM. Esta ferramenta roda em Node.js via npx — sem JVM, sem Docker, sem SSH.

Ela analisa artefatos offline (dumps de threads, logs de GC, histogramas de heap) em vez de exigir uma JVM em execução. Cole um dump de threads ou um log de GC e receba análise instantânea.

Recursos

  • 6 ferramentas MCP para diagnóstico abrangente de JVM
  • Análise de dump de threads — detecção de deadlocks, pontos de contenção, distribuição de estados de threads
  • Análise de log de GC — estatísticas de pausa, tendências de heap, detecção de vazamentos de memória
  • Análise de histograma de heap — candidatos a vazamento de memória, vazamentos de classloader, problemas de finalização
  • Resumo JFR — análise de arquivos Java Flight Recorder
  • Diagnóstico unificado — correlação cruzada de dados de threads e GC
  • Suporte aos formatos de GC G1, ZGC, Parallel, Serial e Shenandoah
  • Sem dependências externas — funciona com entrada de texto local, sem necessidade de chaves de API

Nível Pro

Gere relatórios de diagnóstico exportáveis (HTML + PDF) com uma chave de licença Pro.

  • Relatório completo de análise de dump de threads JVM com recomendações acionáveis
  • Exportação em PDF para compartilhar com sua equipe
  • Suporte prioritário

$9,00/mêsObtenha a Licença Pro

A chave de licença Pro ativa a ferramenta MCP generate_report no mcp-jvm-diagnostics.

Instalação

npx mcp-jvm-diagnostics

Ou instale globalmente:

npm install -g mcp-jvm-diagnostics

Configuração

Claude Desktop

Adicione a ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "jvm-diagnostics": {
      "command": "npx",
      "args": ["-y", "mcp-jvm-diagnostics"]
    }
  }
}

Nenhuma variável de ambiente é necessária — esta ferramenta funciona com a entrada de texto que você fornece.

Demonstração Rápida

Experimente estes prompts no Claude (cole sua saída JVM):

  1. "Analise este dump de threads: [cole a saída do jstack]" — Detecta deadlocks, pontos de contenção e distribuição de estados de threads
  2. "Analise este log de GC: [cole o log de GC]" — Mostra estatísticas de pausa, tendências de heap e recomendações de ajuste
  3. "Compare estes histogramas de heap para encontrar vazamentos de memória: ANTES: [cole] DEPOIS: [cole]" — Identifica classes em crescimento, vazamentos de classloader e problemas de finalização

Ferramentas

analyze_thread_dump

Analisa um dump de threads JVM e examina os estados das threads, detecta deadlocks e identifica contenção de locks.

Parâmetros:

  • thread_dump — O texto completo do dump de threads (de jstack <pid>, kill -3 ou VisualVM)

Exemplo de prompt: "Analise este dump de threads e me diga se há deadlocks"

analyze_gc_log

Analisa um log de GC e examina padrões de garbage collection, tempos de pausa e pressão de memória.

Parâmetros:

  • gc_log — O texto do log de GC (de -Xlog:gc* ou -verbose:gc)

Exemplo de prompt: "Analise este log de GC e me diga se há problemas de desempenho"

analyze_heap_histo

Analisa a saída de jmap -histo e detecta candidatos a vazamento de memória, pontos de criação de objetos e vazamentos de classloader.

Parâmetros:

  • histo — O texto da saída do jmap -histo (de jmap -histo <pid> ou jmap -histo:live <pid>)

Exemplo de prompt: "Analise este histograma de heap e me diga se há candidatos a vazamento de memória"

diagnose_jvm

Diagnóstico unificado de JVM que combina análise de dump de threads e log de GC para análise abrangente de causa raiz.

Parâmetros:

  • thread_dump (opcional) — Texto do dump de threads
  • gc_log (opcional) — Texto do log de GC

Exemplo de prompt: "Tenho um dump de threads e um log de GC do mesmo momento — diagnostique o que está errado"

compare_heap_histos

Compara dois snapshots de jmap -histo capturados em momentos diferentes para detectar padrões de crescimento de memória e candidatos a vazamento.

Parâmetros:

  • before — A primeira saída do jmap -histo (mais antiga)
  • after — A segunda saída do jmap -histo (mais recente)

Exemplo de prompt: "Compare estes dois histogramas de heap e me diga o que está crescendo"

Detecta:

  • Classes com contagens crescentes de instâncias/bytes (candidatos a vazamento)
  • Novas classes que apareceram entre os snapshots
  • Classes que desapareceram (lixeira coletada ou descarregadas)
  • Taxa geral de crescimento do heap
  • Vazamentos de classloader e crescimento da fila de finalização

Coletando Diagnósticos JVM

Dump de Threads

# Using jstack
jstack <pid> > thread-dump.txt

# Using kill signal (Linux/Mac)
kill -3 <pid>

# Using jcmd
jcmd <pid> Thread.print > thread-dump.txt

Log de GC

Adicione estas flags JVM à sua aplicação:

# Java 9+ (unified logging)
-Xlog:gc*:file=gc.log:time,level,tags

# Java 8
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:gc.log

Contribuindo

  1. Clone o repositório
  2. npm install
  3. npm run build
  4. npm test

Limitações e Problemas Conhecidos

  • Somente entrada de texto: Dumps de threads, logs de GC e histogramas de heap devem ser fornecidos como texto. O servidor não pode se anexar a uma JVM em execução nem capturar dados automaticamente.
  • Logs de GC Java 9+: O analisador de log de GC é otimizado para o formato de logging unificado (-Xlog:gc*). O formato legado -verbose:gc (Java 8) tem suporte básico, mas pode perder alguns eventos.
  • GC Shenandoah: Suporte limitado. G1, ZGC, Parallel e Serial são totalmente suportados.
  • Threads virtuais (Java 21+): O analisador de dump de threads lida com threads virtuais, mas as recomendações de análise são ajustadas para threads de plataforma.
  • Comparação de histograma de heap: Requer o formato padrão de jmap -histo ou jcmd GC.class_histogram. Formatos personalizados ou saída truncada podem não ser analisados corretamente.
  • Detecção de deadlocks: Detecta deadlocks baseados em monitores. Deadlocks de ReentrantLock podem não ser detectados se os endereços de locks não estiverem visíveis no dump de threads.
  • Sem análise histórica: Cada análise é um snapshot pontual. Para análise de tendências, compare vários snapshots manualmente.
  • Somente HotSpot/OpenJDK: O analisador tem como alvo o formato de dump de threads HotSpot/OpenJDK. Dumps de GraalVM native-image ou Eclipse OpenJ9 podem ser analisados de forma incompleta.
  • Detecção de vazamentos de classloader: A análise de heap sinaliza instâncias de ClassLoader em crescimento, mas não pode provar definitivamente um vazamento sem dados de memory profiler.

Parte do Conjunto de Backend Java MCP

Licença

MIT


Fim de vida útil: 2026-05-10.

Este servidor MCP não é mais mantido nem distribuído. A Corporation mudou para os actors do marketplace Apify. Consulte irrationalways no Apify e irrcorp/bzp-poland-tenders para o trabalho atual da Corporation.

O pacote npm foi despublicado. O repositório está arquivado apenas para referência histórica.