Apple TV MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| apple_tv_statusA | Read current device, power, playback, volume, and keyboard state. media_app is the application associated with currently playing media, not a guaranteed foreground or visible application. Status does not capture the screen; use apple_tv_screenshot to inspect what is currently rendered. |
| apple_tv_capabilitiesA | Return current availability of semantic Apple TV operations. Values are available, unknown, unavailable, or unsupported. This is not a screenshot or UI-hierarchy dump. |
| apple_tv_list_appsA | List launchable applications installed on the Apple TV. |
| apple_tv_powerB | Turn the Apple TV on or off and report the observed power state. |
| apple_tv_open_appA | Launch an installed application by exact bundle ID or exact display name. Matching is deterministic. Typos do not auto-launch a similar application. |
| apple_tv_open_urlA | Ask the Apple TV to open a URL or application deep link. A successful result means the launch request was accepted. It does not prove that a specific screen or item is visible. Deep links are not retried after uncertain delivery because they may start playback or other side effects. |
| apple_tv_pressA | Press a remote button. Navigation is non-idempotent. The press itself has no visual feedback and does not report which UI element has focus. Use apple_tv_screenshot separately when visible UI state needs to be inspected or verified. Uncertain transport failures are not retried automatically. |
| apple_tv_playbackB | Control playback with play, pause, toggle, stop, next, or previous. |
| apple_tv_seekB | Seek to an absolute playback position in seconds. |
| apple_tv_skipA | Skip forward or backward. Relative skips are not retried after uncertain failure. |
| apple_tv_set_textA | Replace text in a focused Apple TV text field. Requires an active virtual keyboard. An empty string clears the field. |
| apple_tv_set_volumeA | Set absolute volume percent when the device supports volume control. |
| apple_tv_adjust_volumeA | Nudge volume up or down. Relative steps are not retried after uncertain failure. |
| apple_tv_screenshotA | Capture the Apple TV screen as one PNG image. The image is point-in-time evidence of what the Apple TV rendered when the capture ran. It may be stale after any later action; capture again to verify. Protected DRM video can appear black while surrounding UI stays visible; a black region alone does not mean the TV is off or playback failed. Requires the optional screen-capture helper; without it the tool reports that screen capture is unavailable. |
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 14 tools
Most tools target clearly distinct actions (power, list_apps, open_app, press, screenshot). There is minor overlap between apple_tv_playback (play/pause/next/previous) and apple_tv_skip (relative forward/back) and between apple_tv_seek (absolute) and apple_tv_skip (relative), but the descriptions explicitly distinguish absolute vs relative and idempotency, so selection is resolvable.
All tools share the apple_tv_ prefix, giving a strong namespace. The suffixes mix verbs (seek, press, skip) with nouns (status, capabilities, power, playback, screenshot), which is slightly less uniform than a strict verb_noun scheme but remains readable and internally consistent.
14 tools is well-scoped for a full device-control surface, with each tool earning its place across power, app launch, navigation, playback, volume, text entry, and screen capture. Nothing feels redundant or padded.
The surface covers the key lifecycle: status/capabilities discovery, power, app listing/launch, playback control, volume, text input, and screenshot verification. Minor gaps exist (e.g. no read-back of focused text field contents or current playback position), but agents can work around these via status/capabilities.