Android automation from code. Test your apps on real phones, script the tasks you repeat, run a shelf of phones, or let an AI agent use one, from Python, Node.js, the CLI, HTTP or Appium clients. No ADB, no USB cable, no root.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add droidline -- node scripts/gen.mjs --check '#' SDK methods match spec/commands.json~/.codex/config.toml
[mcp_servers.droidline]
command = "node"
args = ["scripts/gen.mjs", "--check", "#", "SDK", "methods", "match", "spec/commands.json"]
# codex mcp add droidline -- node scripts/gen.mjs --check '#' SDK methods match spec/commands.json~/.cursor/mcp.json
{
"mcpServers": {
"droidline": {
"command": "node",
"args": [
"scripts/gen.mjs",
"--check",
"#",
"SDK",
"methods",
"match",
"spec/commands.json"
]
}
}
}.vscode/mcp.json
{
"servers": {
"droidline": {
"type": "stdio",
"command": "node",
"args": [
"scripts/gen.mjs",
"--check",
"#",
"SDK",
"methods",
"match",
"spec/commands.json"
]
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"droidline": {
"command": "node",
"args": [
"scripts/gen.mjs",
"--check",
"#",
"SDK",
"methods",
"match",
"spec/commands.json"
]
}
}
}claude_desktop_config.json
{
"mcpServers": {
"droidline": {
"command": "node",
"args": [
"scripts/gen.mjs",
"--check",
"#",
"SDK",
"methods",
"match",
"spec/commands.json"
]
}
}
}.trae/mcp.json
{
"mcpServers": {
"droidline": {
"command": "node",
"args": [
"scripts/gen.mjs",
"--check",
"#",
"SDK",
"methods",
"match",
"spec/commands.json"
]
}
}
}