tvpilot
Controls paired Android TV devices, including listing devices and apps, sending remote key events, launching apps or intents, playing resolved titles, and observing foreground screen state.
Supports Apple TV+ as a playback provider, resolving titles to Apple TV+ deep links and starting playback on the controlled TV.
Supports Fubo TV as a playback provider, resolving titles to Fubo deep links and starting playback on the controlled TV.
Controls paired Google TV devices, including listing devices and apps, sending remote key events, launching apps or intents, playing resolved titles, and observing foreground screen state.
Supports Netflix as a playback provider, resolving titles to Netflix deep links and starting playback on the controlled TV.
Supports Prime Video as a playback provider, resolving titles to Prime Video deep links and starting playback on the controlled TV.
Supports Stremio as a playback provider, resolving titles to Stremio deep links and starting playback on the controlled TV.
Supports YouTube as a playback provider and can launch YouTube URLs, deep links, or the YouTube TV app on the controlled device.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
tvpilot
tvpilot controls a paired Android TV or Google TV: it lists the paired device, sends remote key events, launches apps and intents, resolves a spoken-style title to the right streaming provider and plays it, and reads back what is on the screen. One binary serves a command-line interface and a stdio MCP server.
Calls go through the TVWizard relay, which forwards them over a WebSocket to the bridge app running on the TV, so no same-network, VPN, or port-forwarding setup is needed. Pairing is done once in the bridge app: it shows a code, you claim it, and you receive a bearer token for your TV.
Configuration
Two environment variables configure the tool:
TVWIZARD_TOKEN(required) — the bearer token issued when you paired your TV. Without it every call fails with an error naming the variable; there are no unauthenticated or fake results.TVWIZARD_MCP_URL(optional) — the relay endpoint. It defaults tohttps://tv.djwizard.ai/api/mcp. Note: the public TVWizard documentation describes the relay architecture and its bearer auth but does not publish the relay's raw HTTP path, so this default endpoint is a documented reconstruction; override it if the relay publishes a different path.
Related MCP server: Smart Appliance MCP
Install
npx @reneturcios/tvpilot devicesOr run the container image:
docker run -i ghcr.io/cloudcorprecords/tvpilotThe container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.
CLI
tvpilot devices
tvpilot key POWER
tvpilot launch https://www.youtube.com/watch?v=jNQXAC9IVRw --package com.google.android.youtube.tv
tvpilot apps
tvpilot play Stranger Things --country US --season 2 --episode 3 --year 2016 --provider netflix
tvpilot observe
tvpilot --versionCommands print the relay's JSON payload. Exit codes: 0 on
success, 1 when a call fails (including a missing token or an
upstream relay error), 2 for usage errors.
Keys for tvpilot key are POWER, HOME, UP, DOWN, LEFT,
RIGHT, OK, BACK, VOL_UP, and VOL_DOWN. Providers for
--provider are netflix, disney_plus, prime_video, max,
hulu, apple_tv_plus, paramount_plus, peacock, fubo_tv,
youtube, and stremio.
tvpilot observe needs the Android AccessibilityService granted
to the bridge app. The first call without it returns an
accessibility_not_granted error explaining that a setup prompt
was posted on the TV; tap it, then retry.
MCP server
One bin serves both faces. The mcp subcommand starts a stdio MCP
server:
npx -y @reneturcios/tvpilot mcpMCP client configuration:
{
"mcpServers": {
"tvpilot": {
"command": "npx",
"args": ["-y", "@reneturcios/tvpilot", "mcp"],
"env": { "TVWIZARD_TOKEN": "<your token>" }
}
}
}Tools
Tool | Input | What it returns |
| (none) | The TVs paired with the caller's token, each with an |
|
| Sends one key event: one of the ten keys listed above. |
|
| Opens an Intent URI, deep link, or URL, optionally in a named package. |
| (none) | Installed apps with |
|
| Resolves the title to a provider deep link and plays it. |
| (none) | Foreground package/activity, the focused element, and visible clickable nodes. |
Upstream failures — a title that cannot be found, no provider for the title in the chosen country, a relay with its resolver disabled, or accessibility not yet granted — are returned as error results carrying the relay's own message.
Development
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsxLicense
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Control Android TV from any AI. 38 MCP tools: playback, recap, recommend, smart-home, schedules.
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
Give your AI agent the power to cast to your home TV and control an interactive canvas. By ArdaBot.
Multistream relay control: check live status, switch destinations, manage teams, generate overlays.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceTurns any Claude-compatible AI chat into a universal remote for Android TV and Google TV via a cloud relay, enabling natural language control of your TV from anywhere.-
- FlicenseBqualityCmaintenanceEnables discovery and control of smart appliances (TVs, media devices) on the local network through natural language, supporting providers like Roku, Google TV, and Home Assistant.18-
- AlicenseAqualityBmaintenanceEnables full control of an Apple TV over the local network, including playback, remote navigation, app launching, deep links, and power management.13MIT
- AlicenseAqualityAmaintenanceEnables controlling a Philips Android TV: power, volume, Ambilight, launching apps, and YouTube playback via JointSpace API and ADB.1733 PyPIMIT