home / mcp / remote control mcp server

Remote Control MCP Server

Provides MCP-based control of Roku TVs via the External Control Protocol, enabling voice and automation-driven TV actions.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "aarongoldsmith-mcp-remote-control": {
      "command": "uvx",
      "args": [
        "mcp-remote-control"
      ],
      "env": {
        "HOST_IP": "192.168.1.100"
      }
    }
  }
}

You can control Roku TVs on your local network using MCP, a model context protocol that lets AI assistants issue natural language commands to your TV. This server exposes TV controls as MCP tools, enabling hands-free power, navigation, app launching, and information queries through compatible MCP clients.

How to use

Connect your MCP client (for example, Claude Desktop, Claude Code, or another MCP-enabled tool) to the TV control server using a local stdio configuration. You can run the server locally and point your MCP client to it, then ask your assistant to turn on the TV, launch an app, or adjust the volume.

How to install

Prerequisites: ensure you have Python 3.12 or higher and that your TV and computer are on the same local network.

Install the server package. You can run the server directly via uvx without a separate install step, or install the package globally with pip.

Install via uvx (recommended):

uvx mcp-remote-control

Install globally with pip (alternative):

pip install mcp-remote-control

Configuration and usage notes

Set the TV IP address so the server can reach your Roku. You will provide this IP to the client environments where you run the server.

Example: run the server and configure the client to use the local process. You can also configure your client to pass the TV IP as an environment variable when starting the server.

Claude Desktop configuration examples show how to connect to the local MCP server by specifying the command to run and the HOST_IP environment variable.

{
  "mcpServers": {
    "tv-control": {
      "command": "uvx",
      "args": ["mcp-remote-control"],
      "env": {
        "HOST_IP": "192.168.1.100"
      }
    }
  }
}

Example usage with natural language

Once connected, you can instruct your assistant to perform actions such as turning on the TV, launching apps, or adjusting volume.

User: "Turn on my TV and launch Netflix"
Assistant: powers on the TV and launches Netflix

Available tools

press_key

Simulates remote control button presses such as navigation, playback, volume, and power.

launch_app

Launches a TV app by name (case-insensitive). Examples: Netflix, YouTube, Disney+.

list_apps

Lists all available apps and their channel IDs.

get_device_info

Retrieves device information in XML format.

power_on

Powers on the TV.