Controls an Android device via MCP using ADB commands for calls, messages, UI automation, and app management.
Configuration
View docs{
"mcpServers": {
"hao-cyber-phone-mcp": {
"command": "uvx",
"args": [
"phone-mcp"
]
}
}
}You can control an Android device from your computer using a dedicated MCP server that runs locally or remotely. This server exposes a rich set of commands for calling, messaging, app control, UI automation, screen analysis, and more, all through simple MCP client interactions. It enables automated workflows, testing, and hands-free device management from your preferred assistant or automation setup.
Install and run the MCP server on your machine or a nearby host, then connect to it from your MCP client. Once connected, you can issue natural language requests or scripted commands to perform tasks such as placing a call, sending an SMS, launching apps, taking screenshots, analyzing the screen, navigating the UI, and more. Combine multiple actions to build end-to-end automation, for example: open the contacts app, create a new contact, and save it automatically.
# Run directly with uvx (recommended, part of uv, no separate installation needed)
uvx phone-mcp
# Or install with uv
uv pip install phone-mcp
# Or install with pip
pip install phone-mcpConfigure how the MCP server runs and how it is accessed by your MCP client. You can choose between running via uvx/uv or using a Python module. The following configurations show common setups you can paste into your client configuration.
{
"mcpServers": {
"phone_mcp": {
"command": "uvx",
"args": [
"phone-mcp"
]
}
}
}Before you start, ensure you have a working connection to an Android device. The device must have USB debugging enabled and be connected to your computer. ADB should be installed and accessible from your shell. Use the appropriate startup method for your environment (uvx or Python) and confirm the MCP server is reachable from your client.
Once the server is running, you can perform a wide range of actions. The commands are grouped by capability, and you can mix them to automate common workflows.
- Place a call to a number or contact, and end the call when needed. - Send an SMS to a number with a custom message. - Launch an app or a specific activity, then interact with the UI to complete a task. - Take a screenshot or record the screen for debugging. - Analyze the current screen, tap elements, and input text. - Open a URL in the device's default browser.
You can issue commands directly in conversation with your AI assistant. For example, ask it to call a contact or to launch a specific app. The server translates your request into ADB operations on the connected device and returns the result.
Execute screen interaction actions such as tap, swipe, key press, and text input with a parameter dictionary that defines the exact behavior.
Analyze the current screen and return a structured description of UI elements, with an option to include a screenshot.
Create a new contact on the device using UI automation to fill out name and phone fields.
Launch an app by providing the package name and optionally the activity name for reliable startup.
Launch an activity using the Android intent system with optional extras.