MCP server for analyzing FramePro JSON performance profiling data, identifying bottlenecks, hotspots, and optimization opportunities
FramePro MCP has 4 tools with clear verb-noun naming (analyze_*, find_*, compare_*) and reasonable descriptions (100-150 chars). However, critical gaps undermine quality: parameter descriptions are minimal or absent (e.g., 'focus' lacks enum values; 'top_n' has no range), output schemas are undocumented (tools return JSON but structure is not declared), and error handling is generic ('Failed to load FramePro data' with no recovery guidance). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Parameter validation is weak, 'focus' accepts free-form strings instead of enum constraints. Baseline: 549 production tools average 194 chars for descriptions and 100% have documented return types; this server has neither.
Analyzes frame timing data to detect stuttering, spikes, and frame rate issues
Analyzes FramePro JSON data and identifies performance bottlenecks, hotspots, and optimization opportunities
Compares two FramePro profiles to identify performance regressions or improvements
Identifies the top performance hotspots (most expensive functions) in the FramePro data
Output schemas undocumented. Tools return JSON objects but structure is not declared. LLMs cannot plan downstream calls or extract fields reliably.
Parameter 'focus' accepts free-form strings ('cpu', 'memory', 'frames', 'threads', 'all') but is not declared as an enum. LLMs may hallucinate invalid values like 'gpu' or 'disk'.
Numeric parameters lack range constraints. 'top_n' has no min/max; 'target_fps' has no bounds. LLMs may pass absurd values (top_n=999999, target_fps=0).
Error messages are generic and non-actionable. 'Failed to load FramePro data: <error>' gives no recovery guidance. Per pattern:recovery-guide, errors should suggest next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
No tool annotations despite all tools being read-only. Missing readOnlyHint metadata prevents agents from understanding safety properties.