arthas-mcp-server/README.md
arthas-mcp-server 是 Arthas 的实验模块,实现了基于 MCP(Model Context Protocol)协议(版本 2025-03-26)的服务端。该模块通过 HTTP/Netty 提供统一的 JSON-RPC 2.0 接口,支持 AI 使用工具调用的方式执行 arthas 的命令。
Arthas MCP 服务集成了 26 个核心诊断工具,按功能分类如下:
• dashboard - 实时展示 JVM/应用面板,支持自定义刷新间隔和次数控制
• heapdump - 生成 JVM heap dump 文件,支持 --live 选项只导出存活对象
• jvm - 查看当前 JVM 的信息
• mbean - 查看或监控 MBean 属性信息,支持实时刷新和模式匹配
• memory - 查看 JVM 的内存信息
• thread - 查看线程信息及堆栈,支持查找阻塞线程和最忙线程
• sysprop - 查看或修改系统属性,支持动态修改 JVM 系统属性
• sysenv - 查看系统环境变量
• vmoption - 查看或更新 VM 选项,支持动态调整 JVM 参数
• perfcounter - 查看 Perf Counter 信息,显示 JVM 性能计数器
• vmtool - 虚拟机工具集合,支持强制 GC、获取实例、线程中断等
• getstatic - 查看类的静态字段值
• ognl - 执行 OGNL 表达式,动态调用方法和访问字段
• sc - 查看 JVM 已加载的类信息,支持详细信息和统计
• sm - 查看已加载类的方法信息,显示方法签名和修饰符
• jad - 反编译指定已加载类的源码,将字节码反编译为 Java 代码
• classloader - ClassLoader 诊断工具,查看类加载器统计、继承树、URLs
• mc - 内存编译器,将 Java 源码编译为字节码文件
• redefine - 重定义类,加载外部 class 文件重新定义 JVM 中的类
• retransform - 重新转换类,触发类的重新转换和字节码增强
• dump - 将 JVM 中实际运行的 class 字节码导出到指定目录
• monitor - 实时监控指定类的指定方法的调用情况
• stack - 输出当前方法被调用的调用路径,帮助分析方法的调用链路
• trace - 追踪方法内部调用路径,输出每个节点的耗时信息,支持条件过滤和耗时阈值设置
• tt - 方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,支持事后查看和重放
• watch - 观察指定方法的调用情况,包含入参、返回值和抛出异常等信息,支持实时流式输出
首先需要在 arthas.properties 中配置 mcp 服务的 path:
# MCP (Model Context Protocol) configuration
arthas.mcpEndpoint=/mcp
正常启动服务之后,服务对外暴露8563,在 cherry-studio/cline 等 ai 客户端中配置:
在设置中添加 MCP 服务器:
{
"mcpServers": {
"arthas-mcp": {
"type": "streamableHttp",
"url": "http://localhost:8563/mcp"
}
}
}
开启认证服务的时候需要添加 headers,这里的 token 直接使用 password:
"arthas-mcp-streamable-server": {
"type": "streamableHttp",
"url": "http://localhost:8563/mcp",
"headers": {
"Authorization": "Bearer password"
}
}