rn-agent-observer
RN Agent Observer
VI · English
RN Agent Observer 2.4.0 は、React Native/Expo 向けのローカルランタイム可観測性ブリッジです。CLI と MCP の両方で同じ TypeScript コアを使用し、ADB/UIAutomator 経由で Android を制御し、開発用インストルメンテーションからテレメトリを受信し、Metro の Chrome DevTools Protocol を通じて console/exception/heap/JS CPU プロファイルをエクスポートし、アプリのインストルメンテーションなしでリクエストごとのネットワークを取得し、エージェント向けに state/headline/actions/UI findings を含む構造化された画面理解を生成し、セッション安定の ref スナップショット + diff + 自動記録リプレイを提供し、画面ビデオを録画し、セッションを SQLite に保存し、スクリーンショット/トレース/UI ツリーをディスク上のアーティファクトとして保持します。
現在のリリースは Windows 上の Android v1 を完了しています: 45 の MCP ツール、対応する CLI、決定的なラボを備えた Expo デモ、透明なヒューリスティック診断、ピクセル + 構造的 UI 比較。
要件
Node.js 22.12 以上
pnpm 9.6
Android Platform Tools (
adb)USB デバッグが有効な Android エミュレータまたは実機
アプリ固有のテレメトリが必要な場合の Expo development build
Related MCP server: React Native MCP Server
クイックスタート
pnpm install
pnpm check
adb devices -l
pnpm rn-observe --help
pnpm mcp:checkobserver を Expo/React Native アプリに向けます:
$env:RN_OBSERVER_PROJECT_ROOT = 'C:\path\to\expo-app'
$env:RN_OBSERVER_DEVICE_ID = 'emulator-5554'
# Có thể bỏ qua nếu app.json chứa expo.android.package
$env:RN_OBSERVER_APP_ID = 'com.example.app'
pnpm rn-observe launch
pnpm rn-observe observe
pnpm rn-observe understand-screen
pnpm rn-observe ui-model
pnpm rn-observe tap --test-id buy-button
pnpm rn-observe performance
pnpm rn-observe diagnoseアーティファクトと SQLite データは <projectRoot>/.artifacts/ の下に作成されます。大きなバイナリは MCP レスポンスに埋め込まれることはありません。
決定的デモ
pnpm --filter @rn-agent-observer/demo-expo android -- --device <device-name>デモには PerformanceLab、NetworkLab、RenderLab、AnimationLab、ErrorLab、VisualLab が含まれています。NetworkLab は内部フィクスチャ(0/500/2000ms と HTTP 503)を使用するため、インターネットサービスに依存しません。PerformanceLab は意図的な 100ms の長い JS タスクをインストルメンテーションを通じて正確に報告します。
MCP
pnpm mcp:check
pnpm mcp:startサーバーは stdio を使用します。クライアント設定と 45 ツールの完全なリストは docs/protocol.md に文書化されています。
AI エージェント統合
エージェント(OpenCode/Claude Code/Cursor/Codex...)が observer を使用する方法は 3 つあります:
1. MCP サーバー(推奨 — 構造化ツール)
{
"mcpServers": {
"rn-agent-observer": {
"command": "node",
"args": [
"C:\\abs\\rn-agent-observer\\packages\\mcp-server\\dist\\server.js"
],
"env": {
"RN_OBSERVER_PROJECT_ROOT": "C:\\path\\to\\expo-app",
"RN_OBSERVER_DEVICE_ID": "emulator-5554"
}
}
}
}2. スキルとしてインストール(CLI でエージェントにデバッグワークフローを教える)
npx skills add GinzaTech/rn-agent-observerスキルは skills/rn-agent-observer/SKILL.md にあります — observe -> understand-screen -> reproduce -> diagnose -> fix -> understand-screen -> compare のループ、メトリクスを正直に読む方法、一般的な障害からの回復を教えます。インストール後、「アプリ X が遅い」と言うだけで、エージェントは rn-observe を使うことを自動的に認識します。
3. AGENTS.md(エージェントがこのリポジトリ内で作業する場合) — ルートに既に存在し、エージェントが自動的に読み取ります。
3 つの方法はすべて併用できます: skill/AGENTS.md は ワークフロー を教え、MCP は 直接呼び出し可能なツール を提供します。
ドキュメント
現在のバージョン
Android/Windows は Observer 2.4.0 の唯一のターゲットです。
ADB には信頼できる JS FPS シグナルがありません。フィールドは
available: falseとして返され、数値を推測することはありません。JS blocking、route、React renders、ネットワークメタデータにはアプリ内の開発用インストルメンテーションが必要です。
CDP 経由の DevTools エクスポート(
devtools-export、devtools-profile)とリクエストごとのネットワーク(metro-network)には、Metro が実行中でアプリが Metro に接続されている必要があります(adb reverse tcp:8081 tcp:8081)。別の React Native DevTools セッションが接続を保持している場合は使用できません。reload --fastは CDP Page.reload(JS のみ)を使用し、Metro が利用できない場合は自動的に force-stop にフォールバックします。record(screenrecord)は Android により 180 秒/クリップに制限されています。Perfetto トレースは Android をサポートしています。深いトレース分析は引き続き Perfetto UI/Android Studio を使用します。
CDP コマンドはプロセス間でキューされます。外部の React Native DevTools は observer のロックに参加しないため、閉じる必要があります。
session stopは自動的にリプレイを生成します。セッション内の ref は reorder/scroll でも安定しています。セッションがない場合はEVIDENCE_NOT_RECORDEDを発行します。understand-screen/MCPunderstand_screenは、利用可能な場合は route インストルメンテーション、画面状態、ヘッドライン、テキスト/アクション ref、UI findings、スクリーンショット/UI ツリーのエビデンスを返します。繰り返し呼び出すと、変化のないローディングを検出します。分類はヒューリスティックであり、テキストフィールドの値は常に redact されます。ui-model/MCPruntime_ui_modelは TypeScript AST を使用して TSX を解析し、コンポーネント +file:lineを取得し、インストルメンテーションおよびネイティブツリーと関連付けます。結果はrendered、visible/offscreen/hidden/unmounted/flattened-or-unobserved、enabled、canPress(理由付き)を区別します。Babel プラグイン(開発時のみ)はソース由来の testID を自動的に追加し、
onPressをラップします。セッション停止時に interaction start/success/error を収集し、testID を持つタップをリプレイに含めます。ハンドラー引数、props、入力値は記録されません。Observer はデフォルトでネットワークボディを収集しません。開発時のみのオプトインは fail-closed の allowlist を使用しますが、それでもフィクスチャに限定して使用する必要があります。
インストルメンテーションのないアプリ: フォールバックエビデンスとして
metro-network(CDP)、app-state(フォアグラウンドアクティビティ、PID)、device-network(デバイスレベルのバイトカウンター、アプリに帰属しない)を使用します。
RN Agent Observer (英語)
RN Agent Observer 2.4.0 は、React Native/Expo 向けのローカルランタイム可観測性ブリッジです。CLI と MCP サーバーの両方の背後で共有 TypeScript コアを使用し、ADB/UIAutomator を通じて Android を駆動し、開発用インストルメンテーションからテレメトリを受信し、Metro の Chrome DevTools Protocol を通じて console/例外/ヒープ/JS CPU プロファイルをエクスポートし、アプリのインストルメンテーションなしでリクエストごとのネットワークトラフィックをキャプチャし、エージェント向けに構造化された画面理解(state/headline/actions/UI findings)を生成し、セッション安定の ref スナップショット + diff + 自動記録されたリプレイスクリプトを提供し、画面上のビデオを録画し、セッションを SQLite に永続化し、スクリーンショット/トレース/UI ツリーをディスク上のアーティファクトとして保持します。
現在のリリースは Windows 上の Android v1 を完了しています: 45 の MCP ツール、対応する CLI、決定的なラボを備えた Expo デモアプリ、透明なヒューリスティック診断、ピクセル + 構造的 UI 比較。
要件
Node.js 22.12 以上
pnpm 9.6
Android Platform Tools (
adb)USB デバッグが有効な Android エミュレータまたは実機
アプリ固有のテレメトリが必要な場合の Expo development build
クイックスタート
pnpm install
pnpm check
adb devices -l
pnpm rn-observe --help
pnpm mcp:checkobserver を Expo/React Native アプリに向けます:
$env:RN_OBSERVER_PROJECT_ROOT = 'C:\path\to\expo-app'
$env:RN_OBSERVER_DEVICE_ID = 'emulator-5554'
# Optional when app.json contains expo.android.package
$env:RN_OBSERVER_APP_ID = 'com.example.app'
pnpm rn-observe launch
pnpm rn-observe observe
pnpm rn-observe understand-screen
pnpm rn-observe ui-model
pnpm rn-observe tap --test-id buy-button
pnpm rn-observe performance
pnpm rn-observe diagnoseアーティファクトと SQLite データは <projectRoot>/.artifacts/ の下に作成されます。大きなバイナリは MCP レスポンスに埋め込まれることはありません。
決定的デモ
pnpm --filter @rn-agent-observer/demo-expo android -- --device <device-name>デモには PerformanceLab、NetworkLab、RenderLab、AnimationLab、ErrorLab、VisualLab が含まれています。NetworkLab は内部フィクスチャ(0/500/2000ms と HTTP 503)を使用するため、インターネットサービスに依存しません。PerformanceLab は意図的な 100ms の長い JS タスクをインストルメンテーションを通じて正確に報告します。
MCP
pnpm mcp:check
pnpm mcp:startサーバーは stdio を使用します。クライアント設定と 45 ツールの完全なリストは docs/protocol.md に文書化されています。
ドキュメント
AI エージェント統合
エージェント(OpenCode/Claude Code/Cursor/Codex...)が observer を使用する方法は 3 つあります:
1. MCP サーバー(推奨 — 構造化ツール)
{
"mcpServers": {
"rn-agent-observer": {
"command": "node",
"args": [
"C:\\abs\\rn-agent-observer\\packages\\mcp-server\\dist\\server.js"
],
"env": {
"RN_OBSERVER_PROJECT_ROOT": "C:\\path\\to\\expo-app",
"RN_OBSERVER_DEVICE_ID": "emulator-5554"
}
}
}
}2. スキルとしてインストール(CLI でエージェントにデバッグワークフローを教える)
npx skills add GinzaTech/rn-agent-observerスキルは skills/rn-agent-observer/SKILL.md にあります — observe -> understand-screen -> reproduce -> diagnose -> fix -> understand-screen -> compare のループ、メトリクスを正直に読む方法、一般的な障害からの回復を教えます。インストール後、「アプリ X が遅い」と言うだけで、エージェントは rn-observe を使うことを自動的に認識します。
3. AGENTS.md(エージェントがこのリポジトリ内で作業する場合) — リポジトリのルートに既に存在し、エージェントが自動的に読み取ります。
3 つの方法はすべて併用できます: skill/AGENTS.md は ワークフロー を教え、MCP は 直接呼び出し可能なツール を提供します。
現在の境界
Android/Windows は Observer 2.4.0 の唯一のサポート対象ターゲットです。
ADB には信頼できる JS FPS シグナルがありません。フィールドは
available: falseとして返されます — 値が推測されることはありません。JS blocking、route、React renders、ネットワークメタデータにはアプリ内の開発用インストルメンテーションが必要です。
CDP 機能(
devtools-export、devtools-profile、metro-network)には、適切なアプリに対して Metro が実行され、アプリが Metro に接続されている必要があります(adb reverse tcp:8081 tcp:8081)。別の React Native DevTools セッションが接続を保持している間はアタッチできません。reload --fastは CDP Page.reload(JS のみ)を使用し、Metro が利用できない場合は自動的に force-stop にフォールバックします。Observer の CDP コマンドはプロセス間でキューされます。外部の React Native DevTools は observer のロックに参加しないため、閉じる必要があります。
session stopは自動的にリプレイを書き込み、セッション ref は reorder/scroll でも存続し、セッションがない場合はEVIDENCE_NOT_RECORDEDを生成します。understand-screen/MCPunderstand_screenは、利用可能な場合はインストルメントされた route、画面状態、ヘッドライン、テキスト/アクション ref、UI findings、スクリーンショット/UI ツリーのエビデンスを返します。繰り返し呼び出すと、変化のないローディングを検出します。分類はヒューリスティックであり、テキストフィールドの値は常に redact されます。ui-model/MCPruntime_ui_modelは TypeScript AST を使用して TSX を解析し、コンポーネント +file:lineを取得し、ソースをインストルメンテーションおよびネイティブツリーと関連付けます。rendered、visible/off-screen/hidden/unmounted/flattened-or-unobserved、enabled、エビデンスに基づくcanPress状態を区別します。開発時のみの Babel プラグインはソース由来の testID を注入し、
onPressをラップします。セッション停止時に interaction start/success/error を収集し、testID タップをリプレイに昇格させます。ハンドラー引数、props、入力値は決して記録されません。ネットワークボディのキャプチャはデフォルトでオフです。開発時のみのオプトインは fail-closed の allowlist を使用し、フィクスチャに限定する必要があります。
インストルメンテーションのないアプリ: フォールバックエビデンスとして
metro-network(CDP)、app-state(フォアグラウンドアクティビティ、PID)、device-network(デバイスレベルのバイトカウンター、アプリに帰属しない)を使用します。record(screenrecord)は Android により 180 秒/クリップに制限されています。Perfetto トレースは Android でサポートされています。深いトレース分析は Perfetto UI/Android Studio に残ります。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceThis MCP server enables real-time debugging and inspection of running React Native apps, providing access to console logs, errors, network requests, navigation state, storage, and performance profiling.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables automation and monitoring of React Native apps by providing tools to tap, swipe, screenshot, inspect component state, profile renders, and mock network requests via MCP.86MIT
- AlicenseNot gradedqualityAmaintenanceA plugin-based MCP server for React Native runtime debugging, inspection, and automation via Chrome DevTools Protocol. Works with Expo, bare React Native, and any Metro + Hermes project without app code changes.1,04475MIT
- FlicenseNot gradedqualityAmaintenanceMCP server that provides AI coding agents real Android development tools—Gradle, adb, logcat, lint, crash triage—through a local, permissioned interface. Enables agents to inspect projects, run safe Gradle tasks, capture logs/screenshots, and triage crashes.2
Related MCP Connectors
Remote MCP for Android CLI agent build gate, structured receipts, audit logs, and reviewer-ready evi
Remote MCP for AI Studio Android release gate MCP, structured receipts, audit logs, and reviewer-rea
Live browser debugging for AI assistants — DOM, console, network via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/GinzaTech/rn-agent-observer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server