appletv-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ATV_JW_COUNTRY | No | Override JustWatch country code (e.g., 'US', 'GB'). Defaults to 'US'. | US |
| ATV_JW_LANGUAGE | No | Override JustWatch language code (e.g., 'en'). Defaults to 'en'. | en |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| atv_remoteA | Press a remote-control button. One of: up, down, left, right, select, menu (back), home, play, pause, play_pause, stop, next, previous, volume_up, volume_down, suspend (sleep), wakeup. Never blind-press buttons to 'confirm a dialog' — you cannot see the TV screen. |
| atv_launch_appC | Launch an app by friendly name (netflix, youtube, disney+, max, hulu, prime video, peacock, paramount+, plex, spotify, tv, music, settings, app store, ...) or by bundle identifier. |
| atv_open_urlA | Open a deep link on the Apple TV; tvOS routes it to the app that claims it. The way to pull up a specific movie or episode directly. Working shapes: https://tv.apple.com/us/show|movie|episode/... (Apple TV+), https://www.disneyplus.com/video/, https://play.hbomax.com/ page/urn:hbo:page:, https://www.hulu.com/watch/, https://watch.amazon.com/detail?gti=, youtube://www.youtube.com/ watch?v= (may show a confirmation a human must accept). Netflix links are unreliable since its Sept 2025 app update. |
| atv_watchA | Find a movie or show and pull it up on the Apple TV. Searches JustWatch, picks the deep link for the requested service (e.g. 'netflix', 'disney+', 'apple tv', 'max', 'hulu', 'prime'), and opens it. Without a service, picks the first subscription-streaming offer. Region: ATV_JW_COUNTRY/ATV_JW_LANGUAGE env vars (default US/en). |
| atv_youtubeA | Play a YouTube video on the TV. Accepts a URL (watch, youtu.be, shorts, embed, live), an 11-character video id, or plain search terms (the top result plays). By default plays full-screen in the system player via AirPlay. Set app=True to open in the YouTube app instead — tvOS may then show an 'Open in YouTube' confirmation that a human must accept with the physical remote. |
| atv_playA | Play any video URL on the TV in the native system player: direct media files (.mp4, .m3u8, .mov, ...) or a video page from any site yt-dlp supports (~1800: Vimeo, Twitch, X, news sites, most embed players). The stream is extracted, then queued on the TV via AirPlay — playback continues after the tool returns. DRM-protected services (Netflix, Disney+, ...) cannot be extracted; use atv_watch or atv_open_url for those. |
| atv_list_appsB | List apps installed on the Apple TV (name + bundle identifier). |
| atv_now_playingC | What is currently playing: title, artist/app, position, and state. |
| atv_typeB | Type text into the focused on-screen text field (e.g. a search box). The field must already be focused on screen. |
| atv_powerB | Power control: 'sleep' (turns off TV/AVR via HDMI-CEC) or 'wake'. |
| atv_devicesA | List paired Apple TVs and which is the default. |
| atv_useC | Set the default Apple TV used when no device is specified. |
| atv_scanA | Scan the network for Apple TVs (name, model, address). |
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 13 tools
Most tools target distinct actions: remote button presses, launching apps, opening deep links, searching for media, playing YouTube, playing arbitrary URLs, typing, power, and device management. Minor overlap exists between atv_remote's suspend/wakeup buttons and atv_power, and between atv_watch and atv_open_url, but the descriptions make the intended use clear.
All tools share the atv_ prefix and use lowercase snake_case, which gives the set a strong sense of consistency. However, naming patterns vary: some are bare verbs (atv_watch, atv_play, atv_type, atv_use) while others are nouns (atv_remote, atv_power, atv_devices), so the style is not perfectly uniform.
13 tools is a well-scoped set for an Apple TV control server. Each tool covers a meaningful part of the device control workflow without redundancy bloating the surface.
The server covers the full practical command surface for an Apple TV: discovering and selecting devices, remote control, app launching, deep-link opening, media search/playback, YouTube playback, typing, now-playing status, and power control. There are no obvious dead ends or missing core operations.