lgtv-control-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LGTV_HOST | Yes | TV IP address on the local network | |
| LGTV_PORT | No | Port for WebSocket connection (3001 = wss, 3000 = plain ws) | 3001 |
| LGTV_CLIENT_KEY | No | Pairing key; obtained and saved automatically on first use |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| set_backlightA | Set the TV backlight level from 0 to 100. This is the primary brightness control for an LG webOS TV. |
| set_picture_settingA | Set a picture setting (backlight, contrast, brightness or color) from 0 to 100. |
| set_picture_modeB | Set the picture mode (e.g. cinema, normal, vivid, game, expert1, expert2, filmMaker, hdrEffect). |
| get_picture_settingsA | Read current picture settings (backlight, contrast, brightness, color). |
| volume_upA | Increase the TV volume by one step. |
| volume_downA | Decrease the TV volume by one step. |
| set_volumeA | Set the TV volume to an absolute level from 0 to 100. |
| get_volumeA | Read the current volume and mute state. |
| set_muteB | Mute or unmute the TV. |
| list_inputsA | List available external inputs (HDMI, etc.). |
| set_inputB | Switch to an external input by its id (e.g. HDMI_1). |
| list_appsA | List installed apps and their launch ids. |
| launch_appA | Launch an app by its id (e.g. netflix, youtube.leanback.v4, com.webos.app.hdmi1). |
| close_appC | Close an app by its id. |
| get_foreground_appA | Get the currently foreground app. |
| channel_upA | Go to the next channel. |
| channel_downA | Go to the previous channel. |
| set_channelC | Tune to a channel by its channelId. |
| list_channelsA | List available TV channels. |
| get_current_channelB | Get the currently tuned channel. |
| media_playB | Send media play. |
| media_pauseB | Send media pause. |
| media_stopA | Send media stop. |
| media_rewindC | Send media rewind. |
| media_fast_forwardC | Send media fast-forward. |
| power_offA | Turn the TV off (standby). |
| screen_offA | Turn off the screen while keeping the TV running. |
| screen_onB | Turn the screen back on. |
| get_power_stateA | Read the current power state. |
| show_toastB | Display a toast notification message on the TV. |
| send_buttonC | Send a remote-control button press. Common names: UP, DOWN, LEFT, RIGHT, ENTER, BACK, EXIT, HOME, MENU, INFO, MUTE, VOLUMEUP, VOLUMEDOWN, CHANNELUP, CHANNELDOWN, PLAY, PAUSE, STOP, REWIND, FASTFORWARD, RED, GREEN, YELLOW, BLUE, 0-9, DASH. |
| set_3d_onC | Enable 3D mode. |
| set_3d_offB | Disable 3D mode. |
| get_system_infoA | Get TV system information (model, etc.). |
| get_software_infoA | Get TV software / firmware information. |
| get_service_listA | List available SSAP services on the TV. |
| ssap_requestA | Escape hatch: send a raw SSAP request to the TV. Provide the full uri (e.g. ssap://audio/getVolume) and an optional payload object. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 37 tools
Several tools have overlapping functionality: send_button duplicates many specific control tools (volume_up/down, channel_up/down, set_mute, etc.), and set_backlight is a subset of set_picture_setting. This creates ambiguity for an agent selecting the appropriate tool.
Tool names follow a consistent verb_noun pattern using snake_case, with get_, set_, list_, media_ prefixes. Minor inconsistency: get_picture_settings vs set_picture_setting (singular vs plural), but overall highly predictable.
37 tools is excessive for a TV control server. Many tools (e.g., send_button, volume_up/down, set_volume) provide redundant ways to achieve the same result, bloating the surface and making it harder for agents to navigate.
The server lacks a tool to turn the TV on (only power_off exists) and does not provide a way to get the current active input. These are significant gaps for a TV control interface.