模型上下文协议(MCP)是一种开放标准,使 AI 代理能够与外部工具和数据源进行交互。JProfiler 提供了一个 MCP 服务器, 允许 AI 代理对 Java 应用程序进行性能分析、分析性能数据并检查堆转储。 通过此集成,您可以让 AI 代理查找性能热点、分析内存使用情况或 调查垃圾回收问题,代理将使用 JProfiler 的性能分析功能来 提供答案。
支持的 AI 代理
JProfiler 的 MCP 集成支持以下 AI 代理:
-
Claude Code
Anthropic 基于 CLI 的编码代理。支持全局和项目范围的集成。 -
Claude Desktop
Anthropic 的桌面应用程序。支持全局集成。 -
Codex
OpenAI 基于 CLI 的编码代理。支持全局集成。 -
Gemini CLI
Google 基于 CLI 的编码代理。支持全局集成。 -
Junie
JetBrains 在 IntelliJ IDEA 中的 AI 编码代理。需要在 IDE 中手动配置, 路径为 Tools→Junie→MCP Settings。 -
Junie CLI
JetBrains 基于 CLI 的 AI 代理。支持全局和项目范围的集成。 -
OpenCode
一个开源的基于 CLI 的编码代理。支持全局和项目范围的集成。
随着更多 AI 代理采用 MCP 标准,支持的代理列表将会持续扩展。
设置集成
要将 JProfiler 与 AI 代理集成,请从主菜单调用 Session→AI Agent Integrations。这将打开包含 AI 代理集成面板的常规 设置对话框。
在 AI 代理集成面板中,从下拉列表中选择所需的 AI 代理。对于支持项目范围集成的代理, 您可以在全局配置和项目范围配置之间进行选择。 全局集成使 JProfiler MCP 服务器对当前用户的所有项目可用, 而项目范围集成则将配置文件写入所选项目目录, 因此仅对该项目有效。您可以针对不同项目多次执行集成。
点击 Integrate 按钮执行集成。JProfiler 将更新代理的
配置文件以注册 JProfiler MCP 服务器。集成完成后,AI 代理可以发现
并使用 JProfiler MCP 服务器。MCP 服务器可执行文件 bin/jpmcp 将由
AI 代理按需启动。
使用 MCP 包装器手动设置
如果 AI 代理运行的机器上未安装 JProfiler,您可以使用 @ej-technologies/jprofiler-mcp npm 包作为 MCP 包装器。该包装器 在首次使用时自动下载并配置 JProfiler,无需单独安装。 它还处理许可证激活,包括启动免费评估的选项。
要手动设置包装器,请将以下 MCP 服务器配置添加到代理的 配置文件中:
{
"mcpServers": {
"jprofiler": {
"command": "npx",
"args": ["-y", "@ej-technologies/jprofiler-mcp"]
}
}
}
可用于 bin/jpmcp 的相同命令行选项可以
追加到 args 数组中。例如,将分析限制到特定
包:
"args": ["-y", "@ej-technologies/jprofiler-mcp", "--filter", "com.example.app"]
包装器将 JProfiler 下载到用户主目录中的 .jprofiler-mcp 目录,
并使用 SHA-256 校验和验证下载内容。后续调用将复用
现有安装。
功能
JProfiler MCP 服务器 bin/jpmcp 是一个命令行工具,
通过 MCP 标准协议与 AI 代理通信。它需要有效的 JProfiler 许可证,
与 JProfiler GUI 相同。
MCP 服务器可以通过多种方式对 Java 应用程序进行性能分析:
-
启动进程
MCP 服务器可以在启用性能分析的情况下启动 Java 进程。它提供所需的 JVM 参数,并为所有已配置的子系统记录数据。 -
Attach 到本地进程
对于已在运行的 JVM,MCP 服务器可以列出可用的 Java 进程,并通过进程 ID attach 到它们。 -
Attach 到 Docker 容器
MCP 服务器支持 attach 到在 Docker 容器中运行的 Java 进程,提供 与本地进程相同的性能分析功能。
独立于对实时应用程序进行性能分析,还可以分析现有快照:
-
JProfiler 快照(.jps)
包含 CPU、内存和探针数据的完整 JProfiler 快照。可以加载两个相同类型的快照 进行基线比较,以检测性能回归。 -
HPROF 快照(.hprof)
用于内存分析的标准 Java 堆转储。 -
PHD 快照(.phd)
IBM 可移植堆转储文件。 -
JFR 录制(.jfr)
包含 CPU 和探针数据的 JDK Flight Recorder 文件。
对于内存分析,MCP 服务器可以创建正在运行的 JVM 的堆转储,包括在 Docker 容器中运行的 JVM。堆数据的分析涵盖最大对象及其保留 大小、单个对象的保留类以及整体类直方图。
性能分析
AI 代理可以检索 CPU 性能分析以及所有已记录探针子系统的热点和调用树。分析可以缩小到特定包, 代理可以迭代地深入到各个热点以检查其回溯跟踪。 对于 CPU 数据,支持仅可运行模式和 wall-time 模式。
可以使用下面描述的 --subsystems
命令行选项配置要记录的子系统。
命令行选项
虽然 MCP 服务器通常由 AI 代理在不带任何参数的情况下启动,但您可以在 代理的 MCP 配置中传递命令行选项以自定义性能分析行为:
-
-f, --filter
要进行性能分析的项目包的逗号分隔列表,例如com.example.app,org.service。这将分析限制在相关代码范围内, 减少噪音并优化 AI 代理中的上下文使用。 -
-s, --subsystems
将被记录的子系统的逗号分隔列表。可用值为cpu、jdbc、jpa、mongo_db、cassandra、http_server、http_client、ws、jndi、jms、kafka_consumer、rmi、grpc、ai、socket、file、process和gc。 默认情况下,记录cpu、jdbc、jpa、http_server、http_client、mongo_db和gc。 -
-d, --max-depth
用于回溯跟踪的最大栈深度。
复杂性能分析场景
MCP 集成在简单的性能分析场景中效果最佳。对于需要对配置文件设置进行详细控制的复杂场景, 例如自定义触发器、高级过滤器配置或专用记录模式,建议使用 JProfiler GUI 手动记录 JProfiler 快照 (.jps),然后让 AI 代理分析已记录的数据。



