Android MCP 服务器是一个基于 Model Context Protocol (MCP) 的服务器,借助 Android Debug Bridge (ADB) 实现对安卓设备的程序化控制。它提供了丰富的安卓设备管理功能,可通过 MCP 客户端(如 Claude 桌面)和代码编辑器(如 Cursor)进行访问。
在使用 Android MCP 服务器之前,你需要完成一系列的准备工作,包括安装必要的软件和配置服务器。
git clone https://github.com/minhalvp/android-mcp-server.git
cd android-mcp-server
uv python install 3.11
uv sync
服务器使用简单的 YAML 配置文件(config.yaml)指定目标安卓设备。
touch config.yaml
device:
name: "google-pixel-7-pro:5555" # 您的设备标识符,来自 'adb devices'
需要 MCP 客户端才能使用此服务器。Claude Desktop 应用是一个例子。要与 Claude Desktop 一起使用此服务器:
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 您克隆此仓库的实际绝对路径服务器公开了以下工具,以下是各工具的使用示例:
def get_packages() -> str:
"""
获取设备上所有已安装的软件包。
返回:
str:设备上所有已安装软件包的字符串列表
"""
def execute_adb_command(command: str) -> str:
"""
执行 ADB 命令并返回输出。
参数:
command (str):要执行的命令
返回:
str:命令的输出结果
"""
def get_window_bounds(package_name: str, activity_name: str) -> tuple[int, int, int, int]:
"""
获取指定应用程序窗口的边界坐标。
参数:
package_name (str):应用程序包名
activity_name (str):活动名称
返回:
tuple[int, int, int, int]:左上角 x,左上角 y,右下角 x,右下角 y 的元组
"""
def get_window_size(package_name: str, activity_name: str) -> tuple[int, int]:
"""
获取指定应用程序窗口的大小。
参数:
package_name (str):应用程序包名
activity_name (str):活动名称
返回:
tuple[int, int]:窗口宽度和高度的元组
"""
def get_display_metrics(package_name: str, activity_name: str) -> dict:
"""
获取指定应用程序窗口的显示指标。
参数:
package_name (str):应用程序包名
activity_name (str):活动名称
返回:
dict:包含密度、宽度和高度等信息的字典
"""
def get_views(package_name: str, activity_name: str) -> list:
"""
获取指定应用程序窗口中的所有视图。
参数:
package_name (str):应用程序包名
activity_name (str):活动名称
返回:
list:包含视图信息的列表
"""
如需贡献,请参考项目仓库 GitHub。
感谢您使用此项目!如遇问题或有任何建议,请随时提出。