项目简介
这是一个使用Go语言开发的Model Context Protocol (MCP) 服务器实现,它集成了Android Debug Bridge (ADB) 命令,允许支持MCP协议的LLM客户端通过标准接口控制和获取Android设备的信息。
主要功能点
本项目提供以下核心功能作为LLM可调用的工具:
- 输入文本 ('input-text'): 向Android设备的当前焦点输入框发送文本,并可选地模拟按下回车键(提交)。
- 坐标点击 ('tap-with-coordinate'): 在Android设备的屏幕上指定X、Y坐标处执行点击操作。
- 列出元素 ('list-element'): 获取当前屏幕上可见UI元素的层级信息,包括元素的文本、类名、资源ID、内容描述及其屏幕坐标和边界。这有助于LLM理解屏幕布局。
- 截图 ('take-sceenshot'): 捕获Android设备的屏幕截图,并以Base64编码的JPEG格式返回(通常会进行缩放以减小大小),供LLM查看当前设备状态。
安装步骤
要运行此MCP服务器,您需要具备以下环境:
- 已安装Go语言环境。
- 已安装Android调试桥 (ADB) 工具,并且ADB命令可在您的系统PATH中访问到。
- 已连接一台Android设备到您的计算机,并且已通过ADB授权。
安装步骤:
- 克隆此项目仓库到您的本地。
- 在项目根目录打开终端。
- 使用Go命令构建项目:'go build -o mcp-android-golang main.go'
- 运行生成的可执行文件:'./mcp-android-golang'
服务器将默认以stdio模式启动。如需以SSE模式启动,可以使用命令:'./mcp-android-golang --sse'
服务器配置
对于需要连接此MCP服务器的MCP客户端,您需要在客户端配置中提供服务器的启动信息。这通常包括:
- 服务器名称 (name): 'mcp-android-adb'
- 启动命令 (command): 您编译生成的服务器可执行文件的路径(例如:'/path/to/your/mcp-android-golang_executable')
- 启动参数 (args): 一个可选的字符串数组。例如,如需使用SSE模式并在特定端口运行(本项目默认为8080),可指定参数 '["--sse"]'。默认情况下,服务器使用stdio模式,此时args通常为空数组 '[]'。
- 连接方式 (protocol): 客户端会根据args中的信息自动判断连接协议(stdio或sse)。
客户端会根据这些信息启动服务器进程并建立连接。
基本使用方法
一旦服务器成功运行,任何支持Model Context Protocol的LLM客户端都可以与之通信。客户端可以通过标准的MCP JSON-RPC请求来:
- 声明能力: 查询服务器支持哪些工具及其详细信息(名称、描述、参数)。
- 调用工具: 发送带有特定工具名称和参数的请求,服务器将执行相应的Android操作并将结果(文本、图像等)返回给客户端。
例如,一个LLM可能会先调用 'list-element' 工具获取当前屏幕元素列表,然后根据返回的信息,调用 'tap-with-coordinate' 或 'input-text' 工具与设备进行交互。
信息
分类
桌面与硬件