@xzq-xu/jvm-mcp-server: JVM MCP Server
xzq-xu/jvm-mcp-server
27
JVM MCP Server: A Python-based tool for monitoring and analyzing Java processes using Arthas, offering features like JVM thread and memory monitoring, thread stack traces, and AI-driven performance analysis. Supports both local and remote Java process monitoring.
❓unknown
Author
xzq-xu
README
JVM MCP Server
A JVM monitoring MCP server implementation based on Arthas, providing a simple and easy-to-use Python interface for monitoring and analyzing Java processes.
Features
- Automatic download and management of Arthas tools
- Support for local and remote Java process monitoring
- Java process list querying
- Real-time JVM thread information
- JVM memory usage monitoring
- Thread stack trace information
- Class loading information querying
- Support for class and method decompilation
- Method call monitoring
- Dynamic log level adjustment
- AI-driven JVM performance analysis
System Requirements
- Python 3.10+
- Java Runtime Environment (JRE) 8+
- Network connection (for downloading Arthas)
- SSH access to target server (if using remote mode)
Installation and Environment Setup
1. Install uv tool
bash## linux shell curl -LsSf https://astral.sh/uv/install.sh | sh ## or install using pip pip install uv ## or install using pipx (if you have pipx installed) pipx install uv ## windows powershell powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2. Clone the project
bashgit clone https://github.com/xzq-xu/jvm-mcp-server.git cd jvm-mcp-server
3. Initialize project environment using uv
bash# Create virtual environment uv venv # Sync project dependencies uv sync
4. Configure environment variables (Optional, for remote connections)
Create a .env
file and add the following configurations:
bash# Linux/Mac ARTHAS_SSH_HOST=user@remote-host ARTHAS_SSH_PORT=22 # Optional, default is 22 ARTHAS_SSH_PASSWORD=your-password # If using password authentication # Windows PowerShell $env:ARTHAS_SSH_HOST="user@remote-host" $env:ARTHAS_SSH_PORT="22" # Optional, default is 22 $env:ARTHAS_SSH_PASSWORD="your-password" # If using password authentication
Quick Start
- Start the server using uv:
bash# Start in local mode uv run jvm-mcp-server # Start with environment file (if remote connection is configured) uv run --env-file .env jvm-mcp-server # Start in a specific directory (if needed) uv --directory /path/to/project run --env-file .env jvm-mcp-server
- Use in Python code:
pythonfrom jvm_mcp_server import JvmMcpServer server = JvmMcpServer() server.run()
- Using MCP tools:
Using configuration file:
json{ "mcpServers": { "jvm-mcp-server": { "command": "uv", "args": [ "--directory", "/path/to/jvm-mcp-server", "run", "--env-file", "/path/to/jvm-mcp-server/.env", "jvm-mcp-server" ] } } }
Without using configuration file, it will read system environment variables, if not present it will monitor local threads:
json{ "mcpServers": { "jvm-mcp-server": { "command": "uv", "args": [ "--directory", "/path/to/jvm-mcp-server", "run", "jvm-mcp-server" ] } } }
Available Tools
Important Notes
- Ensure Java is installed in the runtime environment
- Arthas tool will be automatically downloaded on first run (arthas will be downloaded to home directory, can be downloaded in advance and named as arthas-boot.jar)
- Requires access permissions to target Java process
- Remote mode requires SSH access and appropriate user permissions
- Recommended for use in development environment, production use should be carefully evaluated
Feedback
If you encounter any issues, please submit an Issue or Pull Request.