Model Context Protocol(MCP)은 AI 에이전트가 외부 도구 및 데이터 소스와 상호 작용할 수 있도록 해주는 개방형 표준입니다. JProfiler는 AI 에이전트가 Java 애플리케이션을 프로파일링하고 성능 데이터를 분석하며 힙 덤프를 검사할 수 있도록 지원하는 MCP 서버를 제공합니다. 이 연동을 통해 AI 에이전트에게 성능 핫스팟 찾기, 메모리 사용량 분석 또는 가비지 컬렉션 문제 조사를 요청할 수 있으며, 에이전트는 JProfiler의 프로파일링 기능을 활용하여 답변을 제공합니다.
지원되는 AI 에이전트
JProfiler의 MCP 연동은 다음 AI 에이전트를 지원합니다.
-
Antigravity
Google의 에이전틱 코딩 도구입니다. 글로벌 연동을 지원합니다. -
Claude Code
Anthropic의 CLI 기반 코딩 에이전트입니다. 글로벌 및 프로젝트 범위 연동을 모두 지원합니다. -
Claude Desktop
Anthropic의 데스크톱 애플리케이션입니다. 글로벌 연동을 지원합니다. -
Codex
OpenAI의 CLI 기반 코딩 에이전트입니다. 글로벌 연동을 지원합니다. -
Cursor
AI 기반 코드 에디터입니다. 글로벌 및 프로젝트 범위 연동을 모두 지원합니다. -
Junie
IntelliJ IDEA에 내장된 JetBrains의 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 에이전트에 의해 필요에 따라 시작됩니다.
CLI 설정
ej-technologies 웹사이트의 MCP 설정 페이지에서 AI 에이전트용 MCP 서버를 다운로드하고 구성하는 원라인(one-line) 설치 스크립트를 제공합니다. 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 래퍼를 사용한 수동 설정
npm을 사용하여 MCP 서버를 수동으로 구성하려는 경우 @ej-technologies/jprofiler-mcp npm 패키지를 사용할 수 있습니다. 처음 사용할 때 JProfiler를 자동으로 다운로드하고 프로비저닝하므로 별도의 설치가 필요하지 않습니다. 또한 무료 평가판 시작 옵션을 포함한 라이선스 활성화도 처리합니다.
에이전트의 설정 파일에 다음 MCP 서버 구성을 추가합니다.
{
"mcpServers": {
"JProfiler": {
"command": "npx",
"args": ["-y", "@ej-technologies/jprofiler-mcp@latest"]
}
}
}
래퍼는 사용자의 홈 디렉터리 내 .jprofiler-mcp 디렉터리에 JProfiler를 다운로드하고 SHA-256 체크섬으로 다운로드를 검증합니다. 이후 호출 시에는 기존 설치를
재사용합니다.
기능
JProfiler MCP 서버 bin/jpmcp는 MCP 표준 프로토콜을 통해 AI 에이전트와 통신하는 커맨드라인 도구입니다. JProfiler GUI와
마찬가지로 유효한 JProfiler 라이선스가 필요합니다.
MCP 서버는 다음과 같은 여러 가지 방식으로 Java 애플리케이션을 프로파일링할 수 있습니다.
-
프로세스 시작
MCP 서버는 프로파일링이 활성화된 상태로 Java 프로세스를 시작할 수 있습니다. 필요한 JVM 매개변수를 제공하고 구성된 모든 서브시스템에 대한 데이터를 녹화합니다. -
로컬 프로세스에 attach
이미 실행 중인 JVM의 경우, MCP 서버가 사용 가능한 Java 프로세스를 나열하고 프로세스 ID로 해당 프로세스에 attach할 수 있습니다. -
Docker 컨테이너에 attach
MCP 서버는 Docker 컨테이너에서 실행 중인 Java 프로세스에 대한 attach를 지원하여 로컬 프로세스와 동일한 프로파일링 기능을 제공합니다.
실행 중인 애플리케이션을 프로파일링하는 것 외에도 기존 스냅샷을 독립적으로 분석할 수 있습니다.
-
JProfiler 스냅샷 (.jps)
CPU, 메모리 및 프로브 데이터가 포함된 전체 JProfiler 스냅샷입니다. 성능 저하를 감지하기 위해 동일한 유형의 두 스냅샷을 로드하여 베이스라인 비교를 수행할 수 있습니다. -
HPROF 스냅샷 (.hprof)
메모리 분석을 위한 표준 Java 힙 덤프입니다. -
PHD 스냅샷 (.phd)
IBM 포터블 힙 덤프 파일입니다. -
JFR 레코딩 (.jfr)
CPU, 프로브 및 객체 수 데이터가 포함된 JDK Flight Recorder 파일입니다.
에이전트에 질문할 수 있는 내용
세션이 녹화되었거나 스냅샷이 로드된 후에는 AI 에이전트에게 자연어로 녹화된 데이터에 대해 질문할 수 있습니다. 에이전트는 적절한 분석 단계를 스스로 선택합니다. 다음과 같은 영역이 지원됩니다.
-
성능
역추적(back trace)이 포함된 CPU 핫스팟 및 호출 트리, 스레드별 귀속 및 경과 시간(wall clock time) 분석. 예: "체크아웃 엔드포인트가 왜 느린가요?" -
메모리
가장 큰 객체, 유지 크기(retained size), GC 루트로의 참조 체인 및 낭비되는 메모리의 자동 감지를 포함한 힙 덤프 분석. 에이전트는 필요에 따라 실행 중인 JVM의 힙 덤프를 생성할 수도 있습니다. 예: "이 힙 덤프에서 메모리를 붙잡고 있는 것은 무엇인가요?" -
할당
이미 가비지 컬렉션된 객체를 포함하여 객체가 생성된 위치를 보여주는 할당 핫스팟 및 호출 트리. 예: "왜 이렇게 많은 바이트 배열이 할당되었나요?" -
프로브 이벤트
JDBC 또는 HTTP 서버와 같은 상위 레벨 프로브의 개별 이벤트(예: 소요 시간 및 스택 트레이스가 포함된 개별 SQL 문 또는 HTTP 요청). 예: "가장 느린 SQL 문은 무엇인가요?" -
텔레메트리
힙 메모리, CPU 부하, 스레드, GC 활동 및 기타 녹화된 텔레메트리에 대한 시계열 데이터. 예: "부하 테스트 동안 힙 사용량이 어떻게 변화했나요?" -
가비지 컬렉션
원인, 일시 중지 시간, 각 컬렉션 전후의 힙 사용량이 포함된 개별 가비지 컬렉션 정보. 예: "왜 이렇게 긴 GC 일시 중지가 발생하나요?" -
monitor 및 락
스택 트레이스가 포함된 락 이력을 비롯한 락 경합 및 데드락 분석. 예: "스레드들이 어떤 락을 두고 경합하고 있나요?" -
스레드
스레드 덤프 및 스레드 상태별 스레드 시간 세부 내역. 예: "모든 스레드가 무엇을 하고 있나요?" -
MBean
프로파일된 JVM에서 캡처한 JMX MBean 속성 값 스냅샷. 예: "현재 커넥션 풀의 크기는 얼마인가요?" -
느린 이상치
평소보다 간헐적으로 훨씬 느린 메서드 분석 및 가장 느린 개별 호출 검사. 예: "이 호출이 왜 가끔 100배나 느려지나요?"
녹화되는 서브시스템과 프로파일된 패키지는 AI 에이전트가 녹화 구성에서 세션마다 자동으로 선택하므로, MCP 서버를 설치할 때 별도의 설정이 필요하지 않습니다.
복잡한 프로파일링 시나리오
HTTP 서버 프로브의 URL 분할을 변경하거나 JDBC 프로브에서 prepared statement 매개변수를 기록하는 등, 프로브별 설정은 advanced 녹화 구성의
probeConfig 키로 조정할 수 있습니다. 속성 이름은 JProfiler 설치 경로의 config/jprofiler_config.xsd에
정의된 세션 구성의 속성 이름과 일치하며, 에이전트는 이를 jprofiler://config/probes MCP 리소스에서 읽어올 수도 있습니다.
호출 트리 분할에 대한 분할 상한(splitting cap)이나 샘플링 주기와 같은 세션 전반의 튜닝 설정은 advanced 녹화 구성의 키로 직접 지정할 수 있습니다.
지원되는 모든 설정에 대한 레퍼런스는 jprofiler://config/session MCP 리소스로 제공됩니다.
MCP 녹화 연동은 단순한 프로파일링 시나리오에서 가장 효과적입니다. 커스텀 트리거, 고급 필터 구성 또는 특수 녹화 모드와 같이 프로파일링 설정에 대한 정밀한 제어가 필요한 복잡한 시나리오의 경우, JProfiler GUI를 사용하여 수동으로 JProfiler 스냅샷(.jps)을 녹화한 다음 AI 에이전트가 녹화된 데이터를 분석하도록 하는 것을 권장합니다.



