tv-quarto
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
tv-quarto
Transforma uma TV em terceira tela do PC (tela estendida, não espelhamento) pela rede, com um botão na área de trabalho e um servidor MCP para o Claude controlar tudo por linguagem natural.
Turn a TV into an extended (not mirrored) 3rd monitor of a Windows PC over the LAN, with a one-click desktop app and an MCP server so Claude can drive it.
PC Windows Box Android (UniTV) TV (Hisense VIDAA)
┌──────────────────────────────┐ rede ┌────────────────────┐ HDMI ┌──────────────────┐
│ Virtual Display Driver │ (HEVC) │ Moonlight │─────▶│ entrada HDMI │
│ └ monitor virtual (3ª tela) │──────────▶ │ decodifica vídeo │ │ │
│ Sunshine (encoder da GPU) │ └────────▲───────────┘ └────────▲─────────┘
│ app.py / server.py (MCP) ────┼──── ADB (rede) ─────┘ │
│ ─────┼──── MQTT (vidaa-control): liga, entrada, volume ┘
└──────────────────────────────┘O monitor virtual só existe durante a transmissão: o Sunshine o liga quando a sessão começa e o desliga quando ela termina. Fora disso o Windows continua com as telas normais.
O áudio fica no PC (fone/caixas). Ele não é enviado para a TV.
Resoluções 1080p, 1440p e 4K, que se trocam pelo app.
Hardware testado
Peça | Modelo usado | Observação |
PC | Windows 11, GPU AMD RX 6750 XT | Qualquer GPU com encoder suportado pelo Sunshine (NVENC, AMF, QuickSync) |
Box | UniTV V10 (Allwinner H616, Android 10, 1 GB) | Qualquer Android com Moonlight. As partes de saída HDMI são específicas da Allwinner |
TV | Hisense com VIDAA | Liga, desliga e troca de entrada via MQTT. Sem Hisense, o resto funciona e você troca a entrada no controle |
Related MCP server: Termux MCP Server
Pré-requisitos
Windows 10/11 com
wingete Python 3.10+.O PC e o box na mesma rede local. Cabo no PC é recomendado; no box, cabo ou Wi-Fi de 5 GHz.
No box: Opções do desenvolvedor ativadas, com Depuração USB e Depuração ADB pela rede. Em geral: Configurações → Sobre → clique 7× em "Versão".
Instalação
1. Programas no PC
winget install LizardByte.Sunshine
winget install VirtualDrivers.Virtual-Display-Driver
winget install Google.PlatformToolsAbra https://localhost:47990 e crie o usuário do Sunshine.
2. Projeto
git clone https://github.com/<seu-usuario>/tv-quarto.git
cd tv-quarto
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
copy config.example.json config.jsonEdite o config.json:
Campo | O que é |
| IP do box + |
| IP da TV |
| Entrada da TV onde o box está ligado ( |
| MAC da TV. Pode deixar |
| ID do PC no Sunshine. Pode deixar |
| Caminho do |
|
|
3. Monitor virtual + Sunshine
Num PowerShell como administrador:
powershell -ExecutionPolicy Bypass -File scripts\setup-pc.ps1O script instala o driver do monitor virtual e configura o sunshine.conf. Ele mantém suas outras configurações e faz backup em sunshine.conf.bak. Também desliga o envio de áudio, aponta o Sunshine para o monitor virtual e o liga e desliga junto com a sessão. Pode rodar de novo sem problema.
4. Moonlight no box
adb connect <ip-do-box>:5555 # aceite "Sempre permitir deste computador" na TVBaixe o APK do Moonlight Android e instale com adb install. Depois:
Abra o Moonlight, clique no PC e digite o PIN mostrado na aba PIN do painel do Sunshine.
Em Configurações → Mudar configurações do HEVC, escolha Prefira HEVC. O Moonlight não confia no decodificador HEVC da Allwinner e cai para H.264, que nesse chip dá tela verde em 4K e borrões em 1080p.
5. Parear a TV Hisense
.venv\Scripts\python pair_hisense.pyA TV mostra um PIN de 4 dígitos, válido por cerca de 1 minuto. Digite-o no terminal. Se o PIN não aparecer, rode de novo: às vezes ele só aparece na segunda tentativa.
6. Atalho na área de trabalho
powershell -ExecutionPolicy Bypass -File scripts\create-shortcut.ps1Uso
App da área de trabalho
O atalho TV do quarto abre uma janela com:
Ligar na TV / Desligar terceira tela: liga a TV, troca a entrada, acorda o box, abre a sessão no Moonlight e ajusta a resolução do monitor virtual. Desligar encerra a sessão, e o monitor virtual some.
Resolução: 1080p, 1440p ou 4K. Se estiver transmitindo, ele reinicia a transmissão com a nova resolução (cerca de 30 a 40 s).
A tela da TV fica à direita da principal. Arraste janelas para lá.
MCP (Claude Code)
Copie .mcp.example.json para .mcp.json, ajuste os caminhos e abra o Claude Code nesta pasta. Exemplos: "liga a TV como terceira tela", "coloca em 1440p", "abaixa o volume da TV para 10", "tira um print da TV".
Ferramenta | Função |
| Liga e desliga a terceira tela |
|
|
| Estado da TV, do box, da transmissão e do monitor virtual |
| Print do que o box está mostrando |
| Controle do box |
| Controle da TV |
| Pareamento da TV |
Resoluções e desempenho
Medido com uma animação de 64 fps no monitor virtual, contando os quadros exibidos pelo box (dumpsys SurfaceFlinger --latency):
Perfil | Monitor virtual | Saída HDMI do box | Quadros na TV |
1080p | 1920×1080 @ 60 | 1080p60 | 60 fps |
1440p | 2560×1440 @ 60 | 2160p60 (o box amplia) | ~50 fps |
4K | 3840×2160 @ 60 | 2160p60 | ~43 fps |
Nos perfis acima de 1080p, o limite é o decodificador do H616. Um box mais forte (Chromecast 4K, Fire TV 4K Max, Shield) deve manter 60 fps.
Detalhes técnicos
A resolução do monitor virtual não segue o cliente. As opções
dd_*do Sunshine rodam antes doglobal_prep_cmdligar o monitor e falham comDevicePrepFailed. Por isso oserver.pydefine o modo comChangeDisplaySettingsExWlogo depois que a sessão começa.4K60 escondido no box Allwinner. O menu do UniTV só lista 4K até 30 Hz, mas o modo 34 (2160p60) é suportado. O
server.pygrava o modo direto no serviçodisplay_output(com.softwinner.IDisplayOutputManager), com os códigos de binder tirados doDisplayDaemon.jar:Código
Operação
4
ler o modo atual
5
gravar um modo
11
verificar se um modo é suportado
adb shell service call display_output 5 i32 0 i32 34O AUTO do menu e o
setprop persist.disp.*não servem: o driver volta ao modo gravado no boot.Fechar a sessão é diferente de desconectar. Sair do stream com "Voltar" deixa a sessão aberta no PC, e o monitor virtual continua lá. O
stop_streamusa "Sair da Sessão" no Moonlight.Automação do Moonlight. É feita pela interface, com
uiautomator. Os textos procurados estão em português (pt-BR) com alternativa em inglês. Em outro idioma, ajusteserver.py.vidaa-controlescreve no stdout, o que corromperia o canal stdio do MCP. Por isso todas as chamadas passam porquiet().
Segurança e avisos
ADB pela rede dá controle total do box a qualquer um na sua rede local. Use apenas em rede de confiança.
vidaa-controlé um projeto não oficial: usa o certificado do app VIDAA e um protocolo obtido por engenharia reversa. Uma atualização de firmware da TV pode quebrar o controle.Os comandos de binder e os modos HDMI foram testados em um UniTV V10 (Allwinner H616). Em outro aparelho, confirme antes com o código 11 (verificar suporte).
Use por sua conta e risco.
Créditos
Sunshine · Moonlight · Virtual Display Driver · vidaa-control · MCP Python SDK
Licença
This server cannot be deployed
Maintenance
Related MCP Connectors
Deploy sims to any screen. Control your displays with Claude.
Deploy sims to any screen. Control your displays with Claude.
Control Android TV from any AI. 38 MCP tools: playback, recap, recommend, smart-home, schedules.
Give your AI agent the power to cast to your home TV and control an interactive canvas. By ArdaBot.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables Claude Code to directly control Android emulators or Windows windows for MaaFramework pipeline development, with features like screenshot with grid, template cropping, and real-time recognition testing.MIT
- FlicenseAqualityFmaintenanceEnables remote control of Android phones via Claude Desktop, offering 45+ tools including UI automation for app interactions.5716-
- FlicenseNot gradedqualityDmaintenanceTurns any Claude-compatible AI chat into a universal remote for Android TV and Google TV via a cloud relay, enabling natural language control of your TV from anywhere.-
- AlicenseAqualityAmaintenanceEnables AI agents to control a set-top streaming device and visually navigate its interface, including opening apps, managing playback, entering text, adjusting volume and power, sending remote input, and capturing screenshots for observation and verification.1422 PyPIMIT