使用说明
adb mcp
用于编排Android的基于Go的MCP服务器脚手架 adb 命令。一开始
drop专注于配置、日志记录和生命周期布线,因此新的MCP工具和
接下来可以对资源进行分层。
入门指南
go build ./cmd/adb-mcp
./adb-mcp -config path/to/config.json
二进制文件作为长期进程运行(stdio MCP传输占位符)
通过以下方式终止 Ctrl+C/SIGTERM.
使用stdio MCP传输
服务器现在通过换行符分隔的JSON在 stdin/stdout:
- 发射
./adb-mcp(可选择管道连接到监控IDE/工具)。 - 发送一个
initialize指定协议版本的请求(JSON-RPC 2.0)2025-03-26(或2024-11-05对于老客户)。 - 收到后
initialize结果,发送tools/list和tools/call请求枚举和调用下面描述的内置adb帮助程序。
传输强制MCP握手,响应 ping,并返回
结构化的 content 每个工具调用的数组。所有请求必须
JSON-RPC对象由换行符分隔;客户端支持批处理
发送一个数组。
配置
配置是可选的JSON文件;未指定的值会恢复到正常的默认值。
{
"adb_path": "/usr/local/bin/adb",
"command_timeout": "45s",
"logging": {
"directory": "~/adb-mcp/logs",
"file_name": "adb-mcp.log",
"level": "debug",
"also_console": true
},
"mcp": {
"transport": "stdio"
}
}
关键默认值:
adb_path:adb(通过PATH解决)logging.directory:$HOME/.adb-mcp/logslogging.file_name:adb-mcp.loglogging.also_console:false(默认情况下,日志会保存到文件中)command_timeout:30smcp.transport:stdio
日志记录
服务器使用 zerolog 具有结构化JSON条目。默认情况下,日志为
写信给 $HOME/.adb-mcp/logs/adb-mcp.log 因此,长时间运行的命令可以刷新
丰富的输出,而不会淹没stdout。使用启用控制台镜像
"also_console": true 如果你需要互动反馈。
内置工具
MCP注册表预先填充了高价值的设备管理和UI
自动化助手。这些表面作为MCP工具(并且已经可以通过
Server.InvokeTool stdio传输正在建设中):
device.list--枚举adb devices -l输出带有可选状态过滤器。device.connect/device.disconnect--管理TCP/IP或Wi-Fi调试 端点(主机:端口)。device.reboot--重新引导到系统、引导加载程序、恢复或快速引导。ui.tap/ui.swipe--模拟触摸交互;滑动接受可选 持续时间(毫秒)。ui.text--通过键入任意文本adb shell input text,编码 空白以提高可靠性。ui.keyevent--触发键码(例如。,3为了KEYCODE_HOME).
所有长时间运行的命令都将其stdout/stderr流式传输到zerolog文件中,因此 Codex/Claude集成可以在不阻塞stdin/stdout的情况下获取工件。
