MCP server for Google TV — control paired devices (keys, text, app launch) via @kud/gtv.
Server has 6 tools with clear action verbs (list, set, get, send, type, launch) and reasonable descriptions (50-150 chars). All tools have input schemas with type definitions. However, parameter descriptions are minimal or missing entirely, most params lack guidance on format, constraints, or valid values. Error handling is present but generic. No tool annotations (readOnlyHint/destructiveHint). Output schemas are not formally documented. Descriptions are adequate but could be more LLM-optimized per pattern:tool-description baseline (194 chars avg).
Read the current state of the TV: power, volume, foreground app, connection status.
Launch an app on the TV by name (e.g. 'netflix'), or by deep-link URI (e.g. 'https://...'). Returns whether the app was confirmed to launch.
List Google TV devices already paired via the gtv CLI, marking the current one.
Send a remote control key to the TV. Valid keys: power, home, back, enter, vol-up, vol-down, mute, up, down, left, right, play, pause, stop, rewind, fast-forward, guide, info, menu, search, settings, apps, live-tv, netflix, youtube, prime-video, disney-plus, hulu, max, paramount-plus, peacock, apple-tv, google-play, spotify, plex, kodi, and others.
Select which paired device subsequent commands target, by host (e.g. 192.168.1.42) or name.
Type text on the TV (e.g. into a search box). Useful for search queries, login credentials, etc.
gtv_send_key accepts free-form 'key' string with no enum constraint. Description lists valid keys but LLMs frequently hallucinate unlisted values. Should declare enum of KEYS object.
gtv_set_device 'device' parameter lacks format guidance. Description says 'host (IP) or name' but no regex pattern or example. LLMs may pass invalid IPs or malformed hostnames.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). gtv_send_key, gtv_type_text, gtv_launch_app are destructive but unmarked. Agents cannot distinguish safe from unsafe operations.
Output schemas not formally documented. snapshot() function returns structured object but no JSON Schema definition visible in tool registration. LLMs cannot plan downstream operations reliably.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Error messages are generic ('Error: <message>'). No recovery guidance. E.g., 'No paired devices' error should suggest 'Run gtv pair in CLI first' as next step.