webos-tv
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., "@webos-tvwhat's playing on the TV right now?"
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.
webos-tv-mcp
Let an agent drive your LG TV.
An MCP server (and a plain CLI) for LG webOS televisions: read what is playing, list apps, launch them, set the volume, turn the set off.
$ webos-tv status
{
"power": "Active",
"appId": "youtube.leanback.v4",
"appTitle": "YouTube AdFree",
"volume": 18,
"muted": false,
"output": "tv_speaker"
}Why
There are libraries for the webOS socket protocol, but nothing that gives an agent a small, honest tool surface. This is that: five tools, no magic, and a README that says exactly what does not work without root.
Related MCP server: lg-tv-mcp
Install
npm i -g @webos-tools/cli # LG's ares CLI, used for launching apps
npm i -g webos-tv-mcp
webos-tv setup --host 192.168.1.50 --device tvsetup opens the second-screen socket, the TV shows an Allow prompt, and
the client key is saved to ~/.webos-tv/config.json.
Use it as an MCP server
{
"mcpServers": {
"webos-tv": { "command": "webos-tv", "args": ["mcp"] }
}
}Tool | Does |
| power, foreground app, volume, mute, audio output |
| installed apps, optionally filtered |
| launch by title ( |
| read, set 0-100, mute/unmute |
| standby |
Or from the terminal
webos-tv status
webos-tv apps netflix
webos-tv launch "Nature Loop"
webos-tv vol 22
webos-tv vol mute
webos-tv offHow it works
flowchart LR
A["agent / CLI"] --> B["webos-tv"]
B -->|"wss :3001<br/>SSAP"| C["TV: second screen"]
B -->|"ssh :9922<br/>ares-launch"| D["TV: dev mode"]
C --> E["status, volume, app list"]
D --> F["launch app"]Two channels, because one is not enough:
SSAP (the second-screen socket on port 3001) answers status, volume and the installed-app list.
Launch is denied over SSAP on current firmware — an unsigned client gets
401 insufficient permissionsforsystem.launcher/launch. So launching shells out toares-launchover SSH, which is what LG's own tooling does.
Limitations
Developer Mode required for launching (SSH on port 9922).
No key input. Sending remote keys needs a client with
CONTROL_INPUT_JOYSTICK/CONTROL_MOUSE_AND_KEYBOARD; this one is paired for read + audio, so there is notv_keytool rather than a broken one.No screensaver control. The system screensaver slot is root-owned.
tv_power_offis untested on every model. It uses the documentedsystem/turnOff; if your set ignores it, wake-on-LAN is not implemented here.
Security
The client key is a bearer token: anything holding it can read your TV's state
and change its volume. It lives in ~/.webos-tv/config.json (mode 600
recommended). Revoke it on the TV under Settings → Connection → Device
Connection Settings.
Nothing listens on a port. The MCP server is stdio; the CLI opens a connection, does one thing and closes it.
See also
aerial-tv - the 4K aerial screensaver built on the same TV stack.
Licence
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.
Give your AI agent the power to cast to your home TV and control an interactive canvas. By ArdaBot.
Manage digital signage screens, playlists and media from your AI assistant.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Related MCP Servers
- AlicenseBqualityAmaintenanceControl any smart TV with natural language — play Netflix/YouTube/Spotify by name, cast URLs, scene presets, multi-room audio, and multi-TV sync. Supports LG, Samsung, Android TV, Roku.2367 PyPI51MIT
- AlicenseNot gradedqualityDmaintenanceTurns AI assistants like Claude and ChatGPT into a remote control for LG webOS smart TVs, enabling power control, volume, app launching, input switching, and more, all locally without cloud APIs.2MIT
- AlicenseAqualityAmaintenanceEnables AI agents to control a set-top streaming device and visually navigate its interface, including opening apps, managing playback, entering text, adjusting volume and power, sending remote input, and capturing screenshots for observation and verification.1420 PyPIMIT
- AlicenseBqualityCmaintenanceEnables controlling LG webOS TVs via MCP, including apps, volume, remote keys, mouse, inputs, channel selection, program guides, screenshots, and Wake-on-LAN power on, without installing additional software on the TV.395 npmMIT