JProfiler 도움말

MCP 서버

Model Context Protocol (MCP)는 AI 에이전트가 외부 도구 및 데이터 소스와 상호작용할 수 있게 해주는 개방형 표준입니다. JProfiler는 AI 에이전트가 Java 애플리케이션을 프로파일링하고, 성능 데이터를 분석하며, 힙 덤프를 검사할 수 있도록 MCP 서버를 제공합니다. 이 통합을 통해 AI 에이전트에게 성능 핫스팟 찾기, 메모리 사용량 분석, 가비지 컬렉션 문제 조사를 요청할 수 있으며, 에이전트는 JProfiler의 프로파일링 기능을 활용하여 답변을 제공합니다.

지원되는 AI 에이전트

JProfiler의 MCP 통합은 다음 AI 에이전트를 지원합니다:

  • Claude Code
    Anthropic의 CLI 기반 코딩 에이전트입니다. 전역 및 프로젝트 범위 통합을 모두 지원합니다.
  • Claude Desktop
    Anthropic의 데스크톱 애플리케이션입니다. 전역 통합을 지원합니다.
  • Codex
    OpenAI의 CLI 기반 코딩 에이전트입니다. 전역 통합을 지원합니다.
  • Gemini CLI
    Google의 CLI 기반 코딩 에이전트입니다. 전역 통합을 지원합니다.
  • 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 에이전트에 의해 시작됩니다.

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-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 파일입니다.

메모리 분석을 위해 MCP 서버는 Docker 컨테이너에서 실행 중인 JVM을 포함하여 실행 중인 JVM의 힙 덤프를 생성할 수 있습니다. 힙 데이터는 가장 큰 객체와 그 retained 크기, 개별 객체의 retained 클래스 및 전체 클래스 히스토그램 측면에서 분석됩니다.

성능 분석

AI 에이전트는 CPU 프로파일링뿐만 아니라 기록된 모든 프로브 서브시스템에 대한 성능 핫스팟과 호출 트리를 가져올 수 있습니다. 분석 범위를 특정 패키지로 좁힐 수 있으며, 에이전트는 개별 핫스팟을 반복적으로 드릴다운하여 역추적을 검사할 수 있습니다. CPU 데이터의 경우 runnable-only 모드와 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, processgc입니다. 기본적으로 cpu, jdbc, jpa, http_server, http_client, mongo_dbgc가 기록됩니다.
  • -d, --max-depth
    역추적에 사용되는 최대 스택 깊이입니다.

복잡한 프로파일링 시나리오

MCP 통합은 단순한 프로파일링 시나리오에서 가장 잘 작동합니다. 커스텀 트리거, 고급 필터 설정 또는 특수 녹화 모드와 같이 프로파일링 설정에 대한 세밀한 제어가 필요한 복잡한 시나리오의 경우, JProfiler GUI를 사용하여 JProfiler 스냅샷 (.jps)을 수동으로 기록한 후 AI 에이전트가 기록된 데이터를 분석하도록 하는 것을 권장합니다.