Back to Arthas

arthas-mcp-server

arthas-mcp-server/README.md

3.1.03.3 KB
Original Source

arthas-mcp-server

项目简介

arthas-mcp-serverArthas 的实验模块,实现了基于 MCP(Model Context Protocol)协议(版本 2025-03-26)的服务端。该模块通过 HTTP/Netty 提供统一的 JSON-RPC 2.0 接口,支持 AI 使用工具调用的方式执行 arthas 的命令。

Arthas MCP 服务集成了 26 个核心诊断工具,按功能分类如下:

JVM 相关工具

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 表达式,动态调用方法和访问字段

Class/ClassLoader 相关工具

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:

JSON
# MCP (Model Context Protocol) configuration
arthas.mcpEndpoint=/mcp

正常启动服务之后,服务对外暴露8563,在 cherry-studio/cline 等 ai 客户端中配置:

在设置中添加 MCP 服务器:

JSON
{
  "mcpServers": {
    "arthas-mcp": {
      "type": "streamableHttp",
      "url": "http://localhost:8563/mcp"
    }
  }
}

开启认证服务的时候需要添加 headers,这里的 token 直接使用 password:

java
"arthas-mcp-streamable-server": {
      "type": "streamableHttp",
      "url": "http://localhost:8563/mcp",
      "headers": {
        "Authorization": "Bearer password"
      }
    }