Skip to content
Agentmart
Submit a tool

android-remote-control

Use this skill when controlling an Android device through the Android Remote Control MCP server — reading the screen, navigating apps and home screen, opening…

Skill by jason-riddle

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/jason-riddle-android-remote-control

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use this skill when controlling an Android device through the Android Remote Control MCP server — reading the screen, navigating apps and home screen, opening URLs in Chrome, tapping/typing/scrolling, managing files in device storage, checking device settings (including ADB / wireless debugging state), taking photos, reading notifications, or any task that requires interacting with a physical Android phone or tablet from the host. Triggers on requests like "check my Android phone", "open a website on the device", "read what's on the screen", "go to developer options", "enable USB debugging", "check if ADB is enabled", "take a photo from the phone", "list files on the device", or any task involving an Android device managed via the android-remote-control MCP tools.

Use cases: backend, productivity, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/android-remote-control

What's inside

Skill name
android-remote-control
Description
Use this skill when controlling an Android device through the Android Remote Control MCP server — reading the screen, navigating apps and home screen, opening URLs in Chrome, tapping/typing/scrolling, managing files in device storage, checking device settings (including ADB / wireless debugging state), taking photos, reading notifications, or any task that requires interacting with a physical Android phone or tablet from the host. Triggers on requests like "check my Android phone", "open a website on the device", "read what's on the screen", "go to developer options", "enable USB debugging", "check if ADB is enabled", "take a photo from the phone", "list files on the device", or any task involving an Android device managed via the android-remote-control MCP tools.
License
MIT
Instructions
1,385 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Agent Skills spec issues

  • body: 1385 lines (spec recommends under 500)

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Android Remote Control

Control a physical Android device via the Android Remote Control MCP server.
The device runs an accessibility-service-based MCP app — it does NOT require
ADB or root. All interaction happens through MCP tool calls that map to
accessibility actions, gestures, intents, and file/storage APIs.

## Orientation

Run the following before proceeding to confirm the MCP server is connected and
discover available storage and apps:

```
android_list_storage_locations
android_list_apps filter=user
android_get_screen_state
```

## How to read a page (screen state)

Call `android_get_screen_state`. This returns:

- `screen: <w>x<h> density:<n> orientation:<landscape|portrait>`
- One block per window, each with `pkg`, `title`, `activity`, `focused`
- A flat node table: `node_id | class | text | desc | res_id | bounds | flags`
- A `hierarchy:` section showing node nesting via indentation

Flags: `on`=onscreen, `off`=offscreen, `clk`=clickable, `lclk`=longClickable,
`foc`=focusable, `scr`=scrollable, `edt`=editable, `ena`=enabled.

### Pagination

Large screens split into pages of 200 nodes. The response includes a
`page:N/total` line and a `cursor`. Call again with that `cursor` to fetch the
next page. Stop as soon as the needed node is found — do not fetch every page.

### Screenshots

`include_screenshot=true` can ONLY be requested on page 1 (no cursor). The
screenshot is a low-resolution image attachment. Use it when the node tree is
insufficient (custom views, Canvas, game UI, Samsung One UI preferences).

### Find a specific element

```
android_find_nodes by="text" value="Settings"
android_find_nodes by="resource_id" value="com.android.chrome:id/url_bar"
android_find_nodes by="content_desc" value="Chrome"
android_find_nodes by="class_name" value="android.widget.EditText"
```

`exact_match=false` (default) matches contains, case-insensitive.
`exact_match=true` matches exactly.

### Retrieve full text

`android_get_node_details` with one or more `node_ids` returns full untruncated
text and description — use when the node table shows `...truncated`.

### Wait for an element

```
android_wait_for_node by="text" value="Example Domain" timeout=10000
```

### Wait for UI to settle

```
android_wait_for_idle timeout=5000
```

Returns when the screen stops changing (similarity-based). Some pages never go
fully idle (animations, feeds); use a lower `match_percentage` (e.g. 95) or rely
on `wait_for_node` instead. Action tools already wait for their gesture to
complete before returning — only call `wait_for_idle` when confirming a
transition.

## Go to home screen

```
android_press_home
```

Then call `android_get_screen_state` to see launcher icons. Tap an icon with
`android_tap_node` (uses node_id from the tree).

## Go to Chrome

Two approaches:

**Via `open_app` (preferred — launches the app directly):**
```
android_open_app package_id="com.android.chrome"
```

**Via home screen tap (if the app icon is visible on the launcher):**
```
android_press_home
android_get_screen_state
# Find the Chrome icon node, then:
android_tap_node node_id="<chrome_icon_node_id>"
```

After launching, call `android_get_screen_state` to see Chrome's UI. On a new
tab the URL bar has `res_id=com.android.chrome:id/url_bar` (toolbar) or
`com.android.chrome:id/search_box_text` (large centered search box on the
new tab page).

### Chrome toolbar resource IDs

| Element | resource_id | content_desc |
|---------|-------------|--------------|
| URL bar | `com.android.chrome:id/url_bar` | - |
| Home button | `com.android.chrome:id/home_button` | "Open the home page" |
| New tab button | `com.android.chrome:id/optional_toolbar_button` | "New tab" |
| Tab switcher | `com.android.chrome:id/tab_switcher_button` | "See N tabs" |
| 3-dot menu | `com.android.chrome:id/menu_button` | "Customize and control Google Chrome" |
| Voice search | `com.android.chrome:id/mic_button` | "Start voice search" |
| Google Lens | `com.android.chrome:id/lens_camera_button` | "Search with your camera using Google Lens" |

From jason-riddle/agent-skills, MIT.

More from jason-riddle/agent-skills

Signals

Stars
0
Forks
0
Open issues
1
Last commit (this folder)
Aug 23, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from jason-riddle

Cite this page

android-remote-control skill. Agent Mart. https://agentmart.dev/skills/jason-riddle-android-remote-control (last updated 2026-10-24)