Skip to main content

基于Arthas的JVM监控MCP服务器实现

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mseep_jvm_mcp_server-0.1.2.tar.gz (53.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mseep_jvm_mcp_server-0.1.2-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file mseep_jvm_mcp_server-0.1.2.tar.gz.

File metadata

  • Download URL: mseep_jvm_mcp_server-0.1.2.tar.gz
  • Upload date:
  • Size: 53.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for mseep_jvm_mcp_server-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3dc1488d3f96a11ee2b4ce3ec03bde0c2c90f5e5b7e3990acc987211d4962e50
MD5 1f02df7aacb855f56f1aeca1c99a6a72
BLAKE2b-256 9afd79b2d706a9824b092a632adeb48a63246b3d5105037a7afa42197691b92e

See more details on using hashes here.

File details

Details for the file mseep_jvm_mcp_server-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for mseep_jvm_mcp_server-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7ad772dc5fd345cf22c1af9d39694e3fb042bc140d1a561209d9aa9ded09d22e
MD5 b0fa60ae541519df261551ae52f8dd17
BLAKE2b-256 59e5b718826c7e03f102ea958de629d892e088d908253be650e2bf44d1e5d789

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page