返回市场
JVM-MCP服务器

JVM-MCP服务器

作者:xzq-xu72 星标更新:2025-11-03

项目介绍

JVM MCP 服务器

<p align="center"> <img src="https://img.shields.io/badge/Python-3.6+-blue.svg" alt="Python 版本"> <img src="https://img.shields.io/badge/JDK-8+-green.svg" alt="JDK 版本"> <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="许可证"> </p>

English | 中文

MseeP.ai 安全评估徽章

基于原生JDK工具的轻量级JVM监控和诊断MCP(多代理通信协议)服务器实现。提供AI代理强大的能力来监控和分析Java应用程序,无需使用像Arthas这样的第三方工具。

<a href="https://glama.ai/mcp/servers/@xzq-xu/jvm-mcp-server"> <img width="380" height="200" src="https://gips1.baidu.com/it/u=581357734,80670480&fm=3081&app=3081&f=PNG?w=760&h=400" alt="JVM 服务器 MCP 服务器" /> </a>

功能

  • 零依赖:仅使用原生JDK工具(如jps、jstack、jmap等)
  • 轻量级:与基于代理的解决方案相比,资源消耗极低
  • 高兼容性:适用于所有Java版本和平台
  • 非侵入性:无需对目标应用进行修改
  • 安全:仅使用JDK认证的工具和命令
  • 远程监控:支持通过SSH进行本地和远程JVM监控

核心能力

基础监控

  • 列出并识别Java进程
  • 获取JVM基础信息
  • 监控内存使用情况
  • 分析线程信息和堆栈跟踪
  • 统计类加载情况
  • 获取详细的类结构信息

高级特性

  • 方法调用路径分析
  • 类反编译
  • 方法搜索和检查
  • 方法调用监控
  • 日志级别管理
  • 系统资源仪表盘

系统需求

  • Python 3.6+
  • JDK 8+
  • Linux/Unix/Windows 操作系统
  • SSH 访问权限(用于远程监控)

安装

使用uv(推荐)

# 如果尚未安装,请安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh  # Linux/macOS
# 或者
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"  # Windows

# 安装包
uv pip install jvm-mcp-server

使用pip

pip install jvm-mcp-server

从源码安装

# 克隆仓库
git clone https://github.com/your-repo/jvm-mcp-server.git
cd jvm-mcp-server

# 使用uv(推荐)
uv venv  # 创建虚拟环境
uv sync  # 安装依赖

# 或在开发模式下安装
uv pip install -e .

快速开始

启动服务器

使用uv(推荐)

# 本地模式
uv run jvm-mcp-server

# 使用环境变量文件进行远程模式
uv run --env-file .env jvm-mcp-server

# 在特定目录中
uv --directory /path/to/project run --env-file .env jvm-mcp-server

使用uvx

# 本地模式
uvx run jvm-mcp-server

# 使用环境变量
uvx run --env-file .env jvm-mcp-server

直接使用Python

from jvm_mcp_server import JvmMcpServer

# 本地模式
server = JvmMcpServer()
server.run()

# 远程模式(通过环境变量)
# 设置SSH_HOST, SSH_PORT, SSH_USER, SSH_PASSWORD或SSH_KEY
import os
os.environ['SSH_HOST'] = 'user@remote-host'
os.environ['SSH_PORT'] = '22'
server = JvmMcpServer()
server.run()

使用MCP配置

{
  "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 提供了一整套工具用于JVM监控和诊断:

  • list_java_processes:列出所有Java进程
  • get_thread_info:获取特定进程的线程信息
  • get_jvm_info:获取JVM基础信息
  • get_memory_info:获取内存使用信息
  • get_stack_trace:获取线程堆栈跟踪信息
  • get_class_info:获取详细的类信息,包括结构
  • get_stack_trace_by_method:获取方法调用路径
  • decompile_class:反编译类源代码
  • search_method:在类中搜索方法
  • watch_method:监控方法调用
  • get_logger_info:获取日志信息
  • set_logger_level:设置日志级别
  • get_dashboard:获取系统资源仪表盘
  • get_jcmd_output:执行JDK jcmd命令
  • get_jstat_output:执行JDK jstat命令

有关每个工具的详细文档,请参阅可用工具

架构

JVM-MCP-Server 建立在一个模块化架构上:

  1. 命令层:封装JDK原生命令
  2. 执行层:处理本地和远程命令执行
  3. 格式化层:处理和格式化命令输出
  4. MCP接口:通过FastMCP协议暴露功能

关键组件

  • BaseCommand:所有命令的抽象基类
  • CommandExecutor:命令执行接口(本地和远程)
  • OutputFormatter:命令输出格式化接口
  • JvmMcpServer:注册所有工具的主要服务器类

开发状态

该项目正在积极开发中。请参阅Native_TODO.md了解当前进度。

已完成

  • 核心架构和命令框架
  • 基础命令实现(jps、jstack、jmap、jinfo、jcmd、jstat)
  • 类信息检索系统
  • MCP工具参数类型兼容性修复

正在进行中

  • 缓存机制
  • 方法追踪
  • 性能监控
  • 错误处理改进

贡献

欢迎贡献!请随时提交Pull Request。

  1. 分叉仓库
  2. 创建你的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m '添加一些惊人的功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开一个Pull Request

许可证

此项目采用MIT许可证 - 详情请参阅LICENSE文件。

致谢

  • JDK工具文档
  • FastMCP协议规范
  • 贡献者和测试人员