Tapo MCP

Servidor MCP para descubrir y controlar dispositivos inteligentes TP-Link Tapo mediante Agentes de IA

Documentación

Tapo

License Crates Documentation Crates.io PyPI Python PyPI
Cliente no oficial de la API de Tapo. Funciona con dispositivos inteligentes Tapo de TP-Link. Probado con bombillas (L510, L520, L530, L535, L610, L630), tiras de luz (L900, L920, L930), enchufes (P100, P105, P110, P110M, P115, P125, P125M, TP10), regletas (P300, P304M, P306, P316M), hubs (H100, H110, H200, H500), interruptores (S200B, S200D, S210), sensores (KE100, T100, T110, T300, T310, T315) y cámaras (C120, C210, C220, C225, C325WB, C520WS, TC40, TC70).

Dispositivos Compatibles

Consulta /SUPPORTED_DEVICES.md para ver los dispositivos compatibles y la matriz de funciones.

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?;

Ejemplos

export TAPO_USERNAME=
export TAPO_PASSWORD=
export IP_ADDRESS=

cargo run --example tapo_l530

Consulta todos los ejemplos en /tapo/examples.

Biblioteca Python

Uso

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

await device.on()

Ejemplos

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

Consulta todos los ejemplos en /tapo-py/examples.

Servidor MCP

Un servidor MCP que expone dispositivos Tapo como herramientas y recursos invocables por IA a través del Protocolo de Contexto de Modelo. Consulta /tapo-mcp/README.md para la configuración y el uso.

Proyectos de la Comunidad

  • tapo-rest — un envoltorio REST de esta biblioteca que se puede implementar como servicio o servir como ejemplo avanzado.
  • tapoviz — iluminación reactiva a audio y pantalla para tiras LED L920/L930, con una interfaz web local.

Solución de Problemas

Consulta /TROUBLESHOOTING.md para soluciones a problemas comunes.

Contribuciones

¡Las contribuciones son bienvenidas y alentadas! Consulta /CONTRIBUTING.md.

Patrocinadores

¡Un gran agradecimiento a los patrocinadores de este proyecto!

Créditos

Creado y mantenido por Mihai Dinculescu.

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