mcp-gtv
Controls Google TV devices: send remote keys, type text via IME, list and switch devices, and launch apps.
Launches the Netflix app on Google TV.
Launches the Plex app on Google TV.
Launches the Prime Video app on Google TV.
Launches the Spotify app on Google TV.
Launches the Twitch app on Google TV.
Launches the YouTube app on Google TV.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-gtvTurn up the volume on my TV"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP server for Google TV — control paired devices (keys, text, app launch) via @kud/gtv.
Features • Quick Start • MCP Client Setup • Tools Reference • Development
🌟 Features
🔌 Zero credentials — reads paired devices from
~/.config/gtv/config.json; no API key, no token, no extra setup📺 Device switching — list all paired TVs and switch the active target at any time during a session
🎮 Full remote control — send any key from navigation and media to volume, power, and input
⌨️ IME text input — type arbitrary text into the focused field directly, without keycode mapping
🚀 App launcher — launch Netflix, YouTube, Prime Video, Spotify, and more by name, or pass any raw deep-link URI
🤖 Works everywhere — stdio transport is compatible with Claude Desktop, Claude Code, Cursor, and any MCP client
Related MCP server: AndroidTVMCP
🚀 Quick Start
1. Pair your TV first
Pairing is handled by the gtv CLI, not this server. If you have not paired yet:
npx @kud/gtv-cli pairFollow the PIN prompt on the TV. The paired device is stored in ~/.config/gtv/config.json and shared automatically with this server.
2. Add the server to your MCP client
See MCP Client Setup below.
3. Ask Claude
Once the server is running, ask naturally:
"Turn up the volume on my TV" "Open Netflix" "Go back to the home screen" "Type 'Blade Runner' into the search field"
🔧 MCP Client Setup
The server uses stdio transport and requires no environment variables.
Claude Desktop / Claude Code
Add the following to your mcpServers configuration:
{
"mcpServers": {
"mcp-gtv": {
"command": "npx",
"args": ["-y", "@kud/mcp-gtv"]
}
}
}Claude Desktop — edit ~/Library/Application Support/Claude/claude_desktop_config.json.
Claude Code — add to .mcp.json in your project root, or to ~/.claude/mcp.json for global availability.
Local development
{
"mcpServers": {
"mcp-gtv": {
"command": "npx",
"args": ["tsx", "src/index.ts"]
}
}
}Cursor / other MCP clients
Use the same npx -y @kud/mcp-gtv command with stdio transport. Consult your client's documentation for the exact config location.
🛠 Tools Reference
Tool | Description | Arguments |
| List all paired devices, marking the current one | — |
| Switch the active device by host (IP) or name |
|
| Send a remote key press to the current device |
|
| Type text into the focused field via IME |
|
| Launch an app by name/id or raw deep-link URI |
|
Valid keys for gtv_send_key
home back power up down left right select
play stop next prev fwd rwd
vol-up vol-down mute
menu search sleep wakeup input enter
channel-up channel-down info guide settingsApp catalogue for gtv_launch_app
ID | App |
| Netflix |
| YouTube |
| Prime Video |
| Plex |
| Put.io |
| Arte |
| Disney+ |
| Spotify |
| Twitch |
| Max |
You can also pass any raw deep-link URI directly (e.g. intent://...).
🔧 Development
Project layout
mcp-gtv/
├── src/
│ └── index.ts # MCP server, all tool handlers
├── test/
│ └── tools.test.ts # Unit tests (Node built-in test runner)
├── dist/ # Compiled output (tsup)
├── .mcp.json # Local MCP client config for dev
└── tsup.config.tsScripts
Script | Purpose |
| Compile to |
| Watch mode |
| Run source directly with tsx |
| Run test suite |
| TypeScript type check only |
| Open MCP Inspector for interactive tool testing |
Clone and run
git clone https://github.com/kud/mcp-gtv.git
cd mcp-gtv
npm install
npm run devUse npm run inspect to open the MCP Inspector and exercise the tools interactively without a full client.
Releasing
Releases are tag-driven via GitHub Actions with OIDC Trusted Publishers — no manual npm publish needed:
git tag v0.2.0
git push origin v0.2.0🏗 Tech Stack
Package | Role |
Google TV domain library (device store, key codes, app catalogue, remote connection) | |
MCP server primitives ( | |
Tool input schema validation | |
ESM bundler / compiler | |
TypeScript execution for dev and tests |
Ecosystem
@kud/androidtv-remote ← low-level pairing & remote protocol
↑
@kud/gtv ← domain library (devices, keys, apps)
↑
┌────┴────┐
│ │
mcp-gtv gtv-cli ← MCP surface / terminal surfaceThis server is the MCP client surface. @kud/gtv-cli is the interactive terminal counterpart — and the tool you use to pair devices before this server can control them.
MIT © kud — Made with ❤️
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kud/mcp-gtv'
If you have feedback or need assistance with the MCP directory API, please join our Discord server