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 分析记录的数据。



