JVM MCP服务器
](https://mseep.ai/app/xzq-xu-jvm-mcp-server)
基于原生JDK工具的轻量级JVM监控和诊断MCP(多代理通信协议)服务器实现。为AI代理提供强大的功能来监视和分析Java应用程序,而不需要Arthas等第三方工具。
托管部署
托管部署可在 Frontier AI.
特性
- 零依赖:仅使用本机JDK工具(jps、jstack、jmap等)
- 轻量级:与基于代理的解决方案相比,资源消耗最小
- 高兼容性:适用于所有Java版本和平台
- 非侵入式:无需对目标应用程序进行修改
- 安全:仅使用JDK认证的工具和命令
- 远程监控:支持通过SSH进行本地和远程JVM监控
核心能力
基础监控
- Java进程列表和标识
- JVM基本信息检索
- 内存使用监控
- 线程信息和堆栈跟踪分析
- 类加载统计
- 详细的类结构信息
高级功能
- 方法调用路径分析
- 类反编译
- 方法搜索和检查
- 方法调用监控
- 记录器级别管理
- 系统资源仪表板
系统要求
- Python 3.6+
- JDK 8+
- Linux/Unix/Windows操作系统
- SSH访问(用于远程监控)
安装
使用紫外线(推荐)
# 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 .快速开始
启动服务器
使用紫外线(推荐)
# 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服务器基于模块化架构构建:
- 命令层:包装JDK本机命令
- 执行器层:处理本地和远程命令执行
- 格式化程序层:处理和格式化命令输出
- MCP接口:通过FastMCP协议公开功能
关键组件
BaseCommand:所有命令的抽象基类CommandExecutor:命令执行接口(本地和远程)OutputFormatter:格式化命令输出的接口JvmMcpServer:注册所有工具的主服务器类
开发状态
该项目正在积极开发中。看 Native_TOD.md 对于当前的进展。
完成
- 核心架构和指挥框架
- 基本命令实现(jps、jstack、jmap、jinfo、jcmd、jstat)
- 班级信息检索系统
- MCP工具参数类型兼容性修复
进行中
- 缓存机制
- 方法跟踪
- 性能监控
- 错误处理改进
贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
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: +AllowRedefinition添加删除方法
\\\`
#XQ|4。 在Docker中:确保容器具有足够的权限(--privileged或mount/proc) #KB| #KB|注意: list_java_processes 使用jps命令,不需要特殊权限。可能需要根据上述解决方案配置其他命令。
- JDK工具文档
- FastMCP协议规范
- 贡献者和测试者

