Android MCP Server
Control Android devices via the Android Debug Bridge (ADB).
Android MCP Server
Overview
This repository provides an MCP (Model Context Protocol) server for Android device control through ADB (Android Debug Bridge). It exposes simple tools (functions) that can be called from LLMs or clients (like Claude Desktop) to automate Android device actions such as opening Chrome and performing a search.
The goal is to make it easy for any client supporting MCP (such as Claude Desktop) to control an Android device using natural language and safe, auditable tools.
Features
- open_chrome_and_search:
Opens the default browser on a connected Android device and performs a Google search for a given query. - screenshot_and_preprocess:
Takes a screenshot and preprocesses it for further use. - send_sms_via_adb:
Sends an SMS message via ADB to a specified number. - get_device_model:
Retrieves the model name of the connected Android device. - get_battery_info:
Returns battery status and information. - get_device_features:
Lists hardware/software features supported by the device. - get_storage_info:
Provides information about device storage usage. - get_network_info:
Returns details about the device's network connectivity. - take_screenshot:
Captures a screenshot from the device. - open_settings:
Opens the main settings app on the device. - toggle_airplane_mode:
Enables or disables airplane mode. - increase_volume / decrease_volume:
Adjusts the device's media volume up or down. - press_power_button:
Simulates pressing the power button. - press_home_button:
Simulates pressing the home button. - press_back_button:
Simulates pressing the back button. - open_wifi_settings:
Opens the Wi-Fi settings screen. - open_bluetooth_settings:
Opens the Bluetooth settings screen. - open_display_settings:
Opens the display settings screen. - Easily extensible: add more ADB-powered tools as needed (launch apps, take screenshots, etc.)
- Secure: only exposes specific, whitelisted actions.
Requirements
- Python 3.10+
- ADB installed and added to your system PATH
- An Android device with:
- Developer mode enabled
- USB debugging enabled
- Claude Desktop (or any MCP-compatible client)
- uv Python project tool (recommended, but you can adapt to pip/venv if you wish)
Installation & Setup
1. Clone the repository
git clone https://github.com/IngaleChinmay04/android-mcp-server
cd android-mcp-server
2. Install uv (if not already)
On Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
On Mac/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Restart your terminal after install.
3. Set up the Python environment
uv venv
# On Windows:
.venv\Scripts\activate
# On Mac/Linux:
source .venv/bin/activate
uv add "mcp[cli]"
4. (Optional) Test the server manually
uv run android_server.py
The server will wait for MCP client connections.
Usage: Integrate with Claude Desktop
To connect your MCP server to Claude Desktop:
1. Ensure Claude Desktop is installed and fully up to date.
2. Edit/Create the Claude config file
On Windows:
- Location:
C:\Users\<YourUsername>\AppData\Roaming\Claude\claude_desktop_config.json
On Mac:
- Location:
~/Library/Application Support/Claude/claude_desktop_config.json
Create the file if it does not exist.
3. Add your server configuration
Example config (update the directory path if you cloned elsewhere):
{
"mcpServers": {
"android_control": {
"command": "uv",
"args": [
"--directory",
"C:\\Users\\<YourUsername>\\Desktop\\android-mcp-server",
"run",
"android_server.py"
]
}
}
}
- Use the absolute path to your project folder.
- Save the config file.
4. Restart Claude Desktop
- Fully close all Claude Desktop windows (including tray icon).
- Reopen Claude Desktop.
5. Plug in your Android device
- Enable Developer Options and USB Debugging on your phone.
- Connect via USB.
- Approve any "Allow USB Debugging" prompts.
Example Usage
In Claude Desktop, you can now use the tool by typing a natural language prompt such as:
- "Search for 'latest Android news' on my Android device."
- "Use the open_chrome_and_search tool with query: Python tutorials"
Claude will invoke the tool, and your phone's browser will open and perform the search.
Adding More Tools
To extend functionality, simply add more @mcp.tool() decorated Python functions to android_server.py.
For example, you can add tools to take a screenshot, install an app, open a specific app, etc.
Troubleshooting
- No device found?
Make sure you have runadb devicesand see your device listed. - MCP server not showing up in Claude?
Double check your config file path and syntax, and restart Claude Desktop. - Unexpected token / JSON errors?
Ensure there are NO print statements or logging to stdout in your server code; all outputs must go via MCP calls only. - Still stuck?
Check the Claude logs (button in the Claude Desktop UI) for details.
Credits
Related Servers
Cloudflare MCP Server Example
An example of deploying a remote MCP server on Cloudflare Workers without authentication.
Flux ImageGen MCP Server
An MCP server for generating images using the Pollinations AI API.
WireMCP
Empowers LLMs with real-time network traffic analysis using tshark. Requires Wireshark's tshark to be installed.
NSAF MCP Server
An MCP server for the Neuro-Symbolic Autonomy Framework (NSAF), enabling AI assistants to interact with the framework.
Plugged.in
A comprehensive proxy that combines multiple MCP servers into a single MCP. It provides discovery and management of tools, prompts, resources, and templates across servers, plus a playground for debugging when building MCP servers.
MCP REST Server
A server for interacting with REST APIs, featuring authentication and Swagger documentation support.
Intlayer
A MCP Server that enhance your IDE with AI-powered assistance for Intlayer i18n / CMS tool: smart CLI access, versioned docs.
Enhanced QR Code MCP Server
Advanced QR code generation and processing with support for custom styling, multiple formats, batch processing, and analytics.
HeyBeauty
Perform virtual try-ons using the HeyBeauty API.
shadow-cljs
Monitors shadow-cljs builds and provides real-time build status updates.