react-render-profile-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_render_summaryA | Returns a high-level overview of a React DevTools Profiler export: total commits, total render time, top 5 slowest components by self time, and total spurious (wasted) render count. Use this first to understand the scale of the performance problem before drilling into specifics. |
| find_spurious_rendersA | Finds React components that re-rendered without any meaningful prop, state, context, or hook changes. These are wasted renders caused by unstable references (inline objects/functions/arrays) passed from a parent. Returns component name, total render count, spurious count, and wasted milliseconds. Use to identify the highest-ROI targets for React.memo. |
| get_hottest_componentsA | Returns the top N React components ranked by self CPU time (excluding children) across the entire profiling session. Includes total self ms, average per render, and percentage of total profile time. Use to find which components are the most expensive to render, regardless of cause. |
| trace_render_cascadeA | For a specific React commit (render cycle), shows what triggered it and lists every component that re-rendered as a result, sorted by actual duration descending. Reveals propagation — e.g. a context update cascading into 40 children. Call get_render_summary first to find total_commits, then use 0-based commit_index. |
| suggest_memoizationA | Analyzes the profiling data and returns concrete memoization suggestions. Currently detects React.memo candidates: components with spurious renders above the wasted ms threshold. Each suggestion explains why the component re-renders unnecessarily and what to do about it. |
| analyze_compiler_efficacyA | Evaluates React Compiler or manual React.memo efficacy by tracking spurious renders. Calculates the Invalidation Index for each component to identify where unstable prop references trigger wasteful renders. |
| diagnose_hydration_and_suspenseA | Detects server-client hydration mismatches and sequential nested Suspense waterfalls by analyzing mount durations, unmount events, and timelines. |
| evaluate_external_store_performanceA | Analyzes useSyncExternalStore performance, identifying selector reference instability and concurrency bypasses where heavy store updates block the high-priority main thread. |
| trace_state_cascade_footprintA | Reconstructs the virtual parent/owner tree traversal to measure the depth and consumer count of a state update cascade for a specific commit index. |
| remediate_componentA | Automatically optimizes a React component's AST by hoisting static declarations, wrapping unstable callbacks/objects in useCallback/useMemo, and wrapping the component in React.memo if the ROI score is above 1.5. Mutates the file on disk. |
| audit_compiler_rulesA | Audits a React component file to check if it violates compiler memoization safety guidelines (e.g., Date.now(), Math.random(), useRef mutations in render, 'use no memo' bails). |
| profile_rsc_streamA | Analyzes a React Server Components (RSC) Flight stream text log. Detects bloated chunks (>50KB), sequential Waterfall request bottlenecks, and security hazards like constructor traversing exploits (CVE-2025-55182 / React2Shell). |
| correlate_chrome_traceA | Aligns React commits with Chrome Performance trace events (re-layout, paint, style calculations) using blink.user_timing ⚛ markers to calculate Core Web Vitals (INP/CLS) impact. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Most tools target distinct analysis areas (spurious renders, RSC, hydration, external stores, Chrome traces). However, close pairs like trace_render_cascade and trace_state_cascade_footprint, or find_spurious_renders and suggest_memoization, could cause selection confusion despite clear descriptions.
All tool names follow a consistent verb_noun pattern (get_, find_, trace_, analyze_, diagnose_, evaluate_, remediate_, audit_, correlate_), with clear actions and targets. No mixing of conventions or vague verbs.
13 tools is well-scoped for a React performance profiling server, covering analysis, diagnostics, suggestions, and remediation without bloat. Each tool addresses a specific aspect of the profiling workflow.
The tool surface covers the full profiling lifecycle: high-level summary, detailed hotspot analysis, spurious render detection, cascade tracing, hydration/RSC/external store diagnostics, compiler rule auditing, memoization suggestions, and automatic component remediation. No critical gaps for the domain.