rn开发工具mcp
rn-devtools-mcp 让您的编码代理通过Metro检查器代理控制和检查实时React Native Hermes运行时(/json/list)以及CDP WebSocket目标。
它作为MCP服务器运行(stdio)并将React Native调试原语作为MCP工具公开,用于可靠的自动化、运行时调试和证据收集。
工具参考 | 更新日志 | 贡献 | 故障排除 | 设计原则
主要特点
- 地铁目标发现:通过以下方式发现可调试的RN目标
/json/list和/json/version. - Hermes运行时调试:评估脚本、暂停/恢复/单步执行和管理断点。
- 通过别名覆盖CDP:使用专用工具别名或通用工具别名
rn_cdp_call. - 证据缓冲区:捕获最近的控制台、网络、调试器和异常事件以进行分析。
- 重新连接感知会话:应用程序重新加载/断开连接循环的重新连接逻辑。
免责声明
rn-devtools-mcp 可以在连接的React Native运行时中检查和执行代码。将连接的应用程序数据视为敏感数据。
- 不要将此服务器连接到包含您不希望MCP客户端访问的机密的应用程序/环境。
- 此服务器不沙盒CDP命令;具有MCP访问权限的调用者可以发出强大的运行时/调试器命令。
需求
- 20+
- React Native应用程序在开发模式下运行
- 可从MCP服务器进程访问Metro开发服务器
入门
安装依赖项:
npm install运行MCP服务器(stdio):
npm run dev默认MCP客户端配置:
{
"mcpServers": {
"rn-devtools": {
"command": "npx",
"args": ["-y", "rn-devtools-mcp@latest"]
}
}
}\[!注意\] 使用 rn-devtools-mcp@latest 确保您的客户端始终使用最新发布的版本。对于本地开发,直接使用存储库条目:
{
"mcpServers": {
"rn-devtools": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/rn-devtools-mcp/src/index.ts"]
}
}
}客户端设置示例
法典
codex mcp add rn-devtools -- npx -y rn-devtools-mcp@latest克劳德代码
claude mcp add rn-devtools --scope user npx -y rn-devtools-mcp@latest光标
在中配置MCP服务器命令 Cursor Settings -> MCP 使用上面的默认JSON代码段。
验证
npm test
npm run build对正在运行的RN应用程序进行冒烟测试:
METRO_URL=http://localhost:8081 npm run smoke如果 METRO_URL 如果省略,服务器将探测本地候选者:
8081,8082,8083,8088,8090,19000
覆盖候选端口:
METRO_PORT_CANDIDATES=18081,18082 npm run smoke工具
如果遇到问题,请检查 故障排除.
以下目录是从自动生成的 src/server/tools.ts.
- 目标和会话 (5个工具)
- rn_list_targets - rn_connect - rn_disconnect - rn_reconnect - rn_session_status
- 运行时和调试器控制 (8工具)
- rn_eval - rn_debugger_enable - rn_pause - rn_resume - rn_step_over - rn_step_into - rn_step_out - rn_set_breakpoint_by_url
- 网络与证据 (4个工具)
- rn_network_enable - rn_get_recent_console - rn_get_recent_network - rn_get_recent_exceptions
- 通用CDP (1个工具)
- CDP别名家族
- 运行时别名 (13个工具) - rn_runtime_enable - rn_runtime_disable - rn_runtime_discard_console_entries - rn_runtime_get_heap_usage - rn_runtime_global_lexical_scope_names - rn_runtime_compile_script - rn_runtime_get_properties - rn_runtime_call_function_on - rn_runtime_release_object - rn_runtime_release_object_group - rn_runtime_run_if_waiting_for_debugger - rn_runtime_add_binding - rn_runtime_remove_binding - 调试器别名 (9个工具) - rn_debugger_disable - rn_debugger_set_blackboxed_ranges - rn_debugger_set_blackbox_patterns - rn_debugger_set_pause_on_exceptions - rn_debugger_evaluate_on_call_frame - rn_debugger_set_breakpoint - rn_debugger_remove_breakpoint - rn_debugger_set_breakpoints_active - rn_debugger_set_instrumentation_breakpoint - 探查器别名 (2个工具) - rn_profiler_start - rn_profiler_stop - 堆分析器别名 (8工具) - rn_heap_profiler_take_heap_snapshot - rn_heap_profiler_get_object_by_heap_object_id - rn_heap_profiler_get_heap_object_id - rn_heap_profiler_collect_garbage - rn_heap_profiler_start_tracking_heap_objects - rn_heap_profiler_stop_tracking_heap_objects - rn_heap_profiler_start_sampling - rn_heap_profiler_stop_sampling - 网络别名 (3个工具) - rn_network_disable - rn_network_get_response_body - rn_network_load_resource - IO别名 (2个工具) - rn_io_read - rn_io_close - 跟踪别名 (2个工具) - rn_tracing_start - rn_tracing_end - 日志别名 (2个工具) - rn_log_enable - rn_log_disable - 主机别名 (2个工具) - rn_page_reload - rn_overlay_set_paused_in_debugger_message - ReactNativeApplications别名 (2个工具) - rn_react_native_application_enable - rn_react_native_application_disable
在中查看完整的输入、行为和错误 工具参考.
配置
环境变量:
METRO_URL:显式Metro基本URL(示例:http://localhost:8081)METRO_PORT_CANDIDATES:逗号分隔的回退探测端口METRO_URL未设置
概念
目标发现
服务器从Metro检查器端点发现目标,并在可能的情况下默认选择Hermes目标。
会话模型
每个连接由表示 sessionKey。发出CDP命令的工具需要连接会话。
事件缓冲区
服务器将最近的事件缓存在环形缓冲区中。您可以在实时会话期间随时查询最近的控制台/网络/异常事件。
已知限制
- 本机调试器工作流(LLDB/Android Studio断点)超出范围。
- CDP支持取决于RN/Hermes的目标和版本。
- 某些CDP命令可能会失败
RN_CDP_METHOD_UNSUPPORTED,RN_CDP_METHOD_NOT_FOUND或其他命令错误。
许可证
麻省理工学院-见 许可证.
