Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TV_HOSTYesRequired RFC1918 IPv4 TV address.
TV_MODELNoOptional expected native model.
TV_STATE_DIRNoCredentials/state root. Default: ~/Library/Application Support/lg-tv-use on supported systems.
TV_PROFILE_DIRNoOptional addons directory; registry lives there too, credentials remain in TV_STATE_DIR.

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
tv_discoverA

Find LG TVs without pairing or subnet scanning.

tv_observeB

Lightweight app/audio state. Auto captures unknown apps; always requests a fresh screen.

tv_appsC

Installed app versions, learned routes and native routes requiring visual discovery.

tv_devicesB

Known paired TVs. Select by name/ID; duplicate IPv4 addresses are ambiguous.

tv_selectB

Select a registered TV by name or ID and verify native device identity. Never pair implicitly.

tv_powerB

Power off natively or wake registered MACs, then verify native power state. Unreachable is not proof of power off. Wake requires TV network-standby support.

tv_app_actionC

Execute bounded native app route. Search uses advertised metadata; URL is LG browser only; video accepts YouTube ID. Unknown routes capture once for learning.

tv_ui_anchorB

Name exact page, focus, keyboard and modal state after inspecting a screenshot taken within 30 seconds. Selected tab alone is insufficient. Context expires after 60 seconds or an untracked command/reconnect.

tv_ui_recordB

From an inspected anchored state, run 1-20 press/wait/text/replace_text/submit steps and capture the result once. Inspect then tv_learn; text $VALUE parameterizes the route. Never learn loading as completed content, nor purchases, account edits or consent routes.

tv_ui_runC

Run generated UI addon without images only from its tracked origin and exact app version. Unknown/expired context returns a screenshot without executing. Tracked state is predicted, not TV focus readback; re-observe after external remote use.

tv_learnC

After visually verifying the latest native action or UI recording screenshot, compile its route into a reusable addon. Include what the image actually proved in notes.

tv_pressC

Bounded remote key; foreground state cannot identify focused control. Observe unknown navigation visually.

tv_moveC

Move relative pointer. Inspect unknown target before clicking.

tv_clickC

Click current pointer position; requires a known target or fresh visual observation.

tv_scrollC

Bounded scrolling, with lightweight state and automatic unknown-app fallback.

tv_typeB

Send focused-field text. Some apps including YouTube ignore it; acknowledgement does not verify insertion.

tv_launchC

Launch installed non-stub app; learned route avoids image capture.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3/5.0

Scored across 17 tools

Disambiguation4/5

Most tools target distinct actions (tv_press vs tv_click vs tv_move vs tv_scroll), but several boundaries blur: tv_ui_anchor and tv_observe both inspect state, tv_ui_record and tv_ui_run both execute UI sequences, and tv_launch overlaps with tv_app_action for starting apps. The verbose descriptions help separate them, but an agent could still misselect.

Naming Consistency5/5

Every tool uses a consistent tv_ prefix with snake_case and a predictable verb/noun structure (tv_press, tv_move, tv_learn, tv_app_action, tv_ui_record). The tv_ui_* group is a coherent sub-namespace, and no conventions are mixed.

Tool Count4/5

17 tools is slightly heavy but defensible for a domain spanning discovery, pairing, power, app launch, low-level input, and a UI-recording/learning pipeline. Each tool maps to a real capability, with little obvious redundancy.

Completeness4/5

The surface covers discovery, selection, power, app enumeration/launch, and a full input+observe+record+learn lifecycle, which is strong for TV control. Gaps remain around explicit volume/audio and channel control, though tv_observe reports audio state.

Maintenance

ActivityMaintained
ResponsivenessNo issues