adb-sms
adb-sms MCP
Чтение SMS-кодов подтверждения Android через ADB для выполнения веб-входа по SMS в Cursor Agent совместно с chrome-devtools.
Принцип проектирования: номера телефонов настраиваются пользователем в
devices.json; adb отвечает только за определение serial устройства и чтение OTP из SMS.
Принцип работы
USB 连接手机(adb devices → serial)
│
├─ devices.json[serial].phone_numbers → Web 填手机号
│
└─ adb 读短信 inbox → adb_wait_for_otp 拿验证码Related MCP server: Android MCP Server
Структура проекта
mcp-adb-sms/
├── server.py # MCP 服务入口
├── adb_client.py # ADB 设备 / 短信读取
├── sms_parser.py # 短信与 OTP 解析
├── test_local.py # 本地自检(不启动 MCP)
├── requirements.txt
├── devices.json.example # 手机号配置模板(提交到 git)
├── devices.json # 本地配置(git 忽略,需自行创建)
└── README.mdПредварительные требования
На Android-телефоне включена отладка по USB и выдан доступ компьютеру
adb devicesпоказываетdevice(неunauthorized)Python 3.10+ (рекомендуется 3.12)
Android platform-tools (включая
adb)
Установка
git clone https://github.com/zalazp/mcp-adb-sms.git
cd mcp-adb-sms
py -3.12 -m pip install -r requirements.txtНастройка номеров телефонов (обязательно)
Номера телефонов не считываются adb — запишите их самостоятельно в devices.json:
copy devices.json.example devices.jsonВыполните
adb devicesи запишите serial (например,10AD410LNF000PX)Используя serial в качестве ключа, укажите все номера телефонов этого устройства
{
"10AD410LNF000PX": {
"phone_numbers": [
"18317840243",
"19139582095"
]
}
}Настройка Cursor
Отредактируйте %USERPROFILE%\.cursor\mcp.json:
{
"mcpServers": {
"adb-sms": {
"command": "py",
"args": [
"-3.12",
"E:\\path\\to\\mcp-adb-sms\\server.py"
],
"env": {
"ADB_PATH": "D:\\RJAZ\\Sdk\\platform-tools\\adb.exe"
}
}
}
}Поле | Описание |
путь в | укажите абсолютный путь к |
| абсолютный путь к |
После сохранения перезапустите Cursor — в панели MCP adb-sms должен стать зелёным.
Локальная самопроверка
cd mcp-adb-sms
$env:ADB_PATH="D:\RJAZ\Sdk\platform-tools\adb.exe"
py -3.12 test_local.pyПример корректного вывода:
{
"adb_exists": true,
"devices": [{ "serial": "10AD410LNF000PX", "state": "device" }],
"sms_readable": true,
"sim_numbers": [
{ "number": "13800138000", "available": true },
{ "number": "13900139000", "available": true }
],
"device_profile": { "source": "devices.json" }
}Если в recommendations указано, что отсутствует конфигурация, создайте devices.json, как описано выше.
Инструменты MCP
Инструмент | Описание |
| диагностика adb, читаемости SMS и наличия конфигурации |
| список подключённых ADB-устройств |
| чтение номеров телефонов текущего serial из |
| чтение последних N SMS |
| опрос и ожидание нового OTP после отправки кода на веб-странице |
| попытка выдать shell разрешение на чтение SMS на Android 11+ |
| ограниченный adb shell (команды из белого списка) |
Типовой процесс Agent (вход по SMS)
1. adb_health_check()
2. adb_get_sim_numbers() ← 从 devices.json 取手机号
3. chrome-devtools: 打开登录页、填号、勾选协议
4. chrome-devtools: 滑块验证码(失败则人工完成)
5. chrome-devtools: 点击「发送验证码」
6. adb_wait_for_otp(timeout=90, sender_filter="Midea|美的")
7. chrome-devtools: 填入验证码并登录Если SMS не читаются
adb shell appops set com.android.shell READ_SMS allowИли вызовите в Agent adb_grant_sms_permission, а затем выполните adb_health_check.
Если это по-прежнему не помогает, MCP попытается прочитать SMS из уведомлений через dumpsys notification (с меньшей точностью).
Примечания по безопасности
Читает SMS только с локального устройства, подключённого по USB
Не сохраняет содержимое SMS на диск
devices.jsonсодержит номера телефонов и уже в.gitignore— не публикуйте его в открытых репозиторияхadb_shellразрешает только команды из белого списка: content / dumpsys / getprop и т.п.Только для собственных устройств или сценариев тестирования с разрешения владельца
Лицензия
MIT
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.
Related MCP Servers
- FlicenseAqualityCmaintenanceEnables AI agents to interact with Android devices through UI manipulation, screen capture, touch gestures, text input, and app management via ADB. Provides comprehensive mobile automation capabilities including element detection, navigation, and application control for Android device testing and interaction.95
- AlicenseBqualityDmaintenanceEnables control of Android devices via ADB, allowing screenshot capture, touch simulation, and swipe gestures through natural language commands.221376MIT
- FlicenseNot gradedqualityDmaintenanceEnables control of Android devices through ADB using natural language commands. Supports browser automation, SMS sending, device information retrieval, settings control, and common device actions like screenshots and button presses.3
- FlicenseAqualityDmaintenanceEnables forensic investigators to acquire data from Android devices via ADB, including device backup, artifact collection, and secure command execution.105
Related MCP Connectors
Remote MCP for Android CLI agent build gate, structured receipts, audit logs, and reviewer-ready evi
Phone, SMS & email for AI agents — one remote MCP endpoint, OAuth login, zero install.
Control plane for agent auth walls. Connector 0 handles SMS OTP with US test numbers.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/zalazp/mcp-adb-sms'
If you have feedback or need assistance with the MCP directory API, please join our Discord server