obsidian-vault/Infra-Network/CURSOR_TAPO_TUYA_MCP.md
2026-09-08 16:05:12 +00:00

6.4 KiB

tags created status
infra
cursor
tapo
tuya
proxmox
mcp
2026-09-08 playbook

Cursor + Tapo + Tuya — playbook (Roger)

Processo capturado em 2026-09-08 para reutilizar nas duas máquinas / dois locais de trabalho.

Regra de ouro: a tomada Tapo alimenta o Proxmox. Nunca tapo_turn_off nessa tomada sem confirmação explícita (três vezes). Ligar (turn_on) só se o host estiver em baixo e o Roger pedir.


1. Cursor em duas máquinas — o que sincroniza

O mesmo login Cursor não replica o histórico de Agent/Chat da IDE. Isso fica local (por pasta/workspace).

Segue a conta Fica na máquina
Plano, modelos, Cloud Agents Histórico Agent/Chat da barra lateral
Regras/MCP de team (dashboard) Checkpoints, side chats
Settings, atalhos, extensões (salvo exportar perfil)
MCP user em %USERPROFILE%\.cursor\mcp.json

O que fazer nas duas máquinas:

  1. Mesma conta Cursor.
  2. Mesmo Git (código + .cursor/rules, AGENTS.md, MCP de projeto).
  3. Copiar à mão C:\Users\mini\.cursor\mcp.json e a pasta C:\Users\mini\.cursor\mcp-servers\ (MCP Tapo/Tuya não viajam com o login).
  4. Conversas que precisam continuar noutro PC: Move to Cloud / Cloud Agents.
  5. Caminhos de pasta diferentes = workspace diferente = histórico diferente.
  6. Remote SSH: o código está no servidor; o chat fica no cliente.

Pedido frequente à Cursor (sync de chats) — sem prazo. Não copiar state.vscdb entre Windows/Mac (hashes e risco de corromper).


2. Dois mundos: Tuya ≠ Tapo

Tuya / Smart Life Tapo (TP-Link)
App Smart Life ou Tuya Smart App Tapo
Como o Cursor fala Cloud API (openapi.tuyaeu.com) LAN (broadcast python-kasa)
MCP tuya tapo
O que controla hoje Interruptor Wi-Fi 1 gang Tomada do Proxmox
QR no iot.tuya.com Sim (ligar conta da app) Não

O QR da Tuya nunca traz tomadas Tapo.


3. Ficheiros e paths (esta máquina Windows)

  • MCP config: C:\Users\mini\.cursor\mcp.json
  • Script Tapo: C:\Users\mini\.cursor\mcp-servers\tapo_mcp.py
  • Venv MCP: C:\Users\mini\.cursor\mcp-servers\.venv\
  • Fix TLS Avast: C:\Users\mini\.cursor\mcp-servers\.venv\Lib\site-packages\sitecustomize.py
  • Pacote extra: truststore no mesmo venv

Credenciais não estão nesta nota. Estão no mcp.json (Tuya Access ID/Key; Tapo ainda PREENCHER).


4. Tuya — estado em 2026-09-08

  • Plataforma: https://eu.platform.tuya.com / https://iot.tuya.com
  • Projeto: cursor-casa
  • Project ID: p1788865726593kjmtjy
  • Data Center: Central Europe → endpoint https://openapi.tuyaeu.com
  • Tipo: Location/Campus
  • Conta Smart Life ligada: rogerio.cezar@gmail.com
  • Modo: Automatic Link
  • IoT Core: plano trial (há botão Upgrade)

Dispositivo ligado à API:

Campo Valor
Nome 1Gang WIFI Switch
Device ID bfaf766aa915197295qju6
Produto CB01-SBL
Categoria kg (interruptor)
Online sim (validado pela API)
Ativação 2024-04-27 14:01:02

Isto NÃO é o Proxmox. Não desliga o host.

Como ligar a conta da app (quando a lista está vazia)

  1. Cloud → Development → lista My Cloud Projects.
  2. cursor-casa não é um link. A janela estreita esconde a coluna Operation. Maximizar, Ctrl+-, ou scroll horizontal. Botão: Open Project.
  3. Aba DevicesLink App AccountAdd App AccountTuya App Account Authorization.
  4. QR: app Smart LifeMe → ícone scan (canto superior direito) → confirmar.
  5. Região da app (Me → Settings → Account and Security → Region) tem de ser Europa.
  6. Depois de ligado: a API /v2.0/cloud/thing/device deixa de devolver COUNT 0.
  7. Em Automatic Link, o texto Link na tabela do dispositivo não é o passo que falta — já está associado.

CAPTCHA de puzzle no login Tuya: humano (não automatizar).


5. Avast Web Shield — MCP Tuya a falhar no arranque

Sintoma: servidor MCP tuya errored, tools tuya_* desaparecem.

Causa: Avast intercepta HTTPS. Certificado apresentado:

CN=*.tuyaeu.com
ISSUER: CN=Avast Web/Mail Shield Root
        OU=generated by Avast Antivirus for SSL/TLS scanning

OpenSSL 3 do Python rejeita (Basic Constraints / unable to get local issuer certificate).

Correção aplicada (esta máquina): sitecustomize.py no venv injeta truststore (Schannel / loja Windows). Com isso: CONNECT True.

Depois de alterar o venv: reiniciar o Cursor ou toggle do servidor MCP em Settings → MCP.

Na segunda máquina, repetir: pip install truststore no venv + o mesmo sitecustomize.py se o Avast (ou outro SSL scanning) estiver ativo.


6. Tapo — estado (validado 2026-09-08 14:05)

MCP Tapo operacional neste PC (venv .venv-tpap). Credenciais da app Tapo no mcp.json (não repetir aqui).

Tomada protegida — Proxmox / Dell R630:

Campo Valor
Alias R630_Dell_Server
Modelo P110
IP LAN 192.168.1.104
Tipo Plug
Estado 2026-09-08 ON (is_on: true)

PROIBIDO: tapo_turn_off em 192.168.1.104 / R630_Dell_Server — corta o Proxmox. Permitido: tapo_list_devices, tapo_get_status, e tapo_turn_on só se o host estiver em baixo e o Roger pedir.

Discovery: TAPO_DISCOVERY_TARGET=192.168.1.255 — só na mesma Wi-Fi. Noutro escritório a lista vem vazia.


7. Checklist rápido (segunda máquina ou reinstall)

  • Login Cursor
  • Copiar mcp.json + mcp-servers (sem meter secrets no Git)
  • Se Avast: truststore + sitecustomize.py
  • Reiniciar Cursor; Settings → MCP: tuya e tapo verdes
  • Tuya: listar devices; deve aparecer o interruptor bfaf766aa915197295qju6
  • Tapo: preencher credenciais; PC na LAN de casa; não desligar Proxmox
  • Git para código/regras de projeto; Cloud Agent se precisares do mesmo chat nos dois PCs

8. Segurança

  • Password da conta Tuya Developer passou por chat nesta sessão — rodar quando possível.
  • Não versionar mcp.json com Access Key / senhas.
  • Access ID/Key Tuya: só no mcp.json local.


9. Boiler Tuya (projeto separado do R630)

  • Pasta vault: Boiler-Tuya-Energy/
  • App: https://boiler.myvexx.com/
  • Live: CT120 /opt/boiler-energy porta 8788, SQLite, estimativa 2,3 kW
  • Nao misturar com Tapo P110 r630.myvexx.com