README_zh.md•5.45 kB
# JVM-MCP-Server
<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](README.md) | [中文](README_zh.md)
[](https://mseep.ai/app/xzq-xu-jvm-mcp-server)
基于JDK原生工具的轻量级JVM监控和诊断MCP(多智能体通信协议)服务器实现。为AI智能体提供强大的Java应用监控和分析能力,无需依赖Arthas等第三方工具。
## 功能特点
- **零依赖**:仅使用JDK原生工具(jps、jstack、jmap等)
- **轻量级**:与基于代理的解决方案相比,资源消耗更小
- **高兼容性**:适用于所有Java版本和平台
- **低侵入性**:不需要修改目标应用
- **高安全性**:仅使用JDK认证的工具和命令
- **远程监控**:通过SSH支持本地和远程JVM监控
## 核心能力
### 基础监控
- Java进程列表查询和识别
- JVM基础信息获取
- 内存使用情况监控
- 线程信息和堆栈分析
- 类加载统计
- 详细的类结构信息
### 高级特性
- 方法调用路径分析
- 类反编译
- 方法搜索和检查
- 方法调用监控
- 日志级别管理
- 系统资源面板
## 系统要求
- Python 3.6+
- JDK 8+
- Linux/Unix/Windows系统
- SSH访问权限(用于远程监控)
## 安装方法
### 使用 uv 安装(推荐)
```bash
# 如果尚未安装 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 安装
```bash
pip install jvm-mcp-server
```
### 从源码安装
```bash
# 克隆仓库
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(推荐)
```bash
# 本地模式
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
```bash
# 本地模式
uvx run jvm-mcp-server
# 使用环境变量
uvx run --env-file .env jvm-mcp-server
```
#### 使用 Python 直接启动
```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配置
```json
{
"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命令
有关每个工具的详细文档,请参阅[可用工具](./doc/available_tools.md)。
## 架构设计
JVM-MCP-Server基于模块化架构构建:
1. **命令层**:封装JDK原生命令
2. **执行器层**:处理本地和远程命令执行
3. **格式化器层**:处理和格式化命令输出
4. **MCP接口**:通过FastMCP协议暴露功能
### 核心组件
- `BaseCommand`:所有命令的抽象基类
- `CommandExecutor`:命令执行接口(本地和远程)
- `OutputFormatter`:命令输出格式化接口
- `JvmMcpServer`:注册所有工具的主服务器类
## 开发状态
该项目正在积极开发中。请参阅[Native_TODO.md](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 '添加一些惊人的功能'`)
4. 推送到分支(`git push origin feature/amazing-feature`)
5. 开启Pull Request
## 许可证
本项目采用MIT许可证 - 详见[LICENSE](LICENSE)文件。
## 致谢
- JDK工具文档
- FastMCP协议规范
- 贡献者和测试者