Control smart TVs (LG, Samsung, Android TV, Roku) with natural language. Play Netflix/YouTube/Spotify by name, cast URLs, queue content, get recommendations, run scene presets, sync across multiple TVs.
7 tools with mixed quality. Tool naming is action-verb based and clear (tv_play, tv_cast, tv_power, tv_volume), but descriptions vary significantly in depth and actionability. All tools have descriptions, most between 70 - 200 chars. Input schemas are well-formed with types and nullable fields properly declared. Critical weakness: output schemas are completely undocumented, no tool response structure is defined, forcing LLMs to guess what fields are returned. Error handling and parameter constraints are minimal. The server targets smart TV control, a well-scoped domain, but lacks depth in error recovery guidance and response documentation.
Cast a Netflix/YouTube/Spotify URL to the TV. Paste any streaming URL. stv parses the platform and content ID automatically.
Play the next episode. Continues from watch history.
Find content by name and play it on TV. This is the primary tool. Resolves the content ID automatically, then deep-links into the app on your TV.
Turn TV on or off.
Get personalized recommendations based on watch history + trending.
Get or set volume, step up/down, or toggle mute. All in one tool. - No args: returns current volume + mute status - level=25: set volume to 25 - direction="up"/"down": step volume - mute=True/False/None: mute, unmute, or toggle
Output schemas completely undocumented. No tool defines what fields are returned, forcing LLMs to infer response structure and risking wrong field extraction for downstream operations.
tv_whats_on and tv_recommend lack pagination parameters (limit, offset, page_size) and pagination response structure (total_count, next_cursor). Returns could exceed 100 items unconstrained.
tv_volume has overloaded semantics, single tool handles 4 distinct operations (get, set, step, mute toggle) with mutually exclusive params (level, direction, mute). Should be split into tv_get_volume, tv_set_volume, tv_adjust_volume, tv_toggle_mute.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Show trending content on Netflix and/or YouTube.
tv_recommend 'mood' param accepts free-form string but description lists only 4 valid values (chill, action, kids, random). Should be enum constraint, not suggestion.
tv_whats_on 'platform' param accepts free-form string suggesting 'netflix' or 'youtube', but no enum constraint. LLMs may hallucinate 'disneyplus' or 'hulu'.
No error handling or recovery guidance. Tools lack descriptions of what failures mean (e.g., 'Content not found', 'TV unreachable', 'Invalid URL') or how agents should respond.
tv_play, tv_cast, tv_next, tv_power, tv_volume are WRITE operations but lack idempotency documentation. No guidance on whether it's safe to retry on timeout.
tv_play accepts optional 'title_id' (Netflix-only) and season/episode (Netflix-only), but no constraint or dependency docs. LLM might pass season/episode for YouTube or Spotify.