目录

Arthas MCP Server

概览

Arthas MCP Server 是 Arthas 的实验性模块,实现了基于 MCP(Model Context Protocol)在新窗口打开 协议的服务端。该模块通过 HTTP/Netty 提供统一的 JSON-RPC 2.0 接口,使 AI 助手能够通过工具调用的方式执行 Arthas 诊断命令。

MCP(Model Context Protocol)是由 Anthropic 提出的一种标准化协议,用于连接 AI 助手与各种工具和数据源。通过 Arthas MCP Server,AI 助手可以自然地执行 Java 应用诊断任务,大幅提升开发和运维效率。

主要特性

  • AI 原生集成:支持主流 AI 客户端(Claude Desktop、Cherry Studio、Cline 等)
  • 标准化协议:完整实现 MCP 协议规范(版本 2025-03-26),支持 Streamable Http 传输
  • 26 个诊断工具:涵盖 JVM 监控、类加载、方法追踪等核心功能
  • 安全认证:支持 Bearer Token 认证机制

支持的诊断工具

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

JVM 相关工具(12 个)

工具功能描述
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 相关工具(8 个)

工具功能描述
sc查看 JVM 已加载的类信息,支持详细信息和统计
sm查看已加载类的方法信息,显示方法签名和修饰符
jad反编译指定已加载类的源码,将字节码反编译为 Java 代码
classloaderClassLoader 诊断工具,查看类加载器统计、继承树、URLs
mc内存编译器,将 Java 源码编译为字节码文件
redefine重定义类,加载外部 class 文件重新定义 JVM 中的类
retransform重新转换类,触发类的重新转换和字节码增强
dump将 JVM 中实际运行的 class 字节码导出到指定目录

监控诊断工具(6 个)

工具功能描述
monitor实时监控指定类的指定方法的调用情况
stack输出当前方法被调用的调用路径,帮助分析方法的调用链路
trace追踪方法内部调用路径,输出每个节点的耗时信息
tt方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息
watch观察指定方法的调用情况,包含入参、返回值和抛出异常等信息

快速开始

1. 配置 MCP 服务

arthas.properties 配置文件中启用 MCP 服务:

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

2. 启动应用

正常启动 Arthas 或带有 Arthas 的 Java 应用。默认情况下,MCP 服务会在 HTTP 端口 8563 上暴露。

验证 MCP 服务是否启动:

curl http://localhost:8563/mcp

如果返回 MCP 协议信息,说明服务已成功启动。

3. 配置 AI 客户端

以下是几种主流 AI 客户端的配置方式:

Cherry Studio / Cline

在设置中添加 MCP 服务器配置:

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

配置说明

Arthas 配置项

配置项说明默认值
arthas.mcpEndpointMCP 服务的访问路径无(需要手动配置)
arthas.httpPortHTTP 服务端口8563
arthas.password认证密码(开启认证时使用)

认证配置

当在配置文件中设置了 arthas.password 时,MCP Server 会自动开启鉴权功能。此时需要在 AI 客户端配置中添加认证头,携带的 Bearer Token 就是配置的密码值。

配置文件示例(arthas.properties):

arthas.password=your-secure-password

AI 客户端配置示例:

{
  "mcpServers": {
    "arthas-mcp": {
      "type": "streamableHttp",
      "url": "http://localhost:8563/mcp",
      "headers": {
        "Authorization": "Bearer your-secure-password"
      }
    }
  }
}

注意

注意:Authorization header 中的 token 必须与 arthas.password 配置的值完全一致。

反馈与贡献

提示

Arthas MCP Server 是实验性功能,欢迎提供反馈和建议!