MCP server that detects Hibernate/JPA N+1 queries, slow queries, deadlocks and other anti-patterns in Spring Boot apps — and points to the exact line of code.
Server has 5 tools with complete input schemas and descriptions. Naming follows verb_noun convention (analyze_, explain_, find_, generate_, watch_). Descriptions are adequate (100-200 chars) but lack LLM-optimized guidance on when to use each tool vs. alternatives. Parameters are typed and mostly described, but lack constraints (enums, ranges, patterns). Output schemas are partially documented in TypeScript interfaces but not exposed in MCP tool registration. Error handling is minimal, no recovery guidance or actionable error messages. Security is reasonable (no secrets in params, read-only operations), but no permission gates or audit trail patterns.
Reads the log file line-by-line (memory-efficient), detects issues, and returns both a structured JSON report and a human-readable Markdown report.
Two modes: 1. Manual: user provides a SQL string → run EXPLAIN on it. 2. Automatic: no SQL provided → take top N+1/slow queries from the last report and run EXPLAIN on all of them
Analyzes queries from the last report to identify columns frequently used in WHERE/JOIN/ORDER BY clauses that lack indexes, and recommends index creation SQL.
Parses a Hibernate log file, scans the Spring Boot project source code for N+1 patterns, and generates a combined markdown report with findings and code locations.
Starts (or stops) real-time monitoring of a log file. Accumulated queries are stored in memory for later analysis via get_last_report.
Output schemas not documented in tool definitions. TypeScript interfaces exist (AnalyzeLogOutput, ExplainQueryOutput) but are not exposed to the MCP client. LLMs cannot plan downstream calls without knowing what fields to expect.
Parameter constraints missing. 'maxQueriesToExplain' has no min/max bounds; 'action' enum is defined but other string params lack validation. No regex patterns or length limits documented.
Error handling lacks recovery guidance. Errors like 'Log file not found' or 'No analysis report found' are thrown but do not suggest next steps (e.g., 'Try analyze_hibernate_log first').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Tool descriptions lack dependency hints and selection guidance. No explanation of when to call analyze_hibernate_log vs. generate_report, or when explain_query is appropriate vs. find_missing_indexes.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are marked READ_ONLY or WRITE in comments, but MCP tool definitions do not expose these hints to the client.