MCP server for analyzing Java Flight Recorder (JFR) files using OpenJDK JMC rules engine
Single tool 'getReport' has a basic description (23 chars) and minimal parameter documentation. Input schema is present with type and description for jfrFilePath, but lacks critical details: no format constraints, no error handling guidance, no output schema documentation. The description 'Get full report of jfr file' is too terse to guide LLM selection. No pagination, no result limits, no structured output schema visible. Tool naming is acceptable (verb_noun pattern) but description falls well below the 50-200 char baseline for A+ tools (baseline avg 194 chars). No evidence of error recovery patterns, validation rules, or output field documentation.
Get full report of jfr file
Tool description is 23 characters, below the 50-char minimum for LLM clarity. 'Get full report of jfr file' does not explain WHEN to use this tool, WHAT it returns, or any prerequisites (e.g., file must exist, must be valid JFR format).
No output schema documented. The tool returns a String (full report), but LLMs cannot plan downstream actions or extract structured data without knowing the response format, fields, or structure. Baseline: 100% of A+ tools document return types.
Parameter 'jfrFilePath' lacks format constraints and validation rules. No guidance on: absolute vs relative paths, file existence checks, required permissions, or expected file size limits. Description should state 'Absolute path to a valid JFR (Java Flight Recording) file; file must exist and be readable.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tool throws generic Exception. LLMs need actionable error messages: 'File not found: /path/to/file. Verify the path is absolute and the file exists.' or 'Invalid JFR format: file is corrupted or not a valid recording.'
No result limits or pagination. A 'full report' could be arbitrarily large, exhausting context windows. Baseline: cap results at 20-50 items and offer pagination. Consider returning a summary with pagination or chunking options.