mcpField
J
JVM MCP Server

JVM MCP Server

本地服务
github.com/xzq-xu开发工具9130 周前更新

关于 JVM MCP Server

JVM MCP Server 是基于 JDK 原生工具(jps、jstack、jmap 等)实现的轻量级 JVM 监控与诊断 MCP 服务。它无需 Arthas 等第三方工具,适合需要让 AI Agent 分析 Java 应用的开发者,并支持通过 SSH 监控远程 JVM。

主要功能

  1. 01基于原生 JDK 工具,无第三方依赖
  2. 02列出 Java 进程并查看 JVM、内存与线程信息
  3. 03获取堆栈跟踪与类结构信息
  4. 04反编译类并搜索、监控方法调用
  5. 05支持本地与通过 SSH 的远程监控

适用场景

  1. 01让 AI Agent 排查运行中 Java 应用的线程阻塞
  2. 02查看 JVM 内存使用与类加载统计
  3. 03在远程服务器上监控 Java 进程

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 list_java_processes、get_stack_trace、decompile_class 等 JVM 监控与诊断工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

JVM MCP 服务

Python 版本 JDK 版本 许可证

English | 中文

MseeP.ai 安全评估徽章

一个基于 JDK 原生工具的轻量级 JVM 监控和诊断 MCP(多 Agent 通信协议)服务实现。它为 AI Agent 提供强大的 Java 应用监控与分析能力,无需依赖 Arthas 等第三方工具。

JVM 服务 MCP 服务

托管部署

可通过 Fronteir AI 使用托管部署。

功能特性

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

核心能力

基础监控
  • 列出并识别 Java 进程
  • 获取 JVM 基本信息
  • 监控内存使用情况
  • 分析线程信息和堆栈跟踪
  • 统计类加载情况
  • 获取详细的类结构信息
高级功能
  • 方法调用路径分析
  • 类反编译
  • 方法搜索与检查
  • 监控方法调用
  • 管理日志记录器级别
  • 系统资源仪表板

系统要求

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

安装

使用 uv(推荐)
# 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
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 .

快速开始

启动服务
使用 uv(推荐)
# 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
使用 uvx
# Local mode
uvx run jvm-mcp-server

# With environment variables
uvx run --env-file .env jvm-mcp-server
直接使用 Python
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()
配合 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. Fork 此存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add some amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 创建 Pull Request

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

NP|## 致谢 #MH| #TK|- JDK 工具文档 #WY|- FastMCP 协议规范 #JK|- 贡献者和测试人员 #BP| #KG|## 权限要求 #YM| #KB|某些 JVM 诊断命令(jstack、jmap、jinfo、jcmd 等)需要足够的权限才能附加到目标 JVM 进程。如果遇到权限错误,请尝试以下解决方案: #YB| #KB|### 常见错误 #RR| #KB|- Permission denied:权限不足 #YZ|- Unable to open socket file:无法连接到 JVM 进程 #KD|- No such process:进程不存在或已退出 #MH| #KB|### 解决方案 #BR| #KB|1. 使用 sudo 运行(推荐):sudo uv run jvm-mcp-server #XZ|2. 以目标 Java 进程的同一用户身份运行:检查 Java 进程的用户 ID,并以该用户身份运行 #HM|3. 为 JDK 添加实验性附加权限:将以下内容添加到 JVM 启动参数中:

```

-XX:+AllowRedefinitionToAddDeleteMethods

```

#XQ|4. 在 Docker 中:确保容器具有足够的权限(--privileged 或挂载 /proc) #KB| #KB|注意:list_java_processes 使用 jps 命令,不需要特殊权限。其他命令可能需要根据上述解决方案进行配置。

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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。