← 开源
minhalvp

android-mcp-server

An MCP server that provides control over Android devices via adb

AI EngineeringGive agent toolsPython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
811
Star
95
Fork
+2
本周
3
贡献者
创建于 2025-02-28 · 更新于 2026-10-15 · 今日第 13583 名
主要开发者
minhalvpedganchess99

minhalvp/android-mcp-server 排名第 13,583,有 811 个星标。

同类别比较

minhalvp/android-mcp-server 排名第 13,583,此处有 8 个同类条目;VRCWizard/TTS-Voice-Wizard 排名第 13,588。

同类别比较
名称排名指标
CHATS-lab/verbalized-sampling13,546
语言:
Python
星标数:
813
分叉数:
84
简介:
Verbalized Sampling, a training-free prompting strategy to mitigate mode collapse in LLMs by requesting responses with probabilities. Achieves 2-3x diversity improvement while maintaining quality. Model-agnostic framework with CLI/API for creative writing, synthetic data generation, and dialogue simulation.
HenryXiaoYang/XYBotV213,547
语言:
Python
星标数:
813
分叉数:
211
简介:
🤖 功能丰富的微信机器人框架 | AI对话、对接Dify、积分系统、游戏互动、每日新闻、天气查询 | 非Hook非Web实现 | 支持 Windows✅ Linux✅ MacOS✅ | 全新架构解决XYBot第一代痛点!
Snaplii-Inc/agent-to-merchant-payments13,552
语言:
Python
星标数:
813
分叉数:
94
context-space/context-space13,570
语言:
Go
星标数:
812
分叉数:
83
简介:
Ultimate Context Engineering Infrastructure, starting from MCPs and Integrations
VRCWizard/TTS-Voice-Wizard13,588
语言:
C#
星标数:
810
分叉数:
82
简介:
Speech to Text to Speech. Song now playing. Sends text as OSC messages to VRChat to display on avatar. (STTTS) (Speech to TTS) (VRC STT System) (VTuber TTS)
gszhangwei/open-spdd13,590
语言:
Go
星标数:
810
分叉数:
72
简介:
A SPDD AI Coding Assistant Command Template Manager
oliveirabruno01/babyagi-asi13,593
语言:
Python
星标数:
810
分叉数:
93
简介:
BabyAGI: an Autonomous and Self-Improving agent, or BASI
rvion/CushyStudio13,603
语言:
TypeScript
星标数:
809
分叉数:
56
简介:
🛋 The AI and Generative Art platform for everyone
关键参数与规格
关键参数与规格
参数值
语言Python
类别AI Engineering
子类别Give agent tools
关键词Automation, Client integration, MCP
星标数811
分叉数95
贡献者3
创建日期2025-02-28
更新日期2026-10-15
1 天星标数0
7 天星标数2
排名13,583
上次排名18,912
排名变化5,329
7 天星标排名8,471
上次 7 天星标排名10,688
7 天星标排名变化2,217
总星标排名13,197
上次总星标排名13,181
总星标排名变化-16
国家UK
README 摘录

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. 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 1. Install dependencies: This project

uses uv for project management via various methods of installation. Configuration The server supports flexible device configuration with multiple usage scenarios. Automatic Selection (Recommended for single device)** No configuration file needed Automatically connects to the only connected device Perfect for development with a single test device **2. Manual Device Selection** Use when you have multiple devices connected Specify exact device in configuration file Configuration File (Optional) The configuration file ( ) is **optional**. If not present, the server will automatically select the

device if only one is connected. For Automatic Selection Simply ensure only one device is connected and run the server - no configuration needed! Edit and specify your device: **For auto-selection**, you can use any of these methods: Finding Your Device Serial To find your device identifier, run: Example output: Use the first column value (e. 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: 1. Locate your Claude Desktop configuration file: Windows: macOS: 2. Add the Android MCP server configuration to the section: Replace: with the actual path to your executable with the absolute path to where you cloned this repository Available Tools The server exposes the following tools: Contributing Contributions are welcome! Acknowledgments Built with Model Context Protocol (MCP)

常见问题

记录了多少星标和分叉?

minhalvp/android-mcp-server 有 811 个星标和 95 个分叉。

仓库排名是多少?

minhalvp/android-mcp-server 排名第 13,583。

记录的语言和类别是什么?

minhalvp/android-mcp-server 有 811 个星标,语言为 Python,类别为 AI Engineering。

哪个仓库排名最接近?

minhalvp/android-mcp-server 与 VRCWizard/TTS-Voice-Wizard 比较,后者排名第 13,588,有 810 个星标。

README

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

  1. Clone the repository:
git clone https://github.com/minhalvp/android-mcp-server.git
cd android-mcp-server
  1. Install dependencies: This project uses uv for project management via various methods of installation.
uv python install 3.11
uv sync

Configuration

The server supports flexible device configuration with multiple usage scenarios.

Device Selection Modes

1. Automatic Selection (Recommended for single device)

  • No configuration file needed
  • Automatically connects to the only connected device
  • Perfect for development with a single test device

2. Manual Device Selection

  • Use when you have multiple devices connected
  • Specify exact device in configuration file

Configuration File (Optional)

The configuration file (config.yaml) is optional. If not present, the server will automatically select the device if only one is connected.

For Automatic Selection

Simply ensure only one device is connected and run the server - no configuration needed!

For Manual Selection

  1. Create a configuration file:
cp config.yaml.example config.yaml
  1. Edit config.yaml and specify your device:
device:
  name: "your-device-serial-here" # Device identifier from 'adb devices'

For auto-selection, you can use any of these methods:

device:
  name: null              # Explicit null (recommended)
  # name: ""              # Empty string  
  # name:                 # Or leave empty/comment out

Finding Your Device Serial

To find your device identifier, run:

adb devices

Example output:

List of devices attached
13b22d7f        device
emulator-5554   device

Use the first column value (e.g., 13b22d7f or emulator-5554) as the device name.

Usage Scenarios

Scenario Configuration Required Behavior
Single device connected None ✅ Auto-connects to the device
Multiple devices, want specific one config.yaml with device.name ✅ Connects to specified device
Multiple devices, no config None ❌ Shows error with available devices
No devices connected N/A ❌ Shows "no devices" error

Note: If you have multiple devices connected and don't specify which one to use, the server will show an error message listing all available 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:

  1. Locate your Claude Desktop configuration file:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. Add the Android MCP server configuration to the mcpServers section:

{
  "mcpServers": {
    "android": {
      "command": "path/to/uv",
      "args": ["--directory", "path/to/android-mcp-server", "run", "server.py"]
    }
  }
}

Replace:

  • path/to/uv with the actual path to your uv executable
  • path/to/android-mcp-server with the absolute path to where you cloned this repository

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

排名相邻
同类项目