Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tv_playA | 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. Args: platform: "netflix", "youtube", or "spotify". query: Content name (e.g. "Stranger Things", "baby shark", "Ye White Lines"). season: Season number (Netflix series only). episode: Episode number (Netflix series only). title_id: Netflix title ID if already known (skips search). tv_name: Target TV name. Omit for default TV. Examples: tv_play("netflix", "Stranger Things", season=4, episode=7) tv_play("youtube", "baby shark") tv_play("spotify", "Ye White Lines") |
| tv_castA | Cast a Netflix/YouTube/Spotify URL to the TV. Paste any streaming URL. stv parses the platform and content ID automatically. Args: url: Any Netflix, YouTube, or Spotify URL. tv_name: Target TV name. Omit for default TV. Examples: tv_cast("https://youtube.com/watch?v=dQw4w9WgXcQ") tv_cast("https://netflix.com/watch/82656797") tv_cast("https://open.spotify.com/track/3bbjDFVu...") |
| tv_nextA | Play the next episode. Continues from watch history. Args: query: Show name. Omit to continue the most recent Netflix show. tv_name: Target TV name. Omit for default TV. |
| tv_whats_onB | Show trending content on Netflix and/or YouTube. Args: platform: "netflix", "youtube", or omit for both. limit: Number of results per platform (default 10). |
| tv_recommendA | Get personalized recommendations based on watch history + trending. Args: mood: "chill", "action", "kids", "random", or omit for auto. limit: Number of recommendations (default 5). |
| tv_powerA | Turn TV on or off. Args: on: True = turn on, False = turn off. tv_name: Target TV name. Omit for default TV. |
| tv_volumeA | Get or set volume, step up/down, or toggle mute. All in one tool.
Args: level: Volume level 0-100. direction: "up" or "down" for one step. mute: True=mute, False=unmute, None=toggle. tv_name: Target TV name. Omit for default TV. |
| tv_statusA | Get TV status: current app, volume, mute, model, firmware. Args: tv_name: Target TV name. Omit for default TV. |
| tv_screenA | Turn screen on or off (audio continues when off). Args: on: True = screen on, False = screen off (audio continues). tv_name: Target TV name. Omit for default TV. |
| tv_launchA | Launch an app, optionally with a deep link. Use tv_play instead if you have a content name (not ID). Use this when you already have the exact content ID. Args: app: App name (netflix, youtube, spotify) or raw app ID. content_id: Platform-specific content ID for deep linking. tv_name: Target TV name. Omit for default TV. |
| tv_notifyA | Show a toast notification on the TV screen. Args: message: Text to display. tv_name: Target TV name. Omit for default TV. |
| tv_queueA | Manage the play queue. Actions: add, show, play, skip, clear. Args: action: "add", "show", "play", "skip", or "clear". platform: Required for "add". netflix/youtube/spotify. query: Required for "add". Content name. season: For "add" — Netflix season number. episode: For "add" — Netflix episode number. tv_name: For "play" — target TV. Examples: tv_queue("add", "youtube", "Gangnam Style") tv_queue("add", "netflix", "Dark", season=1, episode=1) tv_queue("show") tv_queue("play") tv_queue("clear") |
| tv_historyC | Show recent play history. |
| tv_resolveA | Resolve a content name to its platform ID without playing. Args: platform: netflix, youtube, or spotify. query: Content name. season: Season number (Netflix). episode: Episode number (Netflix). title_id: Netflix title ID if known. Returns: Content ID string. |
| tv_sceneA | Run or list scene presets. Built-in: movie-night, kids, sleep, music. Args: action: "list" or "run". name: Scene name (required for "run"). tv_name: Target TV (for "run"). Examples: tv_scene("list") tv_scene("run", "movie-night") tv_scene("run", "kids", tv_name="kids-room") |
| tv_list_tvsA | List all configured TVs with name, platform, IP, and default status. |
| tv_syncB | Play content on multiple TVs simultaneously (party mode). Resolves once, launches on all targets via asyncio.gather. Args: platform: netflix, youtube, or spotify. query: Content name. tv_names: List of TV names. Or use group. group: TV group name (e.g. "party"). season: Netflix season number. episode: Netflix episode number. title_id: Netflix title ID if known. |
| tv_groupsA | List all TV groups and their members. |
| tv_insightsA | Get viewing insights, screen time, or subscription value analysis. Args: period: "day", "week", or "month". report_type: "full" (formatted report), "screen_time", or "sub_value:platform:cost" (e.g. "sub_value:netflix:17.99"). Examples: tv_insights("week") tv_insights("day", "screen_time") tv_insights("month", "sub_value:netflix:17.99") |
| tv_displayA | Turn the TV into a display — show dashboards, messages, clocks, or any URL. The TV becomes a smart display. HTML is generated and served locally, then opened in the TV's browser. Args: content_type: "message", "clock", "dashboard", "photo", "iframe", or "custom". data: Content-specific data: - message: {"text": "Hello!", "bg": "#000", "color": "#fff"} - clock: {"format": "24h"} or {"format": "12h"} - dashboard: {"title": "Home", "cards": [{"label": "Temp", "value": "22°C"}]} - photo: {"urls": ["http://..."], "interval": 5} - iframe: {"url": "https://...", "fullscreen": true} - custom: {"html": "..."} tv_name: Target TV. Omit for default. port: Local server port (default 8765). Examples: tv_display("message", {"text": "Dinner's ready!"}) tv_display("clock") tv_display("dashboard", {"title": "Home", "cards": [{"label": "Time", "value": "21:30"}]}) tv_display("iframe", {"url": "https://grafana.local/d/stats"}) |
| tv_audioA | Multi-room audio mode — play music with screens off. Actions: play, stop, volume. Args: action: "play", "stop", or "volume". query: Music to play (required for "play"). Defaults to YouTube. platform: "youtube" or "spotify" (for "play"). rooms: List of room/TV names. Omit for all TVs. volume: Volume level (for "volume" action). room: Single room name (for "volume" action). Examples: tv_audio("play", "lo-fi beats") tv_audio("play", "chill vibes", "spotify", rooms=["kitchen", "bedroom"]) tv_audio("stop") tv_audio("volume", room="kitchen", volume=30) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |