Mcp Android Agent Python

Created By
nim444a year ago
This project provides an **MCP (Model Context Protocol)** server for automating Android devices using [uiautomator2](https://github.com/openatx/uiautomator2). It's designed to be easily plugged into AI agents like GitHub Copilot Chat, Claude, or Open Interpreter to control Android devices through natural language.
Overview

🛠️ Setup

1. Clone the repo

git clone https://github.com/nim444/mcp-android.git
cd mcp-android

2. Create and activate virtual environment

# Using uv (https://github.com/astral-sh/uv)
uv venv
source .venv/bin/activate

3. Install dependencies (from pyproject.toml)

uv pip install
uvicorn server:app --factory --host 0.0.0.0 --port 8000

Alternatively, run with MCP stdio (for AI agent integration):

python server.py

🤖 Available MCP Tools

Tool NameDescription
mcp_healthCheck if the MCP server is running properly
connect_deviceConnect to an Android device and get basic info
get_installed_appsList all installed apps with version and package info
get_current_appGet info about the app currently in the foreground
start_appStart an app by its package name
stop_appStop an app by its package name
stop_all_appsStop all currently running apps
screen_onTurn on the screen
screen_offTurn off the screen
get_device_infoGet detailed device info: serial, resolution, battery, etc.
press_keySimulate hardware key press (e.g. home, back, menu, etc.)
unlock_screenUnlock the screen (turn on and swipe if necessary)
check_adbCheck if ADB is installed and list connected devices
wait_for_screen_onWait asynchronously until the screen is turned on
clickTap on an element by text, resourceId, or description
long_clickPerform a long click on an element
send_textInput text into currently focused field (optionally clearing before)
get_element_infoGet info on UI elements (text, bounds, clickable, etc.)
swipeSwipe from one coordinate to another
wait_for_elementWait for an element to appear on screen
screenshotTake and save a screenshot from the device
scroll_toScroll until a given element becomes visible
dragDrag an element to a specific screen location
get_toastGet the last toast message shown on screen
clear_app_dataClear user data/cache of a specified app
wait_activityWait until a specific activity appears

Server Config

{
  "mcpServers": {
    "mcp-android": {
      "type": "stdio",
      "command": "bash",
      "args": [
        "-c",
        "cd <DIRECTORY> && source .venv/bin/activate && python -m server"
      ]
    }
  }
}
Project Info
Created At
a year ago
Updated At
a year ago
Author Name
nim444
Star
-
Language
-
License
-
Category

Recommend Servers

View All
Bring your real authenticated browser session to AI coding agents. Local-first MCP server + Chrome MV3 extension. No cloud. No telemetry.
@Cubenest

peek records the user's actual logged-in browser (DOM via rrweb, console events, network metadata, optional response bodies via opt-in Deep capture) through a Chrome MV3 extension. The extension ships events through a native-messaging stdio bridge to a local MCP server (peek-mcp), which persists them to a SQLite database at ~/.peek/sessions.db. AI coding agents (Claude Code, Cursor, Cline, Windsurf) read sessions from the database via 10 MCP tools: Tool What it does list_recent_sessions List recently recorded sessions (id, origin, ts, event count). get_session_summary LLM-readable narrative summary of a session. get_session_console_errors Console errors recorded in a session. get_session_network_errors Failed/notable network requests in a session. get_user_action_before_error Last N user actions before a console error. generate_playwright_repro Generate a runnable Playwright test from a session. get_dom_snapshot Reconstruct the DOM at a given timestamp. query_dom_history Timeline of attribute/text changes for a selector. request_authorization Side-panel consent for write actions (Level 3). execute_action Dispatch a UI action (gated by permission level + destructive blocklist). Why local-first matters Every other "browser session for AI" tool ships to a vendor cloud. peek's SQLite + extension live on the user's machine — no remote endpoints, no telemetry. The privacy policy (docs/peek/PRIVACY_POLICY.md) is the source of truth. Install # 1. Add the MCP server to Claude Code claude mcp add peek -- npx -y @peekdev/mcp # 2. Install the Chrome extension from the Chrome Web Store # (link added once the CWS listing is approved)

20 hours ago
Gpt Scrambler

2 days ago