Skip to main content
Glama
minhalvp

Android MCP Server

Android MCP サーバー

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

特徴

  • 🔧 ADBコマンドの実行

  • 📸 デバイスのスクリーンショットキャプチャ

  • 🎯 UIレイアウト分析

  • 📱 デバイスパッケージ管理

Related MCP server: UIAutomator2 MCP Server

前提条件

  • 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 python install 3.11
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
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/minhalvp/android-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server