项目简介
JVM监控MCP服务器(jvm-mcp-server)是一个基于 Model Context Protocol (MCP) 构建的后端应用,专注于为大型语言模型(LLM)客户端提供实时的 JVM(Java 虚拟机)运行时信息和强大的诊断工具。它利用 Arthas 的强大功能,以标准化的 MCP 协议向客户端暴露 JVM 的各项指标和操作,使得 LLM 应用能够轻松集成 JVM 监控和诊断能力,实现智能化的运维和问题排查。
主要功能点
- 全面的 JVM 监控指标: 提供实时的 JVM 线程信息、内存使用情况、类加载信息等关键运行时数据。
- 强大的诊断工具: 集成 Arthas 的核心功能,如线程堆栈分析、类信息查询、方法调用监控、动态日志级别调整等,帮助快速定位和解决 JVM 性能问题。
- 本地和远程监控: 支持监控本地 Java 进程,也支持通过 SSH 连接远程服务器上的 Java 进程。
- 易于使用的 Python 接口: 提供简洁的 Python 接口,方便用户快速启动和配置 MCP 服务器。
- 基于 MCP 协议: 采用标准化的 MCP 协议与客户端通信,易于集成到各种支持 MCP 协议的 LLM 应用中。
安装步骤
-
安装 uv 工具: uv 是一个快速的 Python 包安装和虚拟环境管理工具,推荐使用 uv 来管理项目依赖。
- 根据您的操作系统,选择合适的安装命令,例如 Linux/Mac 可以使用 'curl -LsSf https://astral.sh/uv/install.sh | sh'。
-
克隆项目仓库:
git clone https://github.com/xzq-xu/jvm-mcp-server.git cd jvm-mcp-server -
初始化项目环境: 使用 uv 创建虚拟环境并安装项目依赖。
uv venv uv sync -
配置环境变量 (可选,用于远程连接): 如果需要监控远程服务器上的 JVM 进程,需要配置 SSH 连接信息。
- 在项目根目录下创建 '.env' 文件,并根据您的环境填写以下配置(示例为 Linux/Mac 环境,Windows PowerShell 请参考仓库 README):
注意: 远程连接配置为可选步骤,如果只监控本地 JVM 进程,则无需配置。ARTHAS_SSH_HOST=user@remote-host ARTHAS_SSH_PORT=22 # 可选,默认 22 ARTHAS_SSH_PASSWORD=your-password # 如果使用密码认证
- 在项目根目录下创建 '.env' 文件,并根据您的环境填写以下配置(示例为 Linux/Mac 环境,Windows PowerShell 请参考仓库 README):
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。以下是 jvm-mcp-server 的 MCP 服务器配置信息示例:
{ "mcpServers": { "jvm-mcp-server": { "command": "uv", "args": [ "run", "jvm-mcp-server" ] } } }
参数说明:
- server name: 'jvm-mcp-server' - MCP 服务器的名称,可以自定义。
- command: 'uv' - 启动服务器的命令,这里使用 uv 工具来运行 Python 脚本。
- args: '["run", "jvm-mcp-server"]' - 传递给 'uv run' 命令的参数。
- 'run': uv 的子命令,用于运行 Python 模块或脚本。
- 'jvm-mcp-server': 要运行的 Python 模块名,对应项目中的 'jvm_mcp_server' 模块。
远程连接配置:
如果需要连接到远程 JVM MCP 服务器,并且在服务器端配置了 '.env' 文件,则 MCP 客户端的 'args' 配置可以添加 '--env-file .env' 参数,例如:
{ "mcpServers": { "jvm-mcp-server": { "command": "uv", "args": [ "run", "--env-file", ".env", "jvm-mcp-server" ] } } }
基本使用方法
-
启动 MCP 服务器:
- 在项目根目录下,使用 uv 启动服务器。
uv run jvm-mcp-server - 如果配置了远程连接,可以使用以下命令启动(需要先配置 '.env' 文件):
uv run --env-file .env jvm-mcp-server
- 在项目根目录下,使用 uv 启动服务器。
-
在 MCP 客户端中使用:
- 将上面生成的服务器配置信息添加到您的 MCP 客户端配置中。
- 客户端会根据配置信息连接到 jvm-mcp-server,并可以通过 MCP 协议调用服务器提供的工具 (Tools) 和资源 (Resources),获取 JVM 监控数据和执行诊断操作。
- 具体工具和资源的使用方法请参考项目仓库中的 'demo/arthas_mcp_server.py' 和 'src/jvm_mcp_server/server.py' 文件,其中定义了可用的工具函数,例如 'list_java_processes', 'get_thread_info', 'get_memory_info' 等。
注意: 确保您的运行环境中已安装 Java Runtime Environment (JRE) 8+,并且目标 Java 进程的运行用户与运行 MCP 服务器的用户具有相同的访问权限。
信息
分类
开发者工具