关于 Dev Tools For Android (dta) Mcp
DTA(Development Tools for Android)是一套让 AI 编码 Agent 直接访问 Android 设备的工具集,通过 MCP 提供界面结构、网络流量、Mock 与交互等能力。它面向 Android 开发者,可在 Android Studio、命令行或任意 MCP 客户端中使用。
主要功能
- 01读取界面层级与 Compose 信息
- 02自动记录 HTTP 与 WebSocket 流量
- 03创建 HTTP 与 WebSocket Mock 规则
- 04构建并启动带注入库的应用
- 05模拟点击、滑动与文本输入
适用场景
- 01调试 Android 应用的网络请求与响应
- 02排查界面布局与重组问题
- 03在无需修改后端的情况下模拟接口返回
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
http://localhost:12321/mcpclaude mcp add --transport http dta http://localhost:12321/mcp{"mcpServers":{"dta":{"type":"http","url":"http://localhost:12321/mcp"}}}在 Cursor 中打开{"servers":{"dta":{"type":"http","url":"http://localhost:12321/mcp"}}}在 VS Code 中打开{"mcpServers":{"dta":{"type":"http","url":"http://localhost:12321/mcp"}}}{"mcpServers":{"dta":{"serverUrl":"http://localhost:12321/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Android 开发工具(DTA)
一套工具包,可通过 Model Context Protocol 让 AI 助手直接访问 Android 设备。你的编码 Agent 可以查看屏幕、读取网络流量、检查布局树、模拟响应并与应用交互——可通过 Android Studio、终端或任何 MCP 客户端使用。
快速开始
选项 A:Android Studio 插件
或者:Settings → Plugins → Marketplace → 搜索 "DTA"
该插件内置守护进程,会自动将 sidekick 注入调试构建,并提供一个包含 4 个标签页(布局、网络、WebSocket、MCP)的检查器——无需 CLI 或手动设置。
选项 B:CLI
brew tap yamsergey/packages
brew install dta-cli
**要求:**Java 21+
自动注入(推荐)
无需更改项目。使用 CLI 或 MCP run_app 工具构建并启动应用,sidekick 会自动注入:
dta-cli run --project /path/to/your/android/project
此操作会使用初始化脚本运行 Gradle,将 dta-sidekick 添加为 debugImplementation 依赖,构建 APK,将其安装到设备上,并启动主 Activity。你的 AI 助手也可以通过 MCP run_app 工具完成相同操作。
手动(替代方案)
如果你更愿意直接将 sidekick 添加到构建文件中:
dependencies {
debugImplementation 'io.github.yamsergey:dta-sidekick:0.9.36'
}
Sidekick 通过 AndroidX Startup 自动初始化——除了添加依赖之外,无需修改代码。
连接你的 AI 助手
**使用 AS 插件:**打开 MCP 标签页,启用服务,从下拉菜单中选择你的 Agent——界面会显示可复制粘贴的准确配置代码片段。支持 Claude Code、Cursor、Android Studio Gemini、Claude Desktop、VS Code 等。
不使用插件(仅 CLI):
Claude Code
claude mcp add dta -- dta-cli mcp
Cursor
Claude Desktop
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"dta": {
"command": "dta-cli",
"args": ["mcp"]
}
}
}
你的 Agent 可以做什么?
屏幕分析
DTA 会返回真实的 UI 层级结构——视图类、边界、位置、布局参数、Compose 专属数据(可组合项名称、重组次数),以及来自 WebView 和 Chrome Custom Tabs 的 DOM 树。与仅提供语义无障碍树的 adb shell uiautomator dump 不同,你的 Agent 可以获取完整信息。
网络分析
Sidekick 从应用启动时起自动记录 HTTP 请求(OkHttp)、WebSocket 连接和 Chrome Custom Tab 流量。(目前尚未捕获 WebView 自身的网络请求——但会捕获其 DOM、Cookie 和存储。)无需点击“开始录制”,也不会遗漏请求。你的 Agent 可以随时查询完整历史记录。
模拟
根据捕获的数据或从头开始创建 HTTP 和 WebSocket 模拟规则。接入自定义适配器以进行程序化控制:
Sidekick.configure(
SidekickConfig.builder()
.httpMockAdapter { transaction, proposedResponse ->
proposedResponse.withBody("""{"message": "mocked"}""")
}
.build()
)
构建与启动
run_app 工具会构建一个自动注入 sidekick 的 APK,安装并启动主 Activity——只需一次 MCP 调用。无需手动配置 Gradle。如果该工具因环境沙箱限制而无法运行,则会返回精确的 shell 命令作为备用方案。
验证
Agent 可以点击、滑动、输入文本并按键,随后检查屏幕状态和网络流量以确认行为。无需离开对话,即可完成完整的检查、模拟、交互和验证循环。
Android Studio 插件
DTA Inspector 工具窗口提供四个标签页:
| 标签页 | 功能 |
|---|---|
| 布局 | UI 树 + 设备截图,支持悬停高亮、点击选择以及双向选择同步 |
| 网络 | HTTP 请求表,显示标头、正文和耗时;支持 Custom Tab + WebView 流量 |
| WebSocket | 连接列表 → 消息列表 → 消息详情 |
| MCP | 启用 HTTP 服务、选择端口、提供可复制到剪贴板的 Agent 专属配置片段 |
该插件通过 Gradle 初始化脚本自动将 dta-sidekick 注入调试构建,无需更改项目文件。
Inspector Web 界面
dta-cli inspector-web
打开 http://localhost:8080,即可使用相同功能进行可视化检查,包括布局树、网络、WebSocket 和模拟规则编辑器。
Web Inspector 支持开发者与 Agent 双向通信——通过点击选择元素,无需用文字描述。
MCP 传输方式
| 传输方式 | 命令 | 使用场景 |
|---|---|---|
| stdio | dta-cli mcp | Claude Desktop、Cursor,以及任何 stdio MCP 客户端 |
| HTTP | dta-cli mcp serve --http --port 12321 | AS Gemini、Claude Code HTTP,以及任何 Streamable HTTP 客户端 |
| 插件 | 在 MCP 标签页中启用 | 嵌入 AS 的 HTTP 服务,无需 CLI |
模块
| 模块 | 描述 |
|---|---|
| dta-plugin | Android Studio 插件(四标签页 Inspector + 嵌入式守护进程 + MCP 服务) |
| dta-cli | CLI 接口(mcp、inspector-web、run、inspect 命令) |
| dta-mcp | MCP 服务(stdio + HTTP 传输方式,工具定义) |
| dta-daemon | Javalin HTTP 守护进程(sidekick 连接、CDP 监视器、布局增强) |
| dta-sidekick | 应用内检查库(Android AAR,通过 AndroidX Startup 自动初始化) |
| tools-android | 核心 Gradle Tooling API 集成 |
| workspace-kotlin | Kotlin Language Server 的 workspace.json 转换器 |
CLI 参考
dta-cli --help
dta-cli <command> --help
许可证
Apache License 2.0——请参阅 LICENSE.txt
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
