Android MCP Server

by minhalvp
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Provides programmatic control over Android devices through ADB, enabling screenshot capture, UI layout analysis, package management, and execution of arbitrary ADB commands.

  • Repository hosting for the android-mcp-server, allowing users to clone and use the server implementation.

Android MCP 服务器

MCP(模型上下文协议)服务器,通过 ADB(Android 调试桥)提供对 Android 设备的编程控制。该服务器提供各种 Android 设备管理功能,可供 MCP 客户端(例如Claude 桌面和代码编辑器,例如Cursor )访问。

特征

  • 🔧 ADB 命令执行
  • 📸 设备截图
  • 🎯 UI 布局分析
  • 📱 设备包管理

先决条件

  • Python 3.x
  • ADB(Android Debug Bridge)安装和配置
  • Android 设备或模拟器(未测试)

安装

  1. 克隆存储库:
git clone https://github.com/minhalvp/android-mcp-server.git cd android-mcp-server
  1. 安装依赖项:本项目使用uv进行项目管理
uv sync

配置

服务器使用简单的 YAML 配置文件( config.yaml )来指定目标 Android 设备

自定义配置

  1. 创建一个新的配置文件:
touch config.yaml
  1. 配置您的设备:
device: name: "google-pixel-7-pro:5555" # Your device identifier from 'adb devices'

用法

使用此服务器需要 MCP 客户端。Claude Desktop 应用就是一个 MCP 客户端的示例。要将此服务器与 Claude Desktop 配合使用,请执行以下操作:

  1. 找到您的 Claude Desktop 配置文件:
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. 将 Android MCP 服务器配置添加到mcpServers部分:
{ "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 """

贡献

欢迎投稿!

致谢

-
security - not tested
F
license - not found
-
quality - not tested

该服务器可通过 ADB 对 Android 设备进行编程控制,提供屏幕截图、UI 布局分析和包管理等功能,可供 Claude Desktop 等 MCP 客户端访问。

  1. Features
    1. Prerequisites
      1. Installation
        1. Configuration
          1. Customizing Configuration
        2. Usage
          1. Available Tools
        3. Contributing
          1. Acknowledgments
            ID: noi5kgoh33