/
by pedro-rivas
MCP server for Android automation with UI interaction, screenshots, and device control
Server configuration and capabilities from the MCP manifest
Size: 8,088 bytes (2,022 tokens)
Tools Found: 12
Analysis ID: 2vxt45ns
MCP server for Android automation with UI interaction, screenshots, and device control
Stars
Registry ID: 1358a9af-ccab-47f5-8176-1892168954f0
Added to Registry: 9/21/2025
Last Updated: 9/22/2025
Last Seen: 9/22/2025
Default Branch: main
Last Push: 9/18/2025
Open Issues: 0
Historical performance and growth metrics over time
{
"name": "io.github.pedro-rivas/android-puppeteer-mcp",
"tags": [
"MCP",
"Android",
"Automation",
"Screenshots",
"Device Control"
],
"tools": [
{
"name": "list_emulators",
"description": "List all available Android emulators and devices with their name, ID, status, and dimensions",
"input_schema": {
"type": "object",
"required": [],
"properties": {}
},
"output_schema": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"width": {
"type": "integer"
},
"height": {
"type": "integer"
},
"status": {
"type": "string"
},
"dimensions": {
"type": "string"
}
}
}
},
"success": {
"type": "boolean"
}
}
}
},
{
"name": "take_screenshot",
"description": "Take a screenshot for the specified device/emulator. If no device_id is provided, uses the default device.",
"input_schema": {
"type": "object",
"required": [],
"properties": {
"name": {
"type": "string"
},
"device_id": {
"type": "string"
},
"annotate_elements": {
"type": "boolean"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"filename": {
"type": "string"
},
"filepath": {
"type": "string"
},
"device_id": {
"type": "string"
},
"ui_elements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"index": {
"type": "integer"
},
"clickable": {
"type": "boolean"
},
"focusable": {
"type": "boolean"
},
"class_name": {
"type": "string"
},
"bounding_box": {
"type": "object",
"properties": {
"x1": {
"type": "integer"
},
"x2": {
"type": "integer"
},
"y1": {
"type": "integer"
},
"y2": {
"type": "integer"
}
}
},
"center_coordinates": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
}
}
}
}
}
},
"ui_elements_count": {
"type": "integer"
}
}
}
},
{
"name": "press",
"description": "Tap on specific coordinates on the Android screen. Use duration for long press (in milliseconds).",
"input_schema": {
"type": "object",
"required": [
"x",
"y"
],
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
},
"duration": {
"type": "integer"
},
"device_id": {
"type": "string"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
},
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"device_id": {
"type": "string"
},
"action_type": {
"type": "string"
}
}
}
},
{
"name": "long_press",
"description": "Long press on specific coordinates on the Android screen.",
"input_schema": {
"type": "object",
"required": [
"x",
"y"
],
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
},
"device_id": {
"type": "string"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
},
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"device_id": {
"type": "string"
},
"action_type": {
"type": "string"
},
"duration_ms": {
"type": "integer"
}
}
}
},
{
"name": "get_ui_elements_info",
"description": "Get detailed information about all interactive UI elements on the screen including their coordinates and properties.",
"input_schema": {
"type": "object",
"required": [],
"properties": {
"device_id": {
"type": "string"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"elements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"index": {
"type": "integer"
},
"clickable": {
"type": "boolean"
},
"focusable": {
"type": "boolean"
},
"class_name": {
"type": "string"
},
"bounding_box": {
"type": "object",
"properties": {
"x1": {
"type": "integer"
},
"x2": {
"type": "integer"
},
"y1": {
"type": "integer"
},
"y2": {
"type": "integer"
}
}
},
"center_coordinates": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
}
}
}
}
}
},
"device_id": {
"type": "string"
}
}
}
},
{
"name": "get_device_dimensions",
"description": "Get the dimensions of the Android device/emulator screen.",
"input_schema": {
"type": "object",
"required": [],
"properties": {
"device_id": {
"type": "string"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"width": {
"type": "integer"
},
"height": {
"type": "integer"
},
"success": {
"type": "boolean"
},
"device_id": {
"type": "string"
},
"dimensions": {
"type": "string"
}
}
}
},
{
"name": "press_back",
"description": "Press the hardware back button on the Android device/emulator.",
"input_schema": {
"type": "object",
"required": [],
"properties": {
"device_id": {
"type": "string"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"device_id": {
"type": "string"
},
"action_type": {
"type": "string"
}
}
}
},
{
"name": "swipe",
"description": "Swipe horizontally or vertically on the Android screen.",
"input_schema": {
"type": "object",
"required": [],
"properties": {
"x1": {
"type": "integer"
},
"x2": {
"type": "integer"
},
"y1": {
"type": "integer"
},
"y2": {
"type": "integer"
},
"distance": {
"type": "integer"
},
"duration": {
"type": "integer"
},
"device_id": {
"type": "string"
},
"direction": {
"type": "string"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"distance": {
"type": "integer"
},
"duration": {
"type": "integer"
},
"device_id": {
"type": "string"
},
"direction": {
"type": "string"
},
"action_type": {
"type": "string"
},
"coordinates": {
"type": "object",
"properties": {
"end": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
}
}
},
"start": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
}
}
}
}
}
}
}
},
{
"name": "type_text",
"description": "Type text into the currently focused input field on the Android device/emulator.",
"input_schema": {
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
},
"device_id": {
"type": "string"
},
"clear_first": {
"type": "boolean"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"device_id": {
"type": "string"
},
"action_type": {
"type": "string"
},
"cleared_first": {
"type": "boolean"
}
}
}
},
{
"name": "scroll_element",
"description": "Scroll a specific UI element in the given direction for a specified distance.",
"input_schema": {
"type": "object",
"required": [
"element",
"direction"
],
"properties": {
"element": {
"type": "string"
},
"distance": {
"type": "integer"
},
"duration": {
"type": "integer"
},
"device_id": {
"type": "string"
},
"direction": {
"type": "string"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"element": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"class_name": {
"type": "string"
},
"bounding_box": {
"type": "object",
"properties": {
"x1": {
"type": "integer"
},
"x2": {
"type": "integer"
},
"y1": {
"type": "integer"
},
"y2": {
"type": "integer"
}
}
}
}
},
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"distance": {
"type": "integer"
},
"duration": {
"type": "integer"
},
"device_id": {
"type": "string"
},
"direction": {
"type": "string"
},
"action_type": {
"type": "string"
},
"scroll_coordinates": {
"type": "object",
"properties": {
"end": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
}
}
},
"start": {
"type": "object",
"properties": {
"x": {
"type": "integer"
},
"y": {
"type": "integer"
}
}
}
}
},
"is_scrollable_element": {
"type": "boolean"
}
}
}
},
{
"name": "record_video",
"description": "Start recording a video using scrcpy. The video will be saved to the videos directory.",
"input_schema": {
"type": "object",
"required": [],
"properties": {
"bitrate": {
"type": "string"
},
"filename": {
"type": "string"
},
"device_id": {
"type": "string"
},
"resolution": {
"type": "string"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"bitrate": {
"type": "string"
},
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"filename": {
"type": "string"
},
"filepath": {
"type": "string"
},
"device_id": {
"type": "string"
},
"process_id": {
"type": "integer"
},
"resolution": {
"type": "string"
},
"recording_key": {
"type": "string"
}
}
}
},
{
"name": "stop_video",
"description": "Stop the active video recording for the specified device.",
"input_schema": {
"type": "object",
"required": [],
"properties": {
"device_id": {
"type": "string"
}
}
},
"output_schema": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"filename": {
"type": "string"
},
"filepath": {
"type": "string"
},
"device_id": {
"type": "string"
},
"file_exists": {
"type": "boolean"
},
"file_size_bytes": {
"type": "integer"
},
"duration_seconds": {
"type": "number"
}
}
}
}
],
"version": "1.0.1",
"categories": [
"Automation",
"Android",
"UI Interaction"
],
"description": "MCP server for Android automation with UI interaction, screenshots, and device control"
}Forks
Watchers
Contributors
Last Push: 9/18/2025
Open Issues: 0