项目简介

这是一个使用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服务器,您需要具备以下环境:

  1. 已安装Go语言环境。
  2. 已安装Android调试桥 (ADB) 工具,并且ADB命令可在您的系统PATH中访问到。
  3. 已连接一台Android设备到您的计算机,并且已通过ADB授权。

安装步骤:

  1. 克隆此项目仓库到您的本地。
  2. 在项目根目录打开终端。
  3. 使用Go命令构建项目:'go build -o mcp-android-golang main.go'
  4. 运行生成的可执行文件:'./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请求来:

  1. 声明能力: 查询服务器支持哪些工具及其详细信息(名称、描述、参数)。
  2. 调用工具: 发送带有特定工具名称和参数的请求,服务器将执行相应的Android操作并将结果(文本、图像等)返回给客户端。

例如,一个LLM可能会先调用 'list-element' 工具获取当前屏幕元素列表,然后根据返回的信息,调用 'tap-with-coordinate' 或 'input-text' 工具与设备进行交互。

信息

分类

桌面与硬件