Tapo MCP

Servidor MCP para descobrir e controlar dispositivos inteligentes TP-Link Tapo por meio de Agentes de IA

Documentação

Tapo

License Crates Documentation Crates.io PyPI Python PyPI
Cliente de API Tapo não oficial. Funciona com dispositivos inteligentes Tapo da TP-Link. Testado com lâmpadas (L510, L520, L530, L535, L610, L630), fitas de LED (L900, L920, L930), tomadas (P100, P105, P110, P110M, P115, P125, P125M, TP10), extensões (P300, P304M, P306, P316M), hubs (H100, H110, H200, H500), interruptores (S200B, S200D, S210), sensores (KE100, T100, T110, T300, T310, T315) e câmeras (C120, C210, C220, C225, C325WB, C520WS, TC40, TC70).

Dispositivos Suportados

Consulte /SUPPORTED_DEVICES.md para ver os dispositivos suportados e a matriz de recursos.

Biblioteca Rust

Uso

Cargo.toml

[dependencies]
tapo = "0.11"

main.rs

let device = ApiClient::new("<tapo-username>", "tapo-password")
    .p110("<device ip address>")
    .await?;

device.on().await?;

Exemplos

export TAPO_USERNAME=
export TAPO_PASSWORD=
export IP_ADDRESS=

cargo run --example tapo_l530

Veja todos os exemplos em /tapo/examples.

Biblioteca Python

Uso

pip install tapo
client = ApiClient("<tapo-username>", "tapo-password")
device = await client.p110("<device ip address>")

await device.on()

Exemplos

cd tapo-py
uv venv # On the initial run only
uv sync --group dev --locked
uv run maturin develop # On the initial run and whenever the Rust code is modified

export TAPO_USERNAME=
export TAPO_PASSWORD=
export IP_ADDRESS=
uv run python examples/tapo_p110.py

Veja todos os exemplos em /tapo-py/examples.

Servidor MCP

Um servidor MCP que expõe dispositivos Tapo como ferramentas e recursos chamáveis por IA por meio do Model Context Protocol. Consulte /tapo-mcp/README.md para configuração e uso.

Projetos da Comunidade

  • tapo-rest — um wrapper REST desta biblioteca que pode ser implantado como serviço ou servir como exemplo avançado.
  • tapoviz — iluminação reativa a áudio e tela para fitas de LED L920/L930, com interface web local.

Solução de Problemas

Consulte /TROUBLESHOOTING.md para soluções de problemas comuns.

Contribuições

Contribuições são bem-vindas e incentivadas! Consulte /CONTRIBUTING.md.

Patrocinadores

Um grande agradecimento aos patrocinadores deste projeto!

Créditos

Criado e mantido por Mihai Dinculescu.

Inspirado por petretiandrea/plugp100 e python-kasa/python-kasa.