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 サーバー

ADB(Android Debug Bridge)を介してAndroidデバイスをプログラム的に制御するMCP(Model Context Protocol)サーバー。このサーバーは、 Claudeデスクトップやコードエディター(例: Cursor )などのMCPクライアントからアクセスできるさまざまなAndroidデバイス管理機能を公開します。

特徴

  • 🔧 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 デバイスをプログラムで制御できるようにするサーバー。Claude Desktop などの MCP クライアントからアクセスできるスクリーンショットのキャプチャ、UI レイアウト分析、パッケージ管理などの機能を提供します。

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