react-render-profile-mcp

react-render-profile-mcp

Enables AI agents to profile React applications, detect performance bottlenecks, and automatically apply fixes like memoization and code hoisting.

Category
访问服务器

README

react-render-profile-mcp

npm version npm downloads CI License: MIT

An Autonomous Performance SRE & Auto-Remediation Engine for React, exposed as a Model Context Protocol (MCP) server. Built specifically to bridge the performance perception gap for AI coding agents (Claude, Cursor, Copilot).


👁️ The Blind Spot: Why AI Agents Break React Production

When an AI agent refactors a Context Provider, changes state architecture, or hooks up a global store, it is completely blind to the runtime performance impact.

An agent can successfully pass unit tests and compile code while introducing catastrophic performance regressions:

  • A single state update cascading into 80 unnecessary child re-renders.
  • Infinite rendering loops triggered by unstable Zustand/Redux selector references.
  • Hydration mismatches forcing React to throw away server-rendered HTML and mount from scratch.
  • Unstable key props causing components to unmount and mount on every render cycle (lifecycle anomalies).

react-render-profile-mcp gives AI agents a "third eye" to dynamically measure, visualize, and auto-remediate these performance bottlenecks.


⚡ The Four Pillars of AI-SRE

Instead of raw JSON dumps, this server organizes performance data into structured, actionable insights across four core engineering pillars:

🧠 1. AST Auto-Remediation Engine (ts-morph)

ア When a bottleneck is found, the agent doesn't need to manually rewrite code. The server can mutate component source code on disk:

  • Hoisting: Statically hoisting object and array literals out of render bodies.
  • Dynamic Memoization: Wrapping unstable functions and variables in useCallback and useMemo with computed dependency arrays.
  • ROI Wrapping: Wrapping components in React.memo only if the profiled self-time and spurious render count justify the comparison overhead (ROI > 1.5).
  • Rule Auditing: Scanning code to prevent compiler bailouts (detecting Date.now(), Math.random(), or render-phase useRef mutations).

📊 2. Interactive SVG Cascade Visualizer (MCP Resource)

Generates parent-child rendering graphs directly into the agent's chat window using the custom resource URI scheme react-profile://commits/{commitId}/cascade?profile_path={profile_path}.

  • Triggers are styled with distinct HSL palettes to isolate propagation channels:
    • 🔵 Context Trigger: Blue (ocean wave)
    • 🟠 Zustand/Redux Store: Orange (subscriber ripple)
    • 🔴 Props Invalidation: Red (reference mismatch)
    • 🟢 State Change: Green (emerald trigger source)

🛡️ 3. RSC Flight Stream & Security Profiler

Analyzes React Server Components (RSC) Flight streams to optimize delivery:

  • Identifies bloated chunks (> 50KB) and sequential waterfalls.
  • Scans payloads for prototype traversal vulnerabilities like CVE-2025-55182 (React2Shell) exploits.

⚛️ 4. Multi-Layer Trace Correlator

Aligns React commits with Chrome Performance timeline events using blink.user_timing markers.

  • Measures post-commit layout, paint, and style calculation tasks to calculate real Core Web Vitals impacts (CLS / INP estimates).

🛠️ MCP Tools Reference

Below is a compact summary of the tools exposed by this server. All tools accept a required profile_path pointing to a React DevTools export .json.

Tool Name Parameters Purpose / Output
get_render_summary profile_path Overview of commits, total render time, spurious renders count, and lifecycle anomalies.
find_spurious_renders profile_path, min_render_count? Lists components that rendered with identical props/state. Classifies trigger into UNSTABLE_PARENT_REF or CONTEXT_UPDATE.
analyze_compiler_efficacy profile_path, invalid_threshold? Computes Invalidation Index to identify where React Compiler or React.memo is bypassed.
diagnose_hydration_and_suspense profile_path, waterfall_threshold_ms? Detects server-client hydration mismatches and nested Suspense fetch waterfalls.
evaluate_external_store_performance profile_path, max_blocking_task_ms? Finds unstable useSyncExternalStore selectors and high-priority blocking sync tasks.
trace_state_cascade_footprint profile_path, commit_index Traces virtual owner tree to measure propagation depth and consumer count of updates.
suggest_memoization profile_path, min_wasted_ms? Provides high-ROI React.memo suggestions based on average self-time (> 2ms threshold).
remediate_component file_path, component_name, unstable_props, roi_score Modifies AST on disk to hoist variables, wrap hooks, and apply memoization.
audit_compiler_rules file_path, component_name Statically audits component source code for React Compiler rule violations.
profile_rsc_stream stream_payload Parses RSC Flight logs to audit chunk sizes, waterfalls, and React2Shell exploits.
correlate_chrome_trace profile_path, trace_path Aligns React commits with Chrome trace events to calculate CLS/INP web vitals impacts.

🤖 Prompt Injection: Teach Your Agent to Profile

To get the most out of this server, add the following prompt to your agent's system instructions (e.g., in .cursorrules, Cursor System Prompt, or Claude Custom Instructions):

You are equipped with `react-render-profile-mcp`. Use it systematically whenever:

1. You make structural changes to React components, global state providers, or store selectors.
2. The user reports lag, slow input response, or UI stuttering.
3. You refactor context providers, Zustand selectors, or Redux dispatches.

Debugging Workflow:

- Ask the user to record and export a React DevTools profile (.json).
- Run `get_render_summary` to understand the scale of the problem and look for `lifecycle_anomaly: true` (unstable keys).
- Run `find_spurious_renders` and `analyze_compiler_efficacy` to pinpoint unstable prop references.
- Call the `react-profile://commits/{commitId}/cascade` resource to visualize cascades.
- Use `remediate_component` to automatically apply AST optimizations (hoisting static variables, wrapping hooks) instead of doing it manually.

📋 How to Export a Profile

  1. Open React DevTools in your browser.
  2. Navigate to the Profiler tab.
  3. Click the Record button (circle), interact with your application to trigger the performance issue, and click Stop.
  4. Click the Save Profile icon (💾) to download the .json file.
  5. Provide the absolute path to this file to the MCP server.

⚙️ Setup & Installation

Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "react-render-profile": {
      "command": "npx",
      "args": ["-y", "react-render-profile-mcp"]
    }
  }
}

Cursor / VS Code / Other Clients

Add an MCP server of type command:

  • Command: npx -y react-render-profile-mcp

🔧 Under the Hood

  • ESM-Native: Built with TypeScript ESM, optimized for fast Node.js imports.
  • React DevTools v5 Protocol: Natively decodes serialized operations arrays, resolving fiber snapshots and name maps.
  • Lane Identification: Distinguishes between high-priority lane updates and concurrent transition commits (Low Priority/Idle) to prevent false-positive regression flags.
  • AST Modification Safety: Implements ts-morph statement manipulation blocks, avoiding common parser state corruption during multi-pass rewrites.

Part of the MCP Toolbelt

Developed alongside:


License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选