ADB MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ADB_APK_ROOT | No | Directory from which APK installation is allowed. Defaults to `ADB_PROJECT_ROOT`. | |
| ADB_EXECUTABLE | No | ADB executable path. Defaults to `adb`. | adb |
| ADB_TIMEOUT_MS | No | Default ADB command timeout. Defaults to `30000`. | 30000 |
| OBS_EXECUTABLE | No | OBS application name, `.app` path, or executable path. Defaults to `OBS` on macOS and `obs` elsewhere. | OBS |
| VEGA_EXECUTABLE | No | Vega CLI executable path used for Vega/Kepler backends. Defaults to `vega`. | vega |
| ADB_ALLOWED_AVDS | No | Optional comma-separated allowlist of AVD names. | |
| ADB_BUILD_CONFIG | No | Path to build profile JSON. Defaults to `adb-mcp.config.json` in the server working directory when present. | adb-mcp.config.json |
| ADB_PROJECT_ROOT | No | Project root used for default config and APK root. Defaults to the server working directory. | |
| OBS_WEBSOCKET_URL | No | OBS WebSocket endpoint. Defaults to `ws://127.0.0.1:4455`. | ws://127.0.0.1:4455 |
| OBS_EMULATOR_SCENE | No | Configured OBS scene for emulator recording. | |
| OBS_EMULATOR_SOURCE | No | Configured OBS source for emulator recording. | |
| ADB_MAX_OUTPUT_BYTES | No | Default ADB output limit. Defaults to `5242880`. | 5242880 |
| OBS_WEBSOCKET_PASSWORD | No | OBS WebSocket authentication password. | |
| ADB_SCREENSHOT_MAX_BYTES | No | Maximum raw PNG size accepted from `adb screencap`. Defaults to `33554432`. | 33554432 |
| ADB_SCREENSHOT_MAX_WIDTH | No | Maximum delivered screenshot width. Defaults to `1280`. | 1280 |
| ADB_SCREENSHOT_MAX_HEIGHT | No | Maximum delivered screenshot height. Defaults to `720`. | 720 |
| OBS_PHYSICAL_DEVICE_SCENE | No | Configured OBS scene for physical-device recording. | |
| OBS_PHYSICAL_DEVICE_SOURCE | No | Configured OBS source for physical-device recording. | |
| ANDROID_EMULATOR_EXECUTABLE | No | Android Emulator executable. Defaults to `$ANDROID_SDK_ROOT/emulator/emulator`, `$ANDROID_HOME/emulator/emulator`, or `emulator` from `PATH`. | |
| ADB_SCREENSHOT_OUTPUT_MAX_BYTES | No | Maximum optimized PNG size. Defaults to `1048576`. | 1048576 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_devicesA | List Android emulators, USB devices, and network-connected devices visible to ADB, including authorization state. |
| list_avdsA | List configured Android Virtual Devices and report which ones are currently running. |
| start_emulatorA | Start an Android Virtual Device with quick or cold boot, wait for Android to finish booting, and select it as active. |
| connect_deviceA | Connect ADB to a physical device or emulator already listening on TCP using host:port. |
| disconnect_deviceA | Disconnect an ADB-over-TCP target. This does not affect USB devices. |
| select_deviceA | Select an emulator or physical device as active for this MCP session. |
| clear_active_deviceA | Clear the active device for this MCP session. |
| set_project_rootA | Set the user-confirmed repository root for this MCP session. install_apk will only accept APKs contained within this directory. |
| get_device_infoA | Read model, manufacturer, Android version, SDK, screen size/density, and whether the target reports itself as an emulator. |
| screenshotA | Capture the current screen, resize and compress it as an analysis-friendly PNG, and return it directly to the agent. |
| get_current_activityA | Read the currently resumed Android activity/window for diagnosis and assertions. |
| dump_uiA | Return the current Android UI Automator hierarchy as XML when supported by the device. |
| wait_for_ui_nodeA | Poll Android UI Automator until a node matching exact text, resource_id, content_desc, and/or focused state exists. |
| assert_ui_nodeA | Assert that the current Android UI Automator hierarchy does or does not contain a matching node. |
| press_keyB | Send a safe, named Android key event, including D-pad and Fire TV remote navigation keys. |
| press_key_sequenceA | Send a timed sequence of safe, named Android key events. Use this for gestures requiring precise intervals, such as BACK, wait 1s, BACK. |
| tapB | Tap an absolute screen coordinate. |
| swipeB | Swipe between two absolute screen coordinates with a bounded duration. |
| type_textA | Type restricted plain text into the focused field. Shell metacharacters are rejected for safety. |
| install_apkA | Install an APK contained within the active session project root, or the configured ADB_APK_ROOT when no session root is set. |
| uninstall_appB | Uninstall an Android application by package name. |
| launch_appA | Launch an app by package name, optionally using a specific Android activity component. |
| stop_appA | Force-stop an Android application by package name. |
| get_logcatA | Read recent logcat lines, optionally retaining only lines containing a case-insensitive text fragment. |
| get_obs_statusA | Report whether OBS WebSocket is reachable and whether OBS is currently recording. |
| open_obsA | Open OBS if necessary and optionally select the configured emulator or physical-device scene. |
| start_obs_recordingA | Select and verify the configured OBS source for an emulator or physical device, then start recording. |
| stop_obs_recordingA | Stop and finalize the current OBS recording, returning the saved video path. |
| list_build_profilesA | List the server-side build profiles that this MCP instance is allowed to execute, such as debug or release. |
| run_buildA | Run a configured server-side build profile. Optionally install the resulting APK when the profile declares artifactPath. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| ADB Device Catalog | Live catalog of Android emulators and physical devices visible to ADB. |
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/francbonet/Adb-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server