Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AIFire in da houseCheck it out free

jvm-mcp-server

MCP.Pizza Chef: xzq-xu

The jvm-mcp-server is a JVM platform MCP server implementation that leverages Arthas to provide real-time monitoring and analysis of Java processes. It supports local and remote JVM monitoring, thread and memory usage insights, class and method decompilation, dynamic log level adjustments, and AI-driven performance analysis, all accessible via a simple Python interface.

Use This MCP server To

Monitor local and remote Java processes in real time Query JVM thread and memory usage information Retrieve thread stack traces for debugging Analyze class loading and method call details Dynamically adjust JVM log levels during runtime Perform AI-driven JVM performance diagnostics Decompile Java classes and methods for inspection Automate JVM monitoring workflows via Python interface

README

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

jvm-mcp-server FAQ

How does jvm-mcp-server connect to remote Java processes?
It uses SSH access to securely connect and monitor remote JVMs.
What are the system requirements for running jvm-mcp-server?
Requires Python 3.10+, Java Runtime Environment 8+, and network access for Arthas downloads.
Can jvm-mcp-server adjust JVM log levels dynamically?
Yes, it supports real-time dynamic log level adjustments.
Does jvm-mcp-server support AI-based analysis?
Yes, it includes AI-driven JVM performance analysis features.
How is Arthas integrated into jvm-mcp-server?
Arthas tools are automatically downloaded and managed by the server.
Is there a programming interface for automation?
Yes, a simple Python interface is provided for monitoring and analysis automation.
Can jvm-mcp-server decompile Java classes and methods?
Yes, it supports class and method decompilation for inspection.
What platforms does jvm-mcp-server support?
It supports JVM platforms with Java 8+ and Python 3.10+ environments.