A server for monitoring and analyzing Java Virtual Machine (JVM) processes using Arthas, with a Python interface.
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.
# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh # Linux/macOS
# or
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Windows
# Install the package
uv pip install jvm-mcp-server
pip install jvm-mcp-server
# Clone the repository
git clone https://github.com/your-repo/jvm-mcp-server.git
cd jvm-mcp-server
# Using uv (recommended)
uv venv # Create virtual environment
uv sync # Install dependencies
# Or install in development mode
uv pip install -e .
# Local mode
uv run jvm-mcp-server
# Using environment variables file for remote mode
uv run --env-file .env jvm-mcp-server
# In specific directory
uv --directory /path/to/project run --env-file .env jvm-mcp-server
# Local mode
uvx run jvm-mcp-server
# With environment variables
uvx run --env-file .env jvm-mcp-server
from jvm_mcp_server import JvmMcpServer
# Local mode
server = JvmMcpServer()
server.run()
# Remote mode (via environment variables)
# Set SSH_HOST, SSH_PORT, SSH_USER, SSH_PASSWORD or SSH_KEY
import os
os.environ['SSH_HOST'] = 'user@remote-host'
os.environ['SSH_PORT'] = '22'
server = JvmMcpServer()
server.run()
{
"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"
]
}
}
}
JVM-MCP-Server provides a comprehensive set of tools for JVM monitoring and diagnostics:
list_java_processes
: List all Java processesget_thread_info
: Get thread information for a specific processget_jvm_info
: Get JVM basic informationget_memory_info
: Get memory usage informationget_stack_trace
: Get thread stack trace informationget_class_info
: Get detailed class information including structureget_stack_trace_by_method
: Get method call pathdecompile_class
: Decompile class source codesearch_method
: Search for methods in classeswatch_method
: Monitor method invocationsget_logger_info
: Get logger informationset_logger_level
: Set logger levelsget_dashboard
: Get system resource dashboardget_jcmd_output
: Execute JDK jcmd commandsget_jstat_output
: Execute JDK jstat commandsFor detailed documentation on each tool, see Available Tools.
JVM-MCP-Server is built on a modular architecture:
BaseCommand
: Abstract base class for all commandsCommandExecutor
: Interface for command execution (local and remote)OutputFormatter
: Interface for formatting command outputJvmMcpServer
: Main server class that registers all toolsThe project is in active development. See Native_TODO.md for current progress.
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature
)git commit -m 'Add some amazing feature'
)git push origin feature/amazing-feature
)This project is licensed under the MIT License - see the LICENSE file for details.
A Binary Ninja plugin, MCP server, and bridge that seamlessly integrates Binary Ninja with your favorite MCP client.
Interact with Gibson projects to create/update projects, explain database/API interactions, and write code within your IDE.
Interact with the Prefect API for workflow orchestration and management.
A Python REPL with persistent sessions and automatic dependency management using uv.
Access and interact with Harness platform data, including pipelines, repositories, logs, and artifact registries.
Edit the mcp.json configuration file for tools like AWS Q Developer and Claude Desktop.
Performs a Trivy scan to produce a Software Bill of Materials (SBOM) in CycloneDX format.
Automatically builds and serves context files from codebases for AI assistants like Claude.
Retrieves relevant code snippets and documents to assist in generating PyMilvus code, requiring a running Milvus instance.
A starter project for building Model Context Protocol (MCP) servers with the mcp-framework.