Android MCP Server

Android MCP Server

Enables control of Android devices through ADB using natural language commands. Supports browser automation, SMS sending, device information retrieval, settings control, and common device actions like screenshots and button presses.

Category
Visit Server

README

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 run adb devices and 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


Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured