JVM MCP Server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Allows configuration of environment variables for remote connections through a .env file.

  • Used to clone the project repository.

  • Repository hosting for the JVM MCP Server project.

JVM MCP Server

English | 中文

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

## 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

git clone https://github.com/xzq-xu/jvm-mcp-server.git cd jvm-mcp-server

3. Initialize project environment using uv

# 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:

# 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

  1. Start the server using uv:
# 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
  1. Use in Python code:
from jvm_mcp_server import JvmMcpServer server = JvmMcpServer() server.run()
  1. Using MCP tools:

Using configuration file:

{ "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:

{ "mcpServers": { "jvm-mcp-server": { "command": "uv", "args": [ "--directory", "/path/to/jvm-mcp-server", "run", "jvm-mcp-server" ] } } }

Available Tools

Available Tools List

Important Notes

  1. Ensure Java is installed in the runtime environment
  2. 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)
  3. Requires access permissions to target Java process
  4. Remote mode requires SSH access and appropriate user permissions
  5. 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.

License

MIT License

-
security - not tested
A
license - permissive license
-
quality - not tested

A JVM monitoring and control platform server based on Arthas that provides a Python interface for monitoring and analyzing Java processes with capabilities for thread analysis, memory monitoring, and performance diagnostics.

  1. Features
    1. System Requirements
      1. Installation and Environment Setup
        1. 1. Install uv tool
          1. 2. Clone the project
            1. 3. Initialize project environment using uv
              1. 4. Configure environment variables (Optional, for remote connections)
              2. Quick Start
                1. Available Tools
                  1. Important Notes
                    1. Feedback
                      1. License