android-adb-mcp
Provides integration with Android devices via ADB, enabling device management, file operations, app lifecycle management, shell execution, screen capture and recording, log analysis, and performance monitoring.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@android-adb-mcp列出所有连接的Android设备"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ADB MCP Server
🚀 Production-Ready MCP Server for Android Device Management
一个功能完整、生产就绪的 Model Context Protocol (MCP) 服务器,将 Android Debug Bridge (ADB) 功能封装为现代化的 AI 助手工具。提供 35 个专业工具,覆盖 Android 设备管理的所有核心场景。
⚡ 快速体验
直接运行(无需安装)
npx android-adb-mcpClaude Desktop 配置
将以下配置添加到 Claude Desktop 的 claude_desktop_config.json 文件:
{
"mcpServers": {
"android-devices": {
"command": "npx",
"args": ["android-adb-mcp"],
"env": {
"ADB_PATH": "/usr/local/bin/adb"
}
}
}
}重启 Claude Desktop,即可开始使用 AI 助手管理您的 Android 设备!
💡 使用示例
配置完成后,您可以在 Claude Desktop 中使用自然语言管理 Android 设备:
用户: 列出所有连接的 Android 设备
助手: 我来为您检查连接的设备...
[调用 list_devices 工具]
找到 1 个设备:4745ca3b (Redmi Note 7 Pro)
用户: 获取设备的详细信息
助手: 正在获取设备详细信息...
[调用 get_device_info 工具]
设备信息:
- 型号:Redmi Note 7 Pro
- Android 版本:10
- 内存:6GB
- 存储:128GB
用户: 截取一张屏幕截图
助手: 正在为您截取屏幕...
[调用 capture_screenshot 工具]
✅ 截图已保存到:/tmp/screenshot_20241106.png
用户: 安装一个 APK 文件
助手: 请提供 APK 文件路径,我来帮您安装...
[调用 install_app 工具]Related MCP server: ADB MCP Server
✨ 核心特性
🎯 全面的设备管理
设备发现: 自动识别并列出所有连接的 Android 设备
设备信息: 获取详细的设备规格、系统版本、硬件信息
连接管理: 支持USB和无线TCP/IP连接
状态监控: 实时检查设备连接状态和健康度
🛡️ 安全的Shell执行
命令白名单: 严格的安全命令验证机制
沙箱执行: 防止恶意命令执行的安全沙箱
权限控制: 基于命令类型的细粒度权限管理
审计日志: 完整的命令执行审计追踪
📁 强大的文件操作
批量传输: 支持大文件的分块传输
目录管理: 完整的目录创建、删除、浏览功能
文件信息: 详细的文件属性和元数据获取
安全验证: 路径遍历攻击防护
📱 完整的应用管理
应用生命周期: 安装、卸载、启动、停止、清除数据
应用信息: 详细的包信息、权限、版本信息
批量操作: 支持多应用的批量管理操作
系统应用: 区分系统和用户应用的管理策略
🎬 专业的媒体操作
屏幕捕获: 高质量屏幕截图和录制
显示管理: 屏幕密度、分辨率动态调整
媒体格式: 支持多种截图和视频格式
实时预览: 屏幕内容的实时获取
📊 高级日志分析
多源日志: logcat、崩溃日志、ANR日志、内核日志
智能过滤: 基于标签、级别、时间的智能过滤
流式处理: 实时日志流式传输
诊断分析: 自动化的错误诊断和问题定位
⚡ 高级功能
批量执行: 多命令序列化执行,支持条件分支
性能监控: CPU、内存、磁盘、网络、电池实时监控
无线管理: 无线ADB连接的自动发现和管理
流式传输: 大文件的分块流式传输
🚀 快速开始
前置要求
Node.js: >= 18.0.0
Android SDK: 配置完整的 ADB 工具
设备权限: 启用 USB 调试的 Android 设备
📦 安装方式
方式一:直接使用 npx(推荐)
# 直接运行(无需安装)
npx android-adb-mcp
# 或者指定 ADB 路径
ADB_PATH=/path/to/adb npx android-adb-mcp方式二:全局安装
# 全局安装
npm install -g android-adb-mcp
# 启动服务
android-adb-mcp
# 或者使用 npx
npx android-adb-mcp方式三:项目本地安装
# 本地安装
npm install android-adb-mcp
# 启动服务
npx android-adb-mcp方式四:从源码构建
# 克隆项目
git clone https://github.com/qinxiandiqi/android-adb-mcp.git
cd adb-mcp
# 安装依赖
pnpm install
# 构建项目
pnpm build
# 启动服务器
pnpm start🐳 Docker 部署
# 使用预构建镜像
docker run -d --name adb-mcp --privileged -v /dev/bus/usb:/dev/bus/usb qinxiandiqi/android-adb-mcp
# 或者从源码构建
docker build -t adb-mcp .
docker run -d --name adb-mcp --privileged -v /dev/bus/usb:/dev/bus/usb adb-mcp📋 工具清单
🔧 设备工具 (6个)
工具名称 | 功能描述 | 参数 |
| 列出所有连接的设备 | - |
| 获取设备详细信息 |
|
| 连接TCP/IP设备 |
|
| 断开设备连接 |
|
| 等待设备连接 |
|
| 检查设备状态 |
|
🐚 Shell工具 (5个)
工具名称 | 功能描述 | 参数 |
| 执行安全shell命令 |
|
| 获取系统属性 |
|
| 列出运行进程 |
|
| 获取内存信息 |
|
| 获取磁盘使用情况 |
|
📁 文件工具 (6个)
工具名称 | 功能描述 | 参数 |
| 列出文件和目录 |
|
| 推送文件到设备 |
|
| 从设备拉取文件 |
|
| 创建目录 |
|
| 删除文件或目录 |
|
| 获取文件信息 |
|
📱 应用工具 (7个)
工具名称 | 功能描述 | 参数 |
| 列出已安装应用 |
|
| 获取应用信息 |
|
| 安装APK |
|
| 卸载应用 |
|
| 启动应用 |
|
| 停止应用 |
|
| 清除应用数据 |
|
📸 媒体工具 (6个)
工具名称 | 功能描述 | 参数 |
| 截取屏幕截图 |
|
| 录制屏幕 |
|
| 获取屏幕信息 |
|
| 设置屏幕密度 |
|
| 重置屏幕密度 |
|
| 获取显示模式 |
|
📋 日志工具 (6个)
工具名称 | 功能描述 | 参数 |
| 获取logcat日志 |
|
| 清除日志缓冲区 |
|
| 获取崩溃日志 |
|
| 获取ANR日志 |
|
| 获取内核日志 |
|
| 流式获取日志 |
|
🚀 高级工具 (5个)
工具名称 | 功能描述 | 参数 |
| 批量执行命令 |
|
| 获取性能指标 |
|
| 管理无线连接 |
|
| 流式传输文件 |
|
| 分析存储使用 |
|
⚙️ 配置
环境变量
变量名 | 描述 | 默认值 |
| ADB可执行文件路径 |
|
| ADB服务器主机 |
|
| ADB服务器端口 |
|
| 命令执行超时(秒) |
|
| 日志级别 |
|
⚙️ MCP 客户端配置
方式一:使用 npx(推荐)
{
"mcpServers": {
"android-devices": {
"command": "npx",
"args": ["android-adb-mcp"],
"env": {
"ADB_PATH": "/path/to/platform-tools/adb",
"LOG_LEVEL": "debug"
}
}
}
}方式二:全局安装
{
"mcpServers": {
"android-devices": {
"command": "android-adb-mcp",
"args": [],
"env": {
"ADB_PATH": "/path/to/platform-tools/adb",
"LOG_LEVEL": "debug"
}
}
}
}方式三:本地安装
{
"mcpServers": {
"android-devices": {
"command": "node",
"args": ["./node_modules/android-adb-mcp/dist/src/index.js"],
"env": {
"ADB_PATH": "/path/to/platform-tools/adb",
"LOG_LEVEL": "debug"
}
}
}
}方式四:从源码运行
{
"mcpServers": {
"android-devices": {
"command": "node",
"args": ["/absolute/path/to/adb-mcp/dist/src/index.js"],
"env": {
"ADB_PATH": "/path/to/platform-tools/adb",
"LOG_LEVEL": "debug"
}
}
}
}🖥️ Claude Desktop 配置示例
快速配置(npx 方式)
{
"mcpServers": {
"android-devices": {
"command": "npx",
"args": ["android-adb-mcp"],
"env": {
"ADB_PATH": "/usr/local/bin/adb"
}
}
}
}完整配置示例
{
"mcpServers": {
"android-devices": {
"command": "npx",
"args": ["android-adb-mcp"],
"env": {
"ADB_PATH": "/usr/local/bin/adb",
"ADB_HOST": "localhost",
"ADB_PORT": "5037",
"ADB_TIMEOUT": "30",
"LOG_LEVEL": "info"
}
}
}
}🛡️ 安全特性
多层安全防护
命令验证: 基于白名单的安全命令验证
路径安全: 防止路径遍历和目录逃逸攻击
输入验证: 使用Zod进行严格的类型和数据验证
权限控制: 细粒度的操作权限管理
审计日志: 完整的操作审计和安全日志
安全命令列表
允许执行的Shell命令类别:
系统信息获取 (
getprop,dumpsys,wm,am)文件操作 (
ls,cat,stat,mkdir,rm)进程管理 (
ps,top)网络诊断 (
ping,ip,netstat)日志管理 (
logcat,dmesg)
🏗️ 项目架构
技术栈
运行时: Node.js 18+
语言: TypeScript 5.9+
协议: Model Context Protocol (MCP) 2024-11-05
验证: Zod 4.x
测试: Jest 30+
构建: TypeScript + tsc-alias
代码质量: ESLint 9.x + TypeScript ESLint
架构设计
┌─────────────────────────────────────┐
│ MCP Protocol Layer │
│ ┌─────────────┐ ┌───────────────┐ │
│ │ JSON-RPC │ │ Tool Registry │ │
│ │ Handler │ │ & Discovery │ │
│ └─────────────┘ └───────────────┘ │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ Business Layer │
│ ┌─────────────┐ ┌───────────────┐ │
│ │ Tool │ │ Input │ │
│ │ Modules │ │ Validation │ │
│ │ (35 tools) │ │ (Zod) │ │
│ └─────────────┘ └───────────────┘ │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ Infrastructure Layer │
│ ┌─────────────┐ ┌───────────────┐ │
│ │ ADB │ │ Utility │ │
│ │ Client │ │ Functions │ │
│ └─────────────┘ └───────────────┘ │
└─────────────────────────────────────┘目录结构
adb-mcp/
├── src/ # 源代码
│ ├── adb/ # ADB客户端实现
│ │ ├── client.ts # 主要ADB客户端类
│ │ └── types.ts # 类型定义
│ ├── tools/ # MCP工具模块 (35个工具)
│ │ ├── device-tools.ts # 设备管理 (6个)
│ │ ├── shell-tools.ts # Shell命令 (5个)
│ │ ├── file-tools.ts # 文件操作 (6个)
│ │ ├── app-tools.ts # 应用管理 (7个)
│ │ ├── media-tools.ts # 媒体操作 (6个)
│ │ ├── log-tools.ts # 日志访问 (6个)
│ │ └── advanced-tools.ts # 高级功能 (5个)
│ ├── utils/ # 工具函数
│ │ └── validation.ts # 输入验证和安全
│ └── index.ts # MCP服务器入口
├── tests/ # 测试文件
│ ├── unit/ # 单元测试 (35+ 测试文件)
│ ├── integration/ # 集成测试
│ ├── mocks/ # 测试模拟
│ └── benchmark/ # 性能基准测试
├── .github/workflows/ # CI/CD 配置
├── docs/ # 文档
├── scripts/ # 构建脚本
└── dist/ # 构建输出🧪 测试
运行测试
# 运行所有测试
pnpm test
# 运行测试并生成覆盖率报告
pnpm test:coverage
# 监听模式运行测试
pnpm test:watch
# 运行特定测试
pnpm test device-tools测试覆盖
单元测试: 100% 工具模块覆盖
集成测试: 完整的ADB客户端测试
安全测试: 输入验证和安全检查测试
性能测试: 基准测试和性能回归测试
测试统计
----------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files | 100 | 100 | 100 | 100 |
src | 100 | 100 | 100 | 100 |
adb | 100 | 100 | 100 | 100 |
tools | 100 | 100 | 100 | 100 |
utils | 100 | 100 | 100 | 100 |
----------|---------|----------|---------|---------|-------------------🚀 部署
生产部署
# 构建生产版本
pnpm build
# 启动生产服务器
NODE_ENV=production node dist/src/index.jsPM2 部署
# 安装 PM2
npm install -g pm2
# 启动服务
pm2 start ecosystem.config.js
# 监控状态
pm2 monitDocker 部署
FROM node:18-alpine
# 安装 ADB
RUN apk add --no-cache android-tools
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist ./dist
EXPOSE 3000
CMD ["node", "dist/src/index.js"]📊 性能
基准测试结果
操作类型 | 平均响应时间 | QPS | 内存占用 |
设备列表 | 45ms | 22/s | 12MB |
Shell命令 | 120ms | 8/s | 15MB |
文件传输 | 250ms | 4/s | 20MB |
截图操作 | 800ms | 1.2/s | 25MB |
性能优化
连接池: ADB连接复用和池化
缓存机制: 设备信息和系统属性缓存
并发控制: 合理的并发限制和队列管理
内存管理: 及时释放大文件和临时数据
🔧 开发
开发环境设置
# 克隆项目
git clone https://github.com/qinxiandiqi/android-adb-mcp.git
cd adb-mcp
# 安装依赖
pnpm install
# 开发模式 (热重载)
pnpm dev
# 类型检查
pnpm type-check
# 代码检查
pnpm lint
# 格式化代码
pnpm format添加新工具
创建工具文件:
// src/tools/my-tool.ts
import { z } from 'zod';
import { AdbClient } from '../adb/client.js';
export const myTool = {
name: 'my_tool',
description: 'Tool description',
inputSchema: {
type: 'object',
properties: {
param1: { type: 'string', description: 'Parameter description' }
},
required: ['param1']
},
handler: async (args) => {
const client = new AdbClient();
// 实现工具逻辑
return { success: true, data: result };
}
};注册工具:
// src/index.ts
import { myTool } from './tools/my-tool.js';
// 在工具注册中添加
const allTools = {
...deviceTools,
...myTool, // 添加新工具
};添加测试:
// tests/unit/tools/my-tool.test.ts
import { myTool } from '../../../src/tools/my-tool.js';
describe('myTool', () => {
it('should execute successfully', async () => {
const result = await myTool.handler({ param1: 'test' });
expect(result.success).toBe(true);
});
});贡献指南
Fork 项目
创建功能分支:
git checkout -b feature/amazing-feature提交更改:
git commit -m 'Add amazing feature'推送分支:
git push origin feature/amazing-feature创建 Pull Request
代码规范
使用 TypeScript 严格模式
遵循 ESLint 和 Prettier 配置
编写完整的单元测试
添加 JSDoc 注释
遵循语义化版本控制
🔍 故障排除
常见问题
ADB 连接问题
# 检查 ADB 服务状态
adb devices
# 重启 ADB 服务
adb kill-server
adb start-server
# 检查设备授权
adb devices -l权限问题
# Linux/Mac: 检查 USB 权限
sudo usermod -aG plugdev $USER
# 重新加载 udev 规则
sudo udevadm control --reload-rules网络连接问题
# 检查防火墙设置
sudo ufw status
# 测试端口连通性
telnet localhost 5037调试模式
# 启用详细日志
DEBUG=adb-mcp:* pnpm start
# 启用 ADB 调试
ADB_TRACE=1 pnpm start
# 启用网络调试
NODE_DEBUG=net pnpm start📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🤝 贡献者
感谢所有为这个项目做出贡献的开发者!
🙏 致谢
Model Context Protocol - 提供了强大的AI工具集成框架
Android Debug Bridge - 核心的设备管理工具
Zod - 优秀的数据验证库
TypeScript - 类型安全的JavaScript超集
📞 支持
Made with ❤️ by the ADB MCP Team
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/qinxiandiqi/android-adb-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server