JProfiler帮助文档

MCP 服务器

Model Context Protocol (MCP) 是一项开放标准,使人工智能 (AI) Agent 能够与外部工具和数据源进行交互。JProfiler 提供了 MCP 服务器,允许人工智能 (AI) Agent 分析 (Profile) Java 应用程序、分析性能数据并检查堆转储 (Heap Dump)。通过此集成,您可以让人工智能 (AI) Agent 查找性能热点 (Hot Spot)、分析内存使用情况或调查垃圾回收 (GC) 问题,Agent 将利用 JProfiler 的 Profiling 功能来提供解答。

支持的人工智能 (AI) Agent

JProfiler 的 MCP 集成支持以下人工智能 (AI) Agent:

  • Antigravity
    Google 的 Agent 编码工具。支持全局集成。
  • Claude Code
    Anthropic 基于 CLI 的编码 Agent。支持全局和项目级作用域的集成。
  • Claude Desktop
    Anthropic 的桌面应用程序。支持全局集成。
  • Codex
    OpenAI 基于 CLI 的编码 Agent。支持全局集成。
  • Cursor
    一款由人工智能 (AI) 驱动的代码编辑器。支持全局和项目级作用域的集成。
  • Junie
    IntelliJ IDEA 中 JetBrains 的人工智能 (AI) 编码 Agent。需要在 IDE 中的 Tools→Junie→MCP Settings 下进行手动配置。
  • Junie CLI
    JetBrains 基于 CLI 的人工智能 (AI) Agent。支持全局和项目级作用域的集成。
  • OpenCode
    一款开源的基于 CLI 的编码 Agent。支持全局和项目级作用域的集成。

随着更多人工智能 (AI) Agent 采用 MCP 标准,支持的 Agent 列表将会持续扩展。

设置集成

要将 JProfiler 与人工智能 (AI) Agent 集成,请从主菜单中调用 Session→AI Agent Integrations。这将打开包含人工智能 (AI) Agent 集成面板的常规设置对话框。

在人工智能 (AI) Agent 集成面板中,从下拉列表中选择所需的人工智能 (AI) Agent。对于支持项目级作用域集成的 Agent,您可以在全局配置与项目级作用域配置之间进行选择。全局集成使 JProfiler MCP 服务器对当前用户的所有项目都可用,而项目级作用域的集成则将配置文件写入所选的项目目录中,因此它仅对该项目有效。您可以针对不同的项目多次执行集成。

单击 Integrate 按钮以执行集成。JProfiler 将更新 Agent 的配置文件以注册 JProfiler MCP 服务器。集成后,人工智能 (AI) Agent 即可发现并使用 JProfiler MCP 服务器。MCP 服务器可执行文件 bin/jpmcp 会在需要时由人工智能 (AI) Agent 启动。

CLI 设置

ej-technologies 网站上的 MCP 设置页面 提供了单行安装脚本,用于为人工智能 (AI) Agent 下载并配置 MCP 服务器。在 macOS 和 Linux 上,请运行:

curl -fsSL https://www.ej-technologies.com/jprofiler/mcp/install.sh | sh

在 Windows 上,请在 PowerShell 中运行以下命令:

irm https://www.ej-technologies.com/jprofiler/mcp/install.ps1 | iex

使用 npm Wrapper 手动设置

如果您更倾向于使用 npm 并手动配置 MCP 服务器,可以使用 @ej-technologies/jprofiler-mcp npm 包。它在首次使用时会自动下载并配置 JProfiler,因此无需单独安装。它还负责处理许可证激活,包括启动免费评估的选项。

将以下 MCP 服务器配置添加到 Agent 的配置文件中:

{
  "mcpServers": {
    "JProfiler": {
      "command": "npx",
      "args": ["-y", "@ej-technologies/jprofiler-mcp@latest"]
    }
  }
}

该 Wrapper 会将 JProfiler 下载到用户主目录下的 .jprofiler-mcp 目录中,并通过 SHA-256 校验和验证下载。后续调用将重用现有安装。

功能特性

JProfiler MCP 服务器 bin/jpmcp 是一个命令行工具,通过 MCP 标准协议与人工智能 (AI) Agent 通信。与 JProfiler GUI 一样,它需要有效的 JProfiler 许可证。

MCP 服务器可以通过多种方式对 Java 应用程序进行分析 (Profile):

  • 启动进程
    MCP 服务器可以在启用 Profiling 的情况下启动 Java 进程。它会提供所需的 JVM 参数并记录所有已配置子系统的数据。
  • Attach 到本地进程
    对于已经在运行的 JVM,MCP 服务器可以列出可用的 Java 进程,并通过进程 ID Attach 到它们。
  • Attach 到 Docker 容器 (Container)
    MCP 服务器支持 Attach 到在 Docker 容器 (Container) 中运行的 Java 进程,提供与本地进程相同的 Profiling 功能。

独立于对实时应用程序的分析 (Profile),还可以对现有的快照进行分析:

  • JProfiler 快照 (.jps)
    包含 CPU、内存和探针 (Probe) 数据的完整 JProfiler 快照。可以加载同一类型的两个快照进行基准对比,以检测性能退化。
  • HPROF 快照 (.hprof)
    用于内存分析的标准 Java 堆转储。
  • PHD 快照 (.phd)
    IBM 可移植堆转储 (PHD) 文件。
  • JFR 记录 (.jfr)
    包含 CPU、探针 (Probe) 和对象计数数据的 JDK Flight Recorder 文件。

您可以向 Agent 询问的内容

在记录会话 (Session) 或加载快照后,您可以使用自然语言向人工智能 (AI) Agent 提出有关已记录数据的问题。Agent 会自行选择合适的分析步骤。支持以下方面:

  • 性能
    CPU 热点 (Hot Spot) 和带有反向跟踪的调用树 (Call Tree)、按线程归因分析以及挂钟时间分析。例如:“为什么 checkout 端点响应慢?”
  • 内存
    堆转储分析,包括最大对象、保留大小、到 GC 根的引用链以及自动检测浪费的内存。Agent 还可以根据需要创建正在运行的 JVM 的堆转储。例如:“此堆转储中是什么占用了内存?”
  • 分配 (Allocation)
    分配 (Allocation) 热点 (Hot Spot) 和显示对象创建位置的调用树 (Call Tree),包括已被垃圾回收的对象。例如:“为什么分配 (Allocated) 了这么多字节数组?”
  • 探针 (Probe) 事件
    来自更高级别探针 (Probe)(例如 JDBC 或 HTTP 服务器)的单个事件,例如单个 SQL 语句或 HTTP 请求及其耗时和调用栈 (Call Stack)。例如:“哪些 SQL 语句最慢?”
  • 遥测 (Telemetry)
    堆内存、CPU 负载、线程、GC 活动和其他已记录遥测 (Telemetry) 的时间序列。例如:“在压力测试期间堆使用量是如何变化的?”
  • 垃圾回收
    单个垃圾回收事件及其原因、暂停时间以及每次回收前后的堆使用情况。例如:“为什么会有这么长的 GC 暂停?”
  • Monitor 与锁
    锁争用和死锁分析,包括带有调用栈 (Call Stack) 的锁定历史。例如:“我的线程在争用哪个锁?”
  • 线程
    线程转储以及按线程状态划分的每个线程时间细分。例如:“所有线程都在做什么?”
  • MBean
    从被分析 (Profiled) 的 JVM 中捕获的 JMX MBean 属性值快照。例如:“连接池的当前大小是多少?”
  • 慢速异常值 (Outlier)
    偶发性显著慢于平时的方法,并可检查最慢的单次调用。例如:“为什么此调用有时会慢上百倍?”

已记录的子系统和被分析 (Profiled) 的包由人工智能 (AI) Agent 在记录配置中为每个会话 (Session) 进行选择,因此在安装 MCP 服务器时无需进行设置。

复杂的 Profiling 场景

特定于探针 (Probe) 的设置可以通过 advanced 记录配置中的 probeConfig 键进行调整,例如更改 HTTP 服务器探针 (Probe) 的 URL 拆分,或在 JDBC 探针 (Probe) 中记录 Prepared Statement 参数。属性名称对应于 JProfiler 安装目录中 config/jprofiler_config.xsd 内的会话 (Session) 配置,Agent 也可以从 jprofiler://config/probes MCP 资源中读取它们。

整个会话 (Session) 范围的调优设置,例如调用树拆分的拆分上限或采样频率,可以直接作为 advanced 记录配置的键进行设置。所有受支持设置的参考信息均通过 jprofiler://config/session MCP 资源提供。

MCP 记录集成最适用于简单的 Profiling 场景。对于需要对配置文件设置 (Profiling Setting) 进行精细控制的复杂场景(例如自定义触发器 (Trigger)、高级过滤器配置或专门的记录模式),建议使用 JProfiler GUI 手动记录 JProfiler 快照 (.jps),然后让人工智能 (AI) Agent 分析记录的数据。