trackmcp
Back to directory

MCP (Model Context Protocol) Server to control Android TV

1 stars JavaScriptAI & Machine Learning Updated Oct 11, 2025

Documentation

日本語

MCP-ADB

A Model Context Protocol (MCP) server that provides integration with Android Debug Bridge (ADB) for AI assistants to interact with Android devices.

Features

  • Screenshot Capture: Take screenshots of connected Android devices with automatic resizing
  • Base64 Image Data: Receive screenshot data directly as base64-encoded strings
  • Key Event Control: Send key events to Android devices (navigation, back, home)
  • Multiple Device Support: Target specific devices when multiple devices are connected
  • Device Listing: List all connected Android devices as resources
  • Resource Access: Access screenshots and device information via resource URIs

Prerequisites

  • Node.js (v16 or higher recommended)
  • Android Debug Bridge (ADB) installed and available in PATH or configured via ADB_PATH environment variable
  • Connected Android device(s) with USB debugging enabled

Installation

bash
# Clone the repository
git clone https://github.com/isseikz/mcp-adb.git
cd mcp-adb

# Install dependencies
npm install

# Build the project
npm run build

Usage

Using with Claude Desktop

To use this MCP server with Claude Desktop add mcp-adb into claude_desktop_config.json, which can be found in the Claude Desktop installation directory or Claude - Settings - Developer - Edit Config

Here is an example of how to configure the `claude_desktop_config.json` file:

`json
{
  "mcpServers": {
    "mcp-adb": {
      "command": "node",
      "args": ["/path/to/mcp-adb/build/index.js"],
      "env": {
        "ADB_PATH": "/path/to/adb"
      }
    }
  }
}

{

"mcpServers": {

"mcp-adb": {

"command": "node",

"args": ["/path/to/mcp-adb/build/index.js"],

"env": {

"ADB_PATH": "/path/to/adb"

}

}

}

}

`
### Available Tools

#### Screenshot Tool

Captures a screenshot from a connected Android device and automatically resizes it to 640px width.

Parameters:

- `deviceId` (optional): Target a specific device when multiple devices are connected

Response:

- Base64-encoded image data (PNG format) directly in the response

Example:

{

"name": "screenshot",

"arguments": {

"deviceId": "emulator-5554"

}

}

code
#### Press Key Tool

Sends a key event to a connected Android device.

Parameters:

- `keycode`: The Android key code to send (see list below)
- `deviceId` (optional): Target a specific device when multiple devices are connected

Available keycodes:

- `KEYCODE_DPAD_CENTER` - Center/OK button
- `KEYCODE_DPAD_DOWN` - Down navigation
- `KEYCODE_DPAD_UP` - Up navigation
- `KEYCODE_DPAD_LEFT` - Left navigation
- `KEYCODE_DPAD_RIGHT` - Right navigation
- `KEYCODE_DPAD_UP_LEFT` - Diagonal up-left
- `KEYCODE_DPAD_UP_RIGHT` - Diagonal up-right
- `KEYCODE_DPAD_DOWN_LEFT` - Diagonal down-left
- `KEYCODE_DPAD_DOWN_RIGHT` - Diagonal down-right
- `KEYCODE_BACK` - Back button
- `KEYCODE_HOME` - Home button

Example:

{

"name": "pressKey",

"arguments": {

"keycode": "KEYCODE_DPAD_DOWN",

"deviceId": "emulator-5554"

}

}

code
### Resources

#### Connected Devices

List all connected Android devices:

adb://devices

code
Response:

- A list of connected device IDs

#### Screenshots

Access a specific screenshot by filename:

adb://screenshots/{filename}

code
For example:

adb://screenshots/screenshot-2025-04-10T16-30-48-931Z.png

code
## Development

### Project Structure

mcp-adb/

├── src/

│ └── index.ts # Main server implementation

├── build/ # Compiled JavaScript files

├── temp/ # Temporary directory for screenshots

├── package.json # Project dependencies and scripts

└── tsconfig.json # TypeScript configuration

code
### Building

npm run build

code
This will compile the TypeScript code to JavaScript in the `build` directory.

## Requirements

This project uses the following dependencies:

- `@modelcontextprotocol/sdk`: MCP server implementation
- `fs-extra`: Enhanced file system methods
- `sips`: Used for image resizing (built into macOS) to reduce context comsumption

## License

MIT

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Frequently asked questions

What is mcp-adb?

mcp-adb is MCP (Model Context Protocol) Server to control Android TV

How do I install mcp-adb?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is mcp-adb open source?

Yes — it is hosted on GitHub at https://github.com/isseikz/mcp-adb and has 1 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP