ADB Screenshot MCP Server
# ADB Screenshot MCP Server
A Model Context Protocol (MCP) server that provides ADB tools for connecting to Android devices over WiFi and taking screenshots.
## Features
- **WiFi Connection**: Connect to Android devices over WiFi using ADB
- **Screenshot Capture**: Take screenshots of connected devices
- **Device Management**: List devices, get device info, and disconnect
- **Remote Access**: Perfect for accessing devices on the same network
## Prerequisites
- ADB (Android Debug Bridge) installed and in your PATH
- Android device with USB debugging enabled
- For WiFi connection: Device and computer on the same network
## Installation
```bash
npm install
npm run build
```
## Usage
### Enable WiFi ADB on your Android device:
1. Connect device via USB first
2. Run: `adb tcpip 5555`
3. Disconnect USB and find device IP address
4. Use the `adb_connect_wifi` tool with the IP address
### Available Tools
1. **adb_connect_wifi**: Connect to device over WiFi
- `ip_address`: Device IP address (required)
- `port`: Port number (default: 5555)
2. **adb_screenshot**: Take a screenshot
- `output_path`: Save location (default: screenshot.png)
- `device_id`: Specific device (optional)
3. **adb_list_devices**: List all connected devices
4. **adb_disconnect**: Disconnect from WiFi device
- `ip_address`: Device IP address (required)
- `port`: Port number (default: 5555)
5. **adb_device_info**: Get device information
- `device_id`: Specific device (optional)
## Running the Server
```bash
npm start
```
## Example Workflow
1. Enable WiFi ADB: `adb tcpip 5555`
2. Connect: Use `adb_connect_wifi` with device IP
3. Take screenshot: Use `adb_screenshot`
4. Disconnect: Use `adb_disconnect` when doneTDQS
Scored across 5 tools
Each tool has a clearly distinct purpose with no ambiguity: connecting, disconnecting, listing devices, getting device info, and taking screenshots. The actions and targets are well-defined and non-overlapping, making it easy for an agent to select the correct tool.
All tools follow a consistent 'adb_verb_noun' pattern (e.g., adb_connect_wifi, adb_device_info). The naming is uniform, using snake_case throughout, with clear verbs that describe the action and nouns specifying the target or resource.
With 5 tools, the server is well-scoped for its purpose of managing ADB connections and taking screenshots. Each tool earns its place, covering essential operations without being overly sparse or bloated, making it efficient for the domain.
The toolset covers core workflows for ADB device management and screenshot functionality, but there are minor gaps such as missing tools for advanced device interactions (e.g., adb_shell for commands) or file transfer. However, agents can likely work around these for basic use cases.