adb-tv-mcp

adb-tv-mcp

Enables AI agents to control Android TV/Android devices through ADB, including screen capture, remote control, app management, and more.

Category
Visit Server

README

adb-tv-mcp

An MCP server that lets an AI agent control an Android TV or Android device through ADB.

Overview

adb-tv-mcp is a local server for the Model Context Protocol. The server gives an AI agent a set of tools. The agent uses the tools to control an Android device. The device must be reachable through the Android Debug Bridge (ADB).

The agent can do these tasks:

  • Capture the screen as an image.
  • Send remote-control and D-pad key presses.
  • Start, install, and remove applications.
  • Open a web address.
  • Type text and touch the screen.
  • Transfer files.
  • Read device properties, settings, and logs.
  • Run shell commands.
  • Pair with a device that uses Android 11 wireless debugging.

The server sends each request to the adb program. The server does not modify the device firmware.

Demo

Figure 1 shows a status display that the server sent to a TCL C6K television with the adb_open_url tool. The page runs in the television browser.

A status display shown on a TCL C6K television

Features

  • Screen capture. The adb_screenshot tool returns the screen as a PNG image. Vision-capable agents can see the screen and then act.
  • Remote control. The tools send D-pad keys, media keys, and system keys, and also touch and text input.
  • Application control. The tools start, list, install, and remove applications, and open web addresses.
  • Wireless pairing. The adb_pair tool completes the Android 11 pairing sequence.
  • File transfer. The tools copy files to and from the device.
  • Diagnostics. The tools read properties, settings, and logs, and record the screen.

Requirements

  • Node.js version 18 or later.
  • The Android platform-tools package. This package supplies the adb program.
  • An Android device with developer options and debugging turned on.

Installation

  1. Clone the repository:

    git clone https://github.com/mosesmrima/adb-tv-mcp.git
    cd adb-tv-mcp
    
  2. Install the dependencies:

    npm install
    
  3. Build the project:

    npm run build
    

Configuration

Add the server to the configuration file of your MCP client.

To use the published package, run it with npx. You do not need to clone the repository.

{
  "mcpServers": {
    "adb-tv": {
      "command": "npx",
      "args": ["-y", "adb-tv-mcp"],
      "env": { "ADB_PATH": "/path/to/platform-tools/adb" }
    }
  }
}

To use a local build instead, set the command to node and give the absolute path to the built file:

{
  "mcpServers": {
    "adb-tv": {
      "command": "node",
      "args": ["/absolute/path/to/adb-tv-mcp/dist/index.js"],
      "env": { "ADB_PATH": "/path/to/platform-tools/adb" }
    }
  }
}

Set the ADB_PATH variable only if the adb program is not on the PATH of the client process. Restart the client after you change the configuration.

Connect to a device

Android 11 or later (wireless debugging)

  1. On the device, open Developer options.
  2. Select Wireless debugging.
  3. Select Pair device with pairing code. The device shows a 6-digit code and an address in the form host:port.
  4. Tell the agent to run adb_pair with the host, the port, and the code.
  5. Tell the agent to run adb_connect with the host and the connect port. The device shows the connect port on the main Wireless debugging screen.

Note: The pairing port and the connect port are different. The command adb mdns services also finds these endpoints.

USB or earlier Android

  1. Turn on network ADB on the device.
  2. Tell the agent to run adb_connect with the device address and port 5555.

Tools

Tool Description
adb_devices Lists the connected devices and their state.
adb_pair Pairs with a device that uses Android 11 wireless debugging.
adb_connect Connects to a device endpoint.
adb_disconnect Disconnects a device, or all devices.
adb_screenshot Captures the screen and returns a PNG image.
adb_screenrecord Records the screen and saves the video to a local file.
adb_key Sends a remote-control or D-pad key.
adb_tap Touches the screen at a pixel position.
adb_swipe Swipes from one position to another.
adb_text Types text into the active field.
adb_launch Starts an application by package name.
adb_open_url Opens a web address on the device.
adb_start_intent Sends an Android intent with am start.
adb_list_apps Lists installed packages.
adb_current_app Reports the application in the foreground.
adb_install Installs an APK file.
adb_uninstall Removes an application.
adb_push Copies a file to the device.
adb_pull Copies a file from the device.
adb_getprop Reads device properties.
adb_settings Reads or writes an Android setting.
adb_logcat Reads recent log lines.
adb_reboot Restarts the device.
adb_shell Runs a shell command.

For the adb_key tool, use one of these key names, or a numeric Android key code: UP, DOWN, LEFT, RIGHT, ENTER, BACK, HOME, MENU, POWER, VOLUME_UP, VOLUME_DOWN, MUTE, PLAY_PAUSE, NEXT, PREV, FAST_FORWARD, REWIND, SEARCH, ASSIST, SETTINGS, APP_SWITCH, CHANNEL_UP, CHANNEL_DOWN.

Environment variables

Variable Description
ADB_PATH The path to the adb program. The default value is adb on the PATH.

Security

Read this section before you use the server.

  • The server controls real hardware.
  • The adb_shell tool runs any shell command. The adb_reboot and adb_uninstall tools also make changes to the device.
  • Use the server only with devices that you own or that you have permission to control.
  • Do not connect the server to devices on a network that you do not trust.
  • Give the agent only the autonomy that the task needs.

To report a security problem, see SECURITY.md.

How it works

The server calls the adb command-line program with execFile. Each MCP tool is a wrapper around one adb operation. The server exposes the tools over the stdio transport of the MCP SDK.

The adb_screenshot tool reads the output of screencap -p and returns it as an MCP image block. An agent that supports images can see the screen and then choose the next action.

Development

npm run dev     # run from source with tsx
npm run build   # compile TypeScript to dist/
npm start       # run the compiled server

Contributing

See CONTRIBUTING.md for the contribution process and the coding standards.

License

This project uses the MIT License. See LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured