一个通过ADB实现对Android设备程序化控制的服务器,提供截图捕获、UI布局分析和包管理等功能,这些功能可以被像Claude Desktop这样的MCP客户端使用。
os-automationdeveloper-tools
1.1k 查看 · 2026-07-07 更新
简介
一个通过ADB实现对Android设备程序化控制的服务器,提供截图捕获、UI布局分析和包管理等功能,这些功能可以被像Claude Desktop这样的MCP客户端使用。
简介
一个通过ADB实现对Android设备程序化控制的服务器,提供截图捕获、UI布局分析和包管理等功能,这些功能可以被像Claude Desktop这样的MCP客户端使用。
Android MCP 服务器
一个通过 ADB(Android 调试桥)提供对 Android 设备进行编程控制的 MCP(Model Context Protocol)服务器。此服务器暴露了多种 Android 设备管理功能,这些功能可以被如 Claude 桌面版 和代码编辑器(例如 Cursor)等 MCP 客户端访问。
特性
- 🔧 ADB 命令执行
- 📸 设备截图捕获
- 🎯 UI 布局分析
- 📱 设备包管理
先决条件
- Python 3.x
- 已安装并配置好的 ADB (Android Debug Bridge)
- Android 设备或模拟器(未测试)
安装
- 克隆仓库:
git clone https://github.com/minhalvp/android-mcp-server.git cd android-mcp-server
- 安装依赖项:
此项目使用
uv进行项目管理
uv sync
配置
服务器使用一个简单的 YAML 配置文件 (config.yaml) 来指定目标 Android 设备
自定义配置
- 创建一个新的配置文件:
touch config.yaml
- 配置您的设备:
device: name: "google-pixel-7-pro:5555" # Your device identifier from 'adb devices'
使用
需要一个 MCP 客户端来使用这个服务器。Claude Desktop 应用程序是一个 MCP 客户端的例子。要将此服务器与 Claude Desktop 一起使用:
-
找到您的 Claude Desktop 配置文件:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
-
在
mcpServers部分添加 Android MCP 服务器配置:
{ "mcpServers": { "android": { "command": "path/to/uv", "args": ["--directory", "path/to/android-mcp-server", "run", "server.py"] } } }
替换:
- 将
path/to/uv替换为实际的uv可执行文件路径 - 将
path/to/android-mcp-server替换为您克隆此仓库的绝对路径
https://github.com/user-attachments/assets/c45bbc17-f698-43e7-85b4-f1b39b8326a8
可用工具
服务器提供了以下工具:
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 """
贡献
欢迎贡献!
致谢
服务配置
[{'mcpServers': {'android': {'args': ['--directory', 'path/to/android-mcp-server', 'run', 'server.py'], 'command': 'path/to/uv'}}}]
来源
- 来源:github
- 链接:https://github.com/minhalvp/android-mcp-server