Android MCP Server
An MCP (Model Context Protocol) server that provides programmatic control over Android devices through ADB (Android Debug Bridge). This server exposes various Android device management capabilities that can be accessed by MCP clients like Claude desktop and Code editors (e.g. Cursor)
Features
- 🔧 ADB Command Execution
- 📸 Device Screenshot Capture
- 🎯 UI Layout Analysis
- 📱 Device Package Management
Prerequisites
- Python 3.x
- ADB (Android Debug Bridge) installed and configured
- Android device or emulator (not tested)
Installation
- Clone the repository:
git clone https://github.com/minhalvp/android-mcp-server.git
cd android-mcp-server
- Install dependencies: This project uses uv for project management via various methods of installation.
uv python install 3.11
uv sync
Configuration
The server uses a simple YAML configuration file (config.yaml) to specify the
target android device
Customizing Configuration
- Create a new configuration file:
touch config.yaml
- Configure your device:
device:
name: "google-pixel-7-pro:5555" # Your device identifier from 'adb devices'
Usage
An MCP client is needed to use this server. The Claude Desktop app is an example of an MCP client. To use this server with Claude Desktop:
Locate your Claude Desktop configuration file:
- Windows:
%APPDATA%Claudeclaude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
Add the Android MCP server configuration to the
mcpServerssection:
{
"mcpServers": {
"android": {
"command": "path/to/uv",
"args": ["--directory", "path/to/android-mcp-server", "run", "server.py"]
}
}
}
Replace:
path/to/uvwith the actual path to youruvexecutablepath/to/android-mcp-serverwith the absolute path to where you cloned this repository
https://github.com/user-attachments/assets/c45bbc17-f698-43e7-85b4-f1b39b8326a8
Available Tools
The server exposes the following tools:
def get_packages() -> str:
"""
Get all installed packages on the device.
Returns:
str: A list of all installed packages on the device as a string
"""
def execute_adb_command(command: str) -> str:
"""
Executes an ADB command and returns the output.
Args:
command (str): The ADB command to execute
Returns:
str: The output of the ADB command
"""
def get_uilayout() -> str:
"""
Retrieves information about clickable elements in the current UI.
Returns a formatted string containing details about each clickable element,
including their text, content description, bounds, and center coordinates.
Returns:
str: A formatted list of clickable elements with their properties
"""
def get_screenshot() -> Image:
"""
Takes a screenshot of the device and returns it.
Returns:
Image: the screenshot
"""
def get_package_action_intents(package_name: str) -> list[str]:
"""
Get all non-data actions from Activity Resolver Table for a package
Args:
package_name (str): The name of the package to get actions for
Returns:
list[str]: A list of all non-data actions from the Activity Resolver
Table for the package
"""
Contributing
Contributions are welcome!
Acknowledgments
- Built with Model Context Protocol (MCP)
Android MCP Server
Project Details
- minhalvp/android-mcp-server
- Last Updated: 4/21/2025
Categories
Recomended MCP Servers
High-performance FastAPI server implementing Model Context Protocol (MCP) for seamless integration with Large Language Models (LLMs). Built with...
MCP server implementation for Snowflake integration
Official Vectorize MCP Server
Inkeep MCP Server
Execute a secure shell in Claude Desktop using the Model Context Protocol.
MCP integration for Google Calendar to manage events.
MCP tools for Roaming RAG
这个项目是一个基于Model Context Protocol (MCP)的AutoCAD集成服务器,它允许通过自然语言与AutoCAD进行交互。通过这个服务器,用户可以使用Claude等大型语言模型来创建、修改和分析AutoCAD图纸,同时还可以存储和查询CAD元素的相关数据。目前制作参考学习,仅实现端到端之间的通信,具体工具函数尚未晚上
MCP Server for the Slidespeak API. Create PowerPoint Presentations using MCP.





