-
Notifications
You must be signed in to change notification settings - Fork 82
Expand file tree
/
Copy pathmanifest.json
More file actions
124 lines (124 loc) · 4.62 KB
/
manifest.json
File metadata and controls
124 lines (124 loc) · 4.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
{
"manifest_version": "0.4",
"name": "Android-MCP",
"version": "0.2.0",
"description": "Lightweight MCP Server for Android Operating System",
"long_description": "Android-MCP is a lightweight, open-source tool that bridge between AI agents and Android devices. Running as an MCP server, it lets LLM agents perform real-world tasks such as **app navigation, UI interaction and automated QA testing** without relying on traditional computer-vision pipelines or preprogramed scripts.\n\n**KEY FEATURES**\n- **Native Android Integration**: Interact with UI elements via ADB and the Android Accessibility API.\n- **Bring Your Own LLM/VLM**: Works with any language model.\n- **Rich Toolset for Mobile Automation**: Pre-built tools for gestures, keystrokes, capture, device state, etc.\n- **Real-Time Interaction**: Typical latency between actions ranges 2-4s.\n\n**MINIMUM REQUIREMENTS**\n- Python 3.13\n- Android Debug Bridge (ADB)\nEnsure ADB is installed and your device is connected/authorized.\n- UV Package Manager\nThis MCP server requires UV, a fast Python package manager.\nInstallation:\n`curl -LsSf https://astral.sh/uv/install.sh | sh`\nFor detailed installation instructions, [see the UV documentation](https://github.com/astral-sh/uv)\n\n**WINDOWS NOTE**\nUse Python 3.13 for `uvx` on Windows. Python 3.14 currently fails to resolve a transitive `pywin32` dependency from the MCP stack.",
"author": {
"name": "CursorTouch",
"url": "https://cursortouch.com/"
},
"homepage": "https://cursortouch.com/",
"documentation": "https://github.com/CursorTouch/Android-MCP",
"icon": "assets/logo.png",
"server": {
"type": "uv",
"entry_point": "src/android_mcp/__main__.py",
"mcp_config": {
"command": "uv",
"args": [
"--directory",
"${__dirname}",
"run",
"android-mcp"
],
"env": {
"UV_NO_SYNC": "1",
"ANDROID_MCP_DEVICE": "${user_config.device}",
"ANDROID_MCP_CONNECTION": "${user_config.connection}",
"SCREENSHOT_QUANTIZED": "${user_config.screenshot_quantized}"
}
}
},
"user_config": {
"device": {
"type": "string",
"title": "Device Serial",
"description": "ADB device serial number or host:port for Wi-Fi ADB (e.g. emulator-5554 or 192.168.1.10:5555). Leave blank to auto-select the only connected device.",
"required": false,
"default": ""
},
"connection": {
"type": "string",
"title": "Connection Type",
"description": "Preferred ADB connection method. 'auto' picks whichever device is available, 'usb' forces USB only, 'wifi' forces Wi-Fi ADB only.",
"required": false,
"default": "auto"
},
"screenshot_quantized": {
"type": "boolean",
"title": "Compress Screenshots",
"description": "Quantize screenshots to reduce token usage when sending images to the model. Slightly reduces image quality.",
"required": false,
"default": false
}
},
"tools": [
{
"name": "ListDevices",
"description": "List available ADB devices and their connection state."
},
{
"name": "ConnectDevice",
"description": "Connect to an ADB device by serial number."
},
{
"name": "Click",
"description": "Click on a specific cordinate (x, y)."
},
{
"name": "Snapshot",
"description": "Get the state of the device. Optionally includes visual screenshot when use_vision=True. Returns tree state string and screenshot if requested."
},
{
"name": "LongClick",
"description": "Long click on a specific cordinate (x, y)."
},
{
"name": "Swipe",
"description": "Swipe from one coordinate (x1, y1) to another (x2, y2)."
},
{
"name": "Type",
"description": "Type text on a specific cordinate (x, y). Can clear existing text if clear=True."
},
{
"name": "Drag",
"description": "Drag from location (x1, y1) and drop on another location (x2, y2)."
},
{
"name": "Press",
"description": "Press on specific button on the device (e.g. Back, Home, etc)."
},
{
"name": "Notification",
"description": "Access the notifications seen on the device."
},
{
"name": "Wait",
"description": "Wait for a specific amount of time (seconds)."
}
],
"compatibility": {
"platforms": [
"win32",
"linux",
"darwin"
],
"runtimes": {
"python": ">=3.13,<3.14"
}
},
"keywords": [
"android",
"automation",
"ai",
"mcp",
"mobile"
],
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/CursorTouch/Android-MCP"
}
}