项目简介
airi-android 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型(LLM)提供与安卓设备进行交互的能力。通过集成 Android Debug Bridge (ADB),该服务器将一系列安卓操作和信息查询功能封装为可由LLM调用的“工具”。
主要功能点
该MCP服务器通过注册多种工具(Tools),使LLM能够:
- 控制设备输入: 执行屏幕点击、滑动、输入文本、发送按键事件等操作。
- 获取界面信息: 获取当前屏幕的UI层级结构(XML格式)。
- 查询设备状态: 查看CPU使用情况、电池电量和统计信息、内存信息、正在运行的进程和活动(Activities)等。
- 管理设备连接: 连接到指定的ADB设备或虚拟设备,或重置当前连接。
- 获取窗口信息: 查询屏幕的物理尺寸和显示密度。
这些功能作为标准化的MCP工具暴露给LLM客户端。
安装步骤
要运行 airi-android MCP服务器,您需要安装ADB工具以及Python及其依赖。如果您选择使用Docker,则只需安装Docker。
- 安装ADB: 从 Android Developer 网站 下载并安装 platform-tools,确保 'adb' 命令可用。
- 连接安卓设备: 通过USB连接您的安卓设备,或使用 'adb connect' 连接模拟器/远程设备。
- 安装 Python 和 uv: 安装 Python 3.8 或更高版本,并按照 uv 官方文档 安装 'uv' 包管理器。
- 克隆仓库并安装依赖:
git clone https://github.com/LemonNekoGH/airi-android.git cd airi-android uv sync - 启动服务器: 使用 'uv' 运行主程序。
服务器通常会监听标准输入/输出,并可以通过MCP客户端连接。uv run mcp dev src/main.py
或者,您可以使用 Docker 镜像运行服务器(推荐方式,更简便):
- 安装 Docker: 确保您的系统已安装并运行 Docker。
- 准备 MCP 客户端配置: 参考下面的服务器配置部分。
服务器配置
MCP服务器通常由MCP客户端负责启动和管理。为了让您的MCP客户端(如兼容MCP协议的LLM应用)能够使用 airi-android 服务器,您需要在客户端的配置中指定如何启动它。以下是一个配置示例的说明,通常存储在客户端的 'mcp.json' 文件中:
// 这是一个示例配置,用于说明如何在MCP客户端中配置 airi-android 服务器 { "mcpServers": { // 服务器的唯一标识符,由客户端定义 "airi-android": { // 启动服务器的命令 "command": "docker", // 传递给命令的参数列表 "args": [ "run", // Docker 命令:运行一个容器 "--rm", // Docker 参数:容器停止后自动移除 "-i", // Docker 参数:保持标准输入流开放,用于MCP通信 "-e", "ADB_HOST",// Docker 参数:设置环境变量 ADB_HOST // Docker 参数:环境变量 ADB_HOST 的值,host.docker.internal 指向宿主机的地址 "host.docker.internal", // 要运行的 Docker 镜像名称和版本,即 airi-android 服务器的 Docker 镜像 "ghcr.io/lemonnekogh/airi-android:v0.2.0" ], // 传递给容器的环境变量 "env": { // 设置 ADB_HOST 环境变量,用于 DeviceManager 连接 ADB 服务 "ADB_HOST": "host.docker.internal" } } } }
请注意,上述配置中的 'ADB_HOST' 需要根据您的实际ADB服务器地址进行调整。'host.docker.internal' 通常用于从Docker容器访问宿主机上的服务。
基本使用方法
配置完成后,兼容的LLM客户端将能够发现并连接到 airi-android MCP服务器。LLM可以根据用户的指令,通过与该服务器通信来调用其暴露的安卓相关工具。
例如,当用户对LLM说“帮我看看手机电量”时,LLM客户端可能会向 airi-android 服务器发送一个调用 'battery_level' 工具的请求。服务器执行相应的ADB命令获取电量信息,并将结果返回给LLM客户端,LLM再将结果以自然语言呈现给用户。类似的,用户也可以通过LLM发出指令来控制安卓设备,如“打开应用商店”或“模拟点击屏幕上的某个位置”。
开发者也可以利用MCP客户端库直接与 airi-android 服务器交互,调用其提供的各种工具,从而在应用程序中集成安卓设备控制和状态获取功能。
信息
分类
桌面与硬件