English | 中文 A lightweight JVM monitoring and diagnostic MCP (Multi-Agent Communication Protocol) server implementation based on native JDK tools. Provides AI agents with powerful capabilities to monitor and analyze Java applications without requiring third-party tools like Arthas. Hosted deployment A hosted deployment is available on Fronteir AI. Features - **Zero Dependencies**: Uses only native JDK tools (jps, jstack, jmap, etc.) - **Lightweight**: Minimal resource consumption compared to agent-based solutions - **High Compatibility**: Works with all Java versions and platforms - **Non-Intrusive**: No modifications to target applications required - **Secure**: Uses only JDK certified tools and commands - **Remote Monitoring**: Support for both local and remote JVM monitoring via SSH Core Capabilities Basic Monitoring - Java process listing and identification - JVM basic information retrieval - Memory usage monitoring - Thread information and stack trace analysis - Class loading statistics - Detailed class structure information Advanced Features - Method call path analysis - Class decompilation - Method search and inspection - Method invocation monitoring - Logger level management - System resource dashboard System Requirements - Python 3.6+ - JDK 8+ - Linux/Unix/Windows OS - SSH access (for remote monitoring) Installation Using uv (Recommended) Using pip From Source Quick Start Starting the Server Using uv (Recommended) Using uvx Using Python directly Using with MCP Configuration Available Tools JVM-MCP-Server provides a comprehensive set of tools for JVM monitoring and diagnostics: - list_java_processes: List all Java processes - get_thread_info: Get thread information for a specific process - get_jvm_info: Get JVM basic information - get_memory_info: Get memory usage information - get_stack_trace: Get thread stack trace information - get_class_info: Get detailed class information including structure - get_stack_trace_by_method: Get method call path - decompile_class: Decompile class source code - search_method: Search for methods in classes - watch_method: Monitor method invocations - get_logger_info: Get logger information - set_logger_level: Set logger levels - get_dashboard: Get system resource dashboard - get_jcmd_output: Execute JDK jcmd commands - get_jstat_output: Execute JDK jstat commands For detailed documentation on each tool, see Available Tools. Architecture JVM-MCP-Server is built on a modular architecture: 1. **Command Layer**: Wraps JDK native commands 2. **Executor Layer**: Handles local and remote command execution 3. **Formatter Layer**: Processes and formats command output 4. **MCP Interface**: Exposes functionality through FastMCP protocol Key Components - BaseCommand: Abstract base class for all commands - CommandExecutor: Interface for command execution (local and remote) - OutputFormatter: Interface for formatting command output - JvmMcpServer: Main server class that registers all tools Development Status The project is in active development. See Native_TODO.md for current progress.