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
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ês — Obtenha 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):
- "Analise este dump de threads: [cole a saída do jstack]" — Detecta deadlocks, pontos de contenção e distribuição de estados de threads
- "Analise este log de GC: [cole o log de GC]" — Mostra estatísticas de pausa, tendências de heap e recomendações de ajuste
- "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 (dejstack <pid>,kill -3ou 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 (dejmap -histo <pid>oujmap -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 threadsgc_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
- Clone o repositório
npm installnpm run buildnpm 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 -histooujcmd 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
- mcp-db-analyzer — Análise de esquema PostgreSQL/MySQL/SQLite
- mcp-spring-boot-actuator — Análise de saúde, métricas e beans do Spring Boot
- mcp-redis-diagnostics — Diagnóstico de memória, slowlog e clientes Redis
- mcp-migration-advisor — Análise de risco de migrações Flyway/Liquibase
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.