mcpField
A
another-android

another-android

github.com/zfinixAgent workflows83336 installsUpdated 3w ago
Repository

About another-android

another-android is a skill for controlling Android devices through the Another desktop app. It is intended for workflows that require screen inspection and device automation, with tools for touch input, app launching, shell commands, and WiFi debugging.

Key features

  1. 01List connected Android devices
  2. 02Capture device screenshots
  3. 03Send touch, swipe, and text input
  4. 04Launch apps and open URLs
  5. 05Run adb shell commands
  6. 06Switch to and connect over WiFi debugging

Use cases

  1. 01Inspect and interact with app screens
  2. 02Enter text and navigate Android apps
  3. 03Query device information through shell
  4. 04Switch a USB device to WiFi debugging

MCP support

The skill connects to Android devices through the MCP server enabled by the Another desktop app. Configure its address in MCP settings and follow the listed sequence of finding, connecting to, inspecting, operating, and disconnecting from a device.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/zfinix/another --skill another-android

After installing, type/another-androidin Claude Code to confirm it loaded.

Details

From the project README

Another - Android Device Control

You have access to an Android device through the Another MCP server. Use these tools to see what's on screen, interact with the device, and automate tasks.

Setup

The Another desktop app must be running with MCP Server enabled (on by default in Settings).

Add to your MCP settings (Claude Code, Claude Desktop, Cursor, etc.):

{
  "mcpServers": {
    "another": {
      "type": "http",
      "url": "http://localhost:7070/mcp"
    }
  }
}

Workflow

Always follow this order:

  1. List devices to see what's available
  2. Connect to establish a control session
  3. Screenshot to see the current screen state
  4. Act using touch, text, buttons, swipe, etc.
  5. Screenshot again to verify the result
  6. Disconnect when done

Available Tools

Device Management
ToolWhat it does
another_list_devicesList all connected Android devices
another_connect_deviceConnect to a device (starts scrcpy control session)
another_disconnect_deviceDisconnect from the current device
Observation
ToolWhat it does
another_take_screenshotCapture the screen as a PNG image
Input
ToolWhat it does
another_press_buttonPress a hardware button: home, back, recents, power, volume_up, volume_down
another_send_textType text into the focused input field
another_send_touchSend a touch event (down, up, move) at normalized coordinates (0.0-1.0)
another_send_scrollScroll at a position with a given delta
another_swipeSwipe from one point to another (normalized 0.0-1.0 coordinates)
Apps & Shell
ToolWhat it does
another_launch_appLaunch an app by package name (e.g. com.android.chrome)
another_open_urlOpen a URL in the device's default browser
another_shellRun an arbitrary adb shell command and get the output
WiFi
ToolWhat it does
another_wifi_enableSwitch a USB device to WiFi debugging mode
another_wifi_connectConnect to a device by IP address
another_wifi_disconnectDisconnect a WiFi device
another_get_device_ipGet the WiFi IP of a USB-connected device

Coordinate System

Touch, swipe, and scroll tools use normalized coordinates from 0.0 to 1.0:

  • (0.0, 0.0) = top-left corner
  • (1.0, 1.0) = bottom-right corner
  • (0.5, 0.5) = center of screen

Common Patterns

Tap on something
another_send_touch { action: "down", x: 0.5, y: 0.5 }
another_send_touch { action: "up", x: 0.5, y: 0.5 }
Tap, then verify
1. another_take_screenshot  (see what's on screen)
2. another_send_touch       (tap where you need to)
3. another_take_screenshot  (verify the result)
Type into a field
1. Tap the input field with another_send_touch
2. another_send_text { text: "hello world" }
Scroll down a page
another_send_scroll { x: 0.5, y: 0.5, dx: 0.0, dy: -1.0 }
Swipe to go back or navigate
another_swipe { from_x: 0.0, from_y: 0.5, to_x: 0.5, to_y: 0.5 }
Navigate with buttons
another_press_button { button: "home" }
another_press_button { button: "back" }
another_press_button { button: "recents" }
Open an app and interact
1. another_launch_app { package: "com.android.chrome" }
2. Wait briefly, then another_take_screenshot
3. Interact as needed
Find an element on screen

Take a screenshot, examine it to identify positions, then use the coordinates to interact. Screenshots are the primary way to understand what's visible on the device.

Run a shell command
another_shell { command: "pm list packages" }
another_shell { command: "dumpsys battery" }
another_shell { command: "settings get system screen_brightness" }

Tips

  • Always screenshot first before interacting. You need to see the screen to know where to tap.
  • Screenshot after actions to confirm they worked.
  • Use shell commands for things that don't need the screen (checking battery, listing packages, getting device info).
  • Swipe duration defaults to 300ms. Increase duration_ms for slower, more deliberate swipes.
  • Connect before acting. Tools like press_button, send_text, send_touch, swipe require an active connection via another_connect_device.
  • list_devices, shell, take_screenshot, wifi_ tools* work without a scrcpy connection, they only need adb.

Comments

Markdown supported