Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Drives a real Android device over ADB and attaches the resulting screen to every action.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
DROIDSIGHT_DEVICE_SERIAL, DROIDSIGHT_ADB_PATH, DROIDSIGHT_LOCAL_ROOT, DROIDSIGHT_DEVICE_PIN, DROIDSIGHT_ALLOW_SHELL, DROIDSIGHT_DEBUG_LOG, DROIDSIGHT_LOG, DROIDSIGHT_EVENTS, DROIDSIGHT_SENTINEL「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"droidsight": {
"command": "npx",
"args": [
"-y",
"@edgecasehuman/droidsight"
],
"env": {
"DROIDSIGHT_DEVICE_SERIAL": "your-value",
"DROIDSIGHT_ADB_PATH": "your-value",
"DROIDSIGHT_LOCAL_ROOT": "your-value",
"DROIDSIGHT_DEVICE_PIN": "your-value",
"DROIDSIGHT_ALLOW_SHELL": "your-value",
"DROIDSIGHT_DEBUG_LOG": "your-value",
"DROIDSIGHT_LOG": "your-value",
"DROIDSIGHT_EVENTS": "your-value",
"DROIDSIGHT_SENTINEL": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add droidsight --env DROIDSIGHT_DEVICE_SERIAL=your-value --env DROIDSIGHT_ADB_PATH=your-value --env DROIDSIGHT_LOCAL_ROOT=your-value --env DROIDSIGHT_DEVICE_PIN=your-value --env DROIDSIGHT_ALLOW_SHELL=your-value --env DROIDSIGHT_DEBUG_LOG=your-value --env DROIDSIGHT_LOG=your-value --env DROIDSIGHT_EVENTS=your-value --env DROIDSIGHT_SENTINEL=your-value -- npx -y @edgecasehuman/droidsight動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"droidsight": {
"command": "npx",
"args": [
"-y",
"@edgecasehuman/droidsight"
],
"env": {
"DROIDSIGHT_DEVICE_SERIAL": "your-value",
"DROIDSIGHT_ADB_PATH": "your-value",
"DROIDSIGHT_LOCAL_ROOT": "your-value",
"DROIDSIGHT_DEVICE_PIN": "your-value",
"DROIDSIGHT_ALLOW_SHELL": "your-value",
"DROIDSIGHT_DEBUG_LOG": "your-value",
"DROIDSIGHT_LOG": "your-value",
"DROIDSIGHT_EVENTS": "your-value",
"DROIDSIGHT_SENTINEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"droidsight": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@edgecasehuman/droidsight"
],
"env": {
"DROIDSIGHT_DEVICE_SERIAL": "your-value",
"DROIDSIGHT_ADB_PATH": "your-value",
"DROIDSIGHT_LOCAL_ROOT": "your-value",
"DROIDSIGHT_DEVICE_PIN": "your-value",
"DROIDSIGHT_ALLOW_SHELL": "your-value",
"DROIDSIGHT_DEBUG_LOG": "your-value",
"DROIDSIGHT_LOG": "your-value",
"DROIDSIGHT_EVENTS": "your-value",
"DROIDSIGHT_SENTINEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
DROIDSIGHT_DEVICE_SERIAL envDROIDSIGHT_ADB_PATH envDROIDSIGHT_LOCAL_ROOT envDROIDSIGHT_ALLOW_SHELL envDROIDSIGHT_DEBUG_LOG envDROIDSIGHT_LOG envDROIDSIGHT_EVENTS envDROIDSIGHT_SENTINEL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント edgecasehuman で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:DROIDSIGHT_DEVICE_PIN
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.0)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, FOGA node
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
A Finch OG Agent cell as an MCP server: read the world, dry-run and take ERC-8414 tenders by policy.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
An MCP server that drives a real Android device over ADB — and hands the agent back the screen its action produced.
One native binary. The server has no Python, Appium, scrcpy, or ffmpeg dependency and runs no Node at all — npx below is only a convenient installer — so the runtime is the binary plus adb. A background H.264 screenrecord stream is decoded in process, so the screen that follows an action is attached to the tool result automatically instead of costing a second round trip to ask what happened.
Every image carries the coordinate space it was produced in, so a model can tap what it just looked at without guessing a scale factor. When the accessibility tree comes back empty — Flutter, React Native, canvas, games — OCR and template matching still find the target.
This is a powerful local controller, not a sandbox. Run it only against a device and an MCP client you trust.
npx -y @edgecasehuman/droidsight
That downloads a prebuilt binary for your platform and needs no build tools. The server is also listed in the official [MCP Registry] as io.github.edgecasehuman/droidsight.
To compile it instead, from [crates.io]:
cargo install droidsight
Or from source:
cargo build --locked --release --bin droidsight
Both compiling routes need NASM on the PATH. The H.264 decoder is built from C++ by openh264-sys2, which assembles its hot paths with NASM, and no platform ships it by default -- without it the build fails inside a transitive dependency rather than in this crate. Install it with apt install nasm, brew install nasm, or winget install NASM.NASM. The npx route above needs none of this.
The server is target/release/droidsight. It speaks newline-delimited JSON-RPC 2.0 over stdin and stdout.
{
"mcpServers": { "android": { "command": "npx", "args": ["-y", "@edgecasehuman/droidsight"], "env": { "DROIDSIGHT_DEVICE_SERIAL": " " } } } }
ADB must be reachable through PATH, ANDROID_SDK_ROOT, ANDROID_HOME, or an explicit DROIDSIGHT_ADB_PATH. If more than one authorized device is visible the server refuses to guess; set DROIDSIGHT_DEVICE_SERIAL.
Thirty-one tools are published by default. Two more appear only when DROIDSIGHT_ALLOW_SHELL=1 is set, and are listed last.
| Tool | Purpose |
|---|---|
mcp_android_vision_query | Screenshot, hierarchy, OCR, and element or template search. Its elements and tap_element actions avoid coordinate arithmetic entirely. |
mcp_android_vision_stream | Start, stop, or read the background H.264 stream. |
mcp_android_get_view_hierarchy | The accessibility tree as structured JSON. |
mcp_android_smart_wait | Block until an element appears, or time out. |
| Tool | Purpose |
|---|---|
mcp_android_input_act | Tap, type, key events, swipe, smart tap, and IME control. |
mcp_android_tap_text | Scan for text and tap it the instant it appears, retrying until timeout. Avoids the miss between a screenshot and a tap. |
mcp_android_run_flow | Run a bounded, fully prevalidated sequence of safe actions. |
mcp_android_record_gesture | Record raw touch input for a fixed duration. |
mcp_android_play_gesture | Replay a recorded gesture timeline. |
| Tool | Purpose |
|---|---|
mcp_android_app_manage | Launch, stop, list, install, and read crash logs. Uninstall, clear data, permission, enable, and disable additionally require confirm_destructive. |
mcp_android_app_instrumentation | Deep state inspection: activity, window, process list, stack traces. |
mcp_android_open_url | Open a URL. |
mcp_android_start_intent | Start an arbitrary intent. |
| Tool | Purpose |
|---|---|
mcp_android_device_control | Clipboard, battery, device info, lock state, unlock, rotation. |
mcp_android_system_control | Accessibility services and the draw-over-other-apps permission. Grants screen-read and input-injection authority across every app. |
mcp_android_network_control | Wi-Fi, mobile data, HTTP proxy, phone calls, SMS, wireless ADB pairing. |
mcp_android_sensor_control | Mock battery level and charging status; GPS mocking is emulator-only. |
mcp_android_check_health | Connectivity and responsiveness of the selected device. |
mcp_android_check_debug_exposure | Report which developer settings are enabled and therefore visible to apps. |
| Tool | Purpose |
|---|---|
mcp_android_diagnostic_stream | Read logcat, clear it, or read buffered raw and semantic events. |
mcp_android_read_recent_events | Buffered device events from the optional monitor. |
mcp_android_log_filter | Filter logs by regex, tag, or priority. |
mcp_android_get_notifications | Dump posted notifications, including unredacted message content. |
mcp_android_file_system | List, read, push, and pull files, confined to DROIDSIGHT_LOCAL_ROOT. |
mcp_android_forensics_control | Query an on-device SQLite database, hash a file, or irreversibly delete an application's data. |
| Tool | Purpose |
|---|---|
mcp_android_start_recording | Begin a screen recording, up to 180 seconds, written to the device. |
mcp_android_stop_recording | Stop it. The file stays on the device. |
mcp_android_companion | Post a notification, show a transient message, or open a URL for whoever is holding the phone. |
mcp_android_sentinel_control | Register a watched package. See Background enforcement before using it. |
mcp_android_start_session, mcp_android_stop_session | Session markers. They acknowledge the call and hold no server state. |
DROIDSIGHT_ALLOW_SHELL=1| Tool | Purpose |
|---|---|
mcp_android_run_shell | Run an arbitrary device shell command. No filtering of any kind. |
mcp_android_run_macro | Run up to 100 shell commands in sequence, stopping at the first failure. |
Screenshots are downscaled to 720 pixels wide by default, so a coordinate read off the returned pixels is usually not a device coordinate. Every tool that returns an image also returns a metadata.image object describing how to convert one:
{
"image": { "width": 720, "height": 1600, "device_width": 1080, "device_height": 2400, "origin_x": 0, "origin_y": 0, "scale": 1.5, "coordinate_space": "image", "note": "To convert a coordinate (x, y) read from this image into a device coordinate: device_x = 0 + x * 1.5, device_y = 0 + y * 1.5." } }
When coordinate_space is device, the image is already 1:1 and coordinates can be used directly. Request max_width: 1440 to reduce or remove downscaling. Crops additionally report a non-zero origin_x/origin_y that must be added after scaling.
Taps, uiautomator hierarchy bounds, OCR boxes, and template matches are all in device coordinates. The background stream runs screenrecord without --size, so decoded frames are native resolution and share that one space.
You can avoid the arithmetic entirely. The mcp_android_vision_query tool's elements action returns an indexed snapshot with a precomputed center per element, and its tap_element action takes that snapshot_id and an index.
| Variable | Effect |
|---|---|
DROIDSIGHT_DEVICE_SERIAL | The only Android target the process may use. Mandatory when ADB reports multiple authorized devices. |
DROIDSIGHT_ADB_PATH | Explicit path to the ADB executable. |
DROIDSIGHT_LOCAL_ROOT | Confines host paths used by APK installation and file push/pull. Defaults to the process working directory. |
DROIDSIGHT_DEVICE_PIN | Numeric PIN for UI actions that need automatic unlock. Supply at runtime only; never in source or a checked-in MCP configuration. |
DROIDSIGHT_ALLOW_SHELL=1 | Publishes the arbitrary shell and macro tools. This grants authority equivalent to broad ADB shell access. Off by default. |
DROIDSIGHT_DEBUG_LOG | Path to a persistent debug log. Logging to a file is strictly opt-in; without this, warnings go to stderr and no file is written. |
DROIDSIGHT_LOG | Tracing filter. Defaults to warn, or debug when a debug log path is set. |
DROIDSIGHT_EVENTS=1 | Starts the long-running device event monitor. Requires DROIDSIGHT_DEVICE_SERIAL. |
DROIDSIGHT_SENTINEL=1 | Starts the background enforcement loop described under Background enforcement. Off by default: it re-applies device state on a timer, including unlocking the screen. |
One background H.264 screenrecord stream starts at process startup and the latest decoded RGB frame is kept in memory. Screenshot tools and input observations read that cache, so a snapshot is available immediately once the first frame decodes. A static screen's last frame stays valid while the stream runs; it does not expire merely because the encoder stopped emitting unchanged pixels.
The stream allows 20 seconds for the first decodable frame before reconnecting. After that, silence is treated as a static screen, while EOF and read errors still reconnect. Starting or stopping a stream synchronously clears its frame cache so a previous session's image cannot be reused. The mcp_android_vision_stream stop action suspends capture until an explicit start; shutdown drops the owned ADB stream and leaves no screenrecord process behind.
Continuous capture has privacy, battery, CPU, and wireless-bandwidth costs. The device screen may contain sensitive information even though cached frames stay in process memory until a tool returns one. Use the explicit stop action when capture should be suspended.
Stdout carries one JSON-RPC value per line; diagnostics go to stderr. The server supports initialize, tools/list, and tools/call, plus the initialized notification and legacy mcp.* aliases. Batch arrays are handled member by member and produce one response-array line; notification-only batches produce no output and empty batches are rejected. Clients must complete the ordered initialize request and notifications/initialized notification handshake before listing or calling tools; premature calls return JSON-RPC error -32002. Input frames are limited to 16 MiB; oversized or invalid UTF-8 frames are rejected without preventing the next valid request from being processed.
Published text from logs, events, notifications, device files, hierarchy and OCR results, crash and forensic reports, instrumentation, shell/macro output, and aggregate flows is limited to 256 KiB. Truncated responses carry metadata.truncation with the strategy, original size, returned size, and configured limit; chronological feeds retain their newest tail while file-like output retains its head.
Finite ADB subprocesses drain stdout and stderr concurrently and retain at most 4 MiB from each stream while counting all observed bytes, which prevents pipe deadlocks and unbounded capture. The opti
冒頭だけを表示しています。続きはリポジトリで読めます