@mokuichi147/webos-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WEBOS_HOST | No | 設定ファイルを使わず直接接続する TV (TV to connect directly without config file) | |
| WEBOS_DEVICE | No | 既定デバイス名 (default device name) | |
| WEBOS_MCP_DEBUG | No | デバッグログを stderr に出力 (output debug logs to stderr, e.g. 1) | |
| WEBOS_CLIENT_KEY | No | --host と併用する client-key (client-key used with --host) | |
| WEBOS_CONFIG_DIR | No | 設定ディレクトリ (config directory) |
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 |
|---|---|
| discover_devicesA | LAN 上の LG webOS TV を SSDP で探索し、IP・名前・モデルを返す。 |
| pair_deviceA | 指定した IP の TV に接続してペアリングする。TV 画面に表示される承認ダイアログでユーザーが「はい」を選ぶまで待機し、client-key を保存する。 |
| list_devicesA | devices.json に保存されているデバイスと既定デバイスを返す。 |
| remove_deviceA | 保存済みのデバイス(client-key を含む)を削除する。 |
| set_default_deviceA | device パラメータ省略時に使うデバイスを設定する。 |
| list_appsA | TV にインストールされているアプリの ID とタイトルを返す。launch_app にはこの id を渡す。 |
| get_current_appA | 現在前面に表示されているアプリの ID を返す。 |
| launch_appA | アプリ ID(例: netflix, youtube.leanback.v4, com.webos.app.hdmi1)でアプリを起動する。任意で起動パラメータを渡せる。 |
| close_appB | 指定したアプリを終了する。 |
| open_urlA | TV のブラウザで URL を開く。 |
| get_volumeA | 現在の音量とミュート状態を返す。 |
| volume_upB | 音量を 1 段階上げる。 |
| volume_downA | 音量を 1 段階下げる。 |
| set_volumeB | 音量を 0〜100 で設定する。 |
| muteA | ミュートを ON/OFF する。mute 省略時はトグル。 |
| get_sound_outputA | 現在の音声出力先を返す(tv_speaker, external_optical, external_arc, bt_soundbar, headphone など)。 |
| set_sound_outputC | 音声出力先を切り替える。 |
| send_keyB | リモコンのボタン操作を送る。複数指定すると順に送信する。使用可能なキー: LEFT, RIGHT, UP, DOWN, ENTER, BACK, EXIT, HOME, MENU, INFO, GUIDE, DASH, VOLUMEUP, VOLUMEDOWN, MUTE, CHANNELUP, CHANNELDOWN, PLAY, PAUSE, STOP, REWIND, FASTFORWARD, RECORD, RED, GREEN, YELLOW, BLUE, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ASTERISK, CC, POWER, CLICK |
| send_mouseA | TV のマウスポインタを操作する。move は相対移動(画面は 1920x1080 相当。screenshot の 960x540 座標の 2 倍)。絶対位置に置きたいときは先に大きな負の値で左上に寄せてから移動する(例: move -3000,-3000 → move 960,512)。ブラウザ等でテキスト欄をクリックして仮想キーボードを出すときに使う。 |
| list_inputsA | HDMI などの外部入力の ID・ラベル・接続状態を返す。switch_input にはこの id を渡す。 |
| switch_inputC | 外部入力を切り替える(例: HDMI_1, HDMI_2)。 |
| insert_textA | TV 上でフォーカスされているテキストフィールド(検索欄など)に文字列を入力する。入力欄が表示されていないと失敗する。enter=true で入力後に確定する。 |
| delete_textA | フォーカス中のテキストフィールドからカーソル前の文字を削除する。 |
| media_controlA | 再生・一時停止・停止・巻き戻し・早送りを送る。アプリによっては対応していない。 |
| power_offA | TV の電源を切る(スタンバイ)。 |
| get_power_stateA | TV の電源状態を返す(Active / Active Standby / Screen Off など)。TV がスタンバイで応答しない場合はその旨を返す。 |
| power_onA | Wake-on-LAN で TV の電源を入れる。pair_device 時に保存した MAC アドレスを使う(mac パラメータで上書き可)。TV 側で「ネットワーク経由で電源オン」等の設定が有効である必要がある。 |
| get_settingsA | システム設定を取得する。例: category=picture keys=[brightness,contrast,backlight,color,pictureMode] / category=sound keys=[soundMode]。 |
| set_settingsB | システム設定を変更する。例: category=picture settings={backlight: 60}。TV のファームウェアによっては WRITE_SETTINGS 権限がなく 401 になる。 |
| show_toastB | TV 画面にトースト通知を表示する。 |
| screenshotA | TV 画面のスクリーンショット (960x540 JPEG) を取得する。現在の表示内容を確認してから操作したいときに使う。DRM 保護された動画(Netflix / Prime Video 等の再生中)は黒く写る。 |
| get_system_infoA | TV のモデル名・webOS バージョン等を返す。 |
| watch_tvA | アプリや外部入力からテレビ放送(チューナー)の視聴に切り替える。 |
| list_channelsB | 受信可能なチャンネル一覧を返す。type で放送種別を絞り込める(例: Terrestrial=地デジ, BS, CS, UHD=4K)。set_channel には number / name / channelId のいずれでも渡せる。 |
| get_current_channelA | 視聴中のチャンネルと、放送中の番組名・内容・開始/終了時刻を返す。放送視聴中でない場合はその旨を返す。 |
| get_program_guideA | 視聴中チャンネルの番組表(これから放送される番組の一覧)を返す。放送視聴中でない場合はその旨を返す。 |
| set_channelB | チャンネルを切り替える。channel には番号(例: 011, 41)、局名(例: NHK総合, テレ東)、channelId のいずれかを指定。放送視聴中でなければ自動で切り替える。 |
| channel_upC | 次のチャンネルへ切り替える。 |
| channel_downB | 前のチャンネルへ切り替える。 |
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 39 tools
Most tools cleanly separate domains like device management, apps, volume, inputs, and channels. However, send_key overlaps with media_control, volume controls, power_off, and channel_up/down, which creates ambiguity about whether to use the generic key sender or the specialized wrappers.
The vast majority of tools follow a clear snake_case verb_noun pattern: list_apps, get_volume, set_channel, launch_app. A few exceptions like mute, screenshot, volume_up, channel_down, and power_on break the pattern slightly, but the overall convention is consistent and readable.
39 tools is well beyond the typical well-scoped range and creates significant selection burden for an agent. The count is partially justified by the breadth of TV control, but many tools duplicate what send_key already does, making the surface feel heavier than necessary.
The surface is remarkably complete for an LG webOS TV remote: discovery, pairing, device management, power, apps, inputs, audio, channels, program guide, settings, text input, mouse control, screenshots, and toasts are all covered. Agents can execute the full lifecycle from pairing to everyday control without obvious dead ends.