tv-mcp
The tv-mcp server enables AI agents to build, deploy, and debug web applications on physical Samsung Tizen and LG webOS smart TVs. It orchestrates vendor toolchains and leverages the Chrome DevTools Protocol.
Capabilities are unlocked in tiers:
Always available (Tier 0): list discovered/configured TVs, connect to a device by name/host/platform, and retrieve in-depth documentation (device setup, Tizen signing, webOS developer mode, packaging, remote key pairing).
After connecting (Tier 1): build & sign apps, install, launch, stop, and uninstall apps, retrieve device logs, and inject remote control key presses.
After launching in debug mode: take screenshots, read JavaScript console logs, and evaluate JavaScript directly in the running app’s webview.
Provides tools for building, installing, and debugging Samsung Tizen smart TV web apps, including packaging, signing, deployment, screenshots, console logs, JS evaluation, and remote control.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tv-mcp Build the app, install it on the webOS TV, and open the JS console"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tv-mcp
Build, deploy, and debug Smart TV web apps from any AI agent.
tv-mcp is a Model Context Protocol server that gives MCP clients (Claude Code, Cursor, VS Code, ...) hands-on access to real Samsung Tizen and LG webOS televisions: package and sign apps, install them on test TVs, take screenshots, read the JS console, evaluate code in the running app, and press remote-control keys.
The goal: an agent loop of edit code → build → install → screenshot → read console → fix that runs hands-free on physical TVs.
Who this is for
Smart TV development has the worst inner loop in web development: two vendor SDKs, certificate ceremonies, dev-mode timers, and a screen on the other side of the room. This hits hardest in hospitality and B2B TV — hotel IPTV, cruise ships, hospitals, digital signage, sports bars — where teams ship one web app to fleets of mixed Samsung/LG panels.
If that's you, this project is for you.
Related MCP server: roku-dev-mcp
How it works
Your TV app is a web app in a native wrapper (.wgt / .ipk). Both platforms expose the webview's Chrome DevTools Protocol remote inspector. So tv-mcp splits into:
a platform plane per vendor (build/sign/install/launch via
tizen/sdbandares-*CLIs), anda shared CDP plane (screenshot, console, JS eval) that works identically on both — because underneath it's just Chromium.
MCP client ── stdio ── tv-mcp
├── TizenDriver → tizen / sdb → Samsung TV
├── WebOSDriver → ares-* → LG TV
└── CdpBridge → DevTools Protocol → the app's webview (both)Progressive disclosure
A fresh session exposes only 3 tools (list_devices, connect_device, docs). Connecting a device unlocks the app-lifecycle tier; launching with debug: true unlocks the inspector tier (screenshot, console_logs, eval_js). Deep platform knowledge (Tizen signing/DUIDs, webOS dev-mode expiry, pairing flows) ships as MCP resources fetched on demand — your agent's context stays small until it actually needs the detail.
Tier | Unlocked by | Tools |
0 | always |
|
1 | device connected |
|
2 | debug launch |
|
Prerequisites
tv-mcp orchestrates the vendor toolchains — it does not replace them. You need:
Samsung (Tizen) | LG (webOS) | |
On this machine | Node ≥ 20 · Tizen Studio CLI ( | Node ≥ 20 · webOS TV CLI: |
On the TV, once | Developer mode: Apps → type | Developer Mode app from LG Content Store (needs an LG developer account) → Dev Mode ON → note the on-screen passphrase |
Signing | Certificate profile in Tizen Studio's certificate manager. Real TVs reject the generic Tizen distributor cert — you need a Samsung-issued cert that includes the TV's DUID ( | none (dev installs ride the Dev Mode session) |
Network | TV and this machine on the same subnet; port 26101 open only while dev mode is armed | same subnet; SSH on 9922 via the Dev Mode app; sessions expire after ~50h |
Common trap (learned on real hardware): a multi-homed machine has several IPs — the Host PC IP on the TV must be the one on the TV's subnet, or the TV silently drops every connection. docs topic device-setup has the full checklist; the server's errors point there when connect/install fails.
Not sure your setup is right? Ask the agent to run doctor — one pass over toolchains, signing profiles (it distinguishes Samsung-issued certs from the generic SDK cert that real TVs reject), and TV reachability, with a remedy for every failing item.
Quick start
npm install
npm run build
cp devices.example.yaml devices.yaml # edit for your TVs and projectClaude Code:
claude mcp add tv -- node /path/to/tv-mcp/dist/index.js --config /path/to/devices.yamlThen, in a session:
connect to lab-samsung-q80, build the xtv project for tizen, install and launch it in debug mode, and screenshot it
Status
Early. Honest capability matrix:
Capability | Tizen | webOS |
discover / connect | ✅ | ✅ |
package (+sign) | ✅ | ✅ |
install / launch / stop | ✅ | ✅ |
debug attach (CDP) | ✅ | ✅ |
screenshot / console / eval | ✅ | ✅ |
remote key injection | ✅ (one-time on-screen pairing) | ✅ (one-time on-screen pairing) |
dev-mode auto-renew | n/a | 🚧 planned |
emulator / simulator targets | 🚧 | 🚧 |
commercial panels (Pro:Centric, SSSP) | 🚧 | 🚧 |
Roadmap
v0.2 — ✅ remote-key pairing (Samsung remote WS API, LG SSAP)
v0.2.x — webOS dev-mode auto-renew
v0.3 — Android TV driver (#1): adb platform plane + the same CDP debug plane (Android TV webapps are Chromium WebViews too)
v0.3 — Tizen emulator + webOS simulator targets, CI-friendly headless mode
v0.4 — streamable-HTTP transport + device locking: one shared TV lab, whole team's agents
v1.0 — commercial hospitality panels (LG Pro:Centric / webOS Signage, Samsung SSSP / HTV)
Sponsoring
Commercial-panel support (Pro:Centric, SSSP) needs hardware and vendor-portal access that individual maintainers don't have. If your company ships hospitality TV apps and wants this to exist, sponsorship or hardware loans move the roadmap directly — see FUNDING or open a discussion.
Contributing
PRs welcome — see CONTRIBUTING.md. The TVDriver interface in src/types.ts is the extension point; a Vizio/Roku/Android TV driver would slot right in.
License
Available Tools
3 toolsconnect_deviceConnect TVB
Connect to a TV by configured name or by host+platform. Unlocks app lifecycle tools.
Inputs: host, name, platform.
docsPlatform docsA
Deep docs for platform pain points (signing, dev mode, packaging, pairing). Call without a topic to list topics.
Inputs: topic.
list_devicesList TVsA
List configured and live-discovered Samsung (Tizen) / LG (webOS) TVs with reachability.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: discover devices, connect to a device, and access documentation. There is no overlap or ambiguity between these three tools.
list_devices and connect_device follow a verb_noun pattern, but docs breaks the pattern by using a noun alone without a verb prefix like get_docs or list_topics.
With only 3 tools and all descriptions mentioning that connecting 'unlocks app lifecycle tools', the server appears to gate functionality behind an initial connection step rather than exposing it directly. The set feels thin for a TV control server that presumably supports app lifecycle, pairing, and packaging operations that are only referenced in the docs tool.
The tool surface only covers discovery, connection, and documentation. Descriptions reference 'app lifecycle tools', 'pairing', 'dev mode', and 'packaging' as capabilities, but no tools exist to actually perform these operations—only docs describing them. This is a severely incomplete surface for the implied domain.
Maintenance
Related MCP Connectors
Let your AI agent build, preview and update web apps, download source and publish when you allow it.
Give your AI agent the power to cast to your home TV and control an interactive canvas. By ArdaBot.
Deploy and run apps in your own AWS, Google Cloud, Azure or DigitalOcean account from any AI agent.
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to develop, test, and certify Roku applications by providing direct control over device functions like app deployment, remote input, and SceneGraph inspection. It supports automated workflows including real-time log collection, media monitoring, and certification verification.1-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to develop, deploy, navigate, inspect, and debug Roku BrightScript and SceneGraph applications with direct hardware control.-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to remotely control, debug, and automate real browsers, iOS simulators, and Android emulators, including navigation, element inspection, interaction, screenshots, and mobile gestures.28 npmMIT
- AlicenseAqualityCmaintenanceEnables AI agents to control a Samsung Tizen smart TV on the local network directly over its local APIs, with no cloud account or hub required. Agents can check power and volume status, switch the TV on or off, send remote keys, type text, launch apps, and play YouTube videos, all under configurable volume and key-press guardrails.9MIT