Jfr Analyzer MCP
A Model Context Protocol (MCP) server for analyzing Java Flight Recorder (JFR) files
Ask AI about Jfr Analyzer MCP
Powered by Claude · Grounded in docs
I know everything about Jfr Analyzer MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
jfr-analyzer-mcp
A Model Context Protocol (MCP) server for analyzing Java Flight Recorder (JFR) files. This server provides tools to analyze JFR recordings and generate comprehensive performance reports using Java Mission Control's rule-based analysis.
Features
- JFR File Analysis: Load and analyze Java Flight Recorder files
- Rule-Based Reports: Generate reports using JMC's built-in analysis rules
- MCP Integration: Exposes analysis capabilities as MCP tools for AI assistants
- Performance Insights: Provides summaries, explanations, and solutions for performance issues
Usage
This MCP server exposes a single tool:
- getReport: Get a full analysis report of a JFR file
- Parameter:
jfrFilePath(absolute path to the JFR file) - Returns: Comprehensive analysis including rule IDs, summaries, explanations, and solutions
- Parameter:
Running the MCP Server
Development Mode
Run the server in dev mode with live coding:
./mvnw quarkus:dev
NOTE: Quarkus ships with a Dev UI, available in dev mode at http://localhost:8080/q/dev/.
As MCP Server
To use this MCP server with an MCP client (like Claude Desktop), configure it in your MCP client settings:
{
"mcpServers": {
"jfr-analyzer": {
"command": "java",
"args": [
"-jar",
"/path/to/jfr-analyzer-mcp-1.0.0-SNAPSHOT-runner.jar"
]
}
}
}
For development, you can also run:
./mvnw quarkus:dev
Then configure your MCP client to connect to stdio.
Packaging and Running
Build the application:
./mvnw package
This produces the quarkus-run.jar file in target/quarkus-app/.
To build an über-jar (recommended for MCP server deployment):
./mvnw package -Dquarkus.package.jar.type=uber-jar
The über-jar can be run with:
java -jar target/*-runner.jar
Using with Claude Desktop
- Build the über-jar
- Update Claude Desktop's
claude_desktop_config.json:
{
"mcpServers": {
"jfr-analyzer": {
"command": "java",
"args": [
"-jar",
"/Users/adit/development/projects/jfr-analyzer-mcp/target/jfr-analyzer-mcp-1.0.0-SNAPSHOT-runner.jar"
]
}
}
}
- Restart Claude Desktop
Native Executable
Create a native executable for faster startup and lower memory footprint:
./mvnw package -Dnative
Or build in a container:
./mvnw package -Dnative -Dquarkus.native.container-build=true
Run the native executable:
./target/jfr-analyzer-mcp-1.0.0-SNAPSHOT-runner
Learn more: https://quarkus.io/guides/maven-tooling
Testing
Run all tests:
./mvnw test
Run specific test class:
./mvnw test -Dtest=JfrAnalysisServiceTest
Run specific test method:
./mvnw test -Dtest=JfrAnalysisServiceTest#loadRecording
Technical Details
- Java Version: 21
- Framework: Quarkus 3.26.3
- JMC Version: 9.1.1
- MCP Protocol: stdio transport via quarkus-mcp-server-stdio
Key Dependencies
quarkus-mcp-server-stdio: MCP server integrationorg.openjdk.jmc.*: JMC libraries for JFR analysisquarkus-cache: Caching supportquarkus-arc: CDI container
Related Guides
- Quarkus MCP Server: MCP server stdio integration
- Quarkus Cache: Application data caching
- Java Flight Recorder: JFR documentation
