{
  "markdown": "# Tapo\n\n\n[![License][license_badge]][license]\n[![Crates][crates_badge]][crates]\n[![Documentation][crates_documentation_badge]][crates_documentation]\n[![Crates.io][crates_downloads_badge]][crates]\n[![PyPI][pypi_badge]][pypi]\n[![Python][pypi_versions_badge]][pypi]\n[![PyPI][pypi_downloads_badge]][pypi]\\\nUnofficial Tapo API Client. Works with TP-Link Tapo smart devices. Tested with light bulbs (L510, L520, L530, L535, L610, L630), light strips (L900, L920, L930), plugs (P100, P105, P110, P110M, P115), power strips (P300, P304M, P306, P316M), hubs (H100), switches (S200B, S200D, S210), sensors (KE100, T100, T110, T300, T310, T315) and cameras (C210, C220, C225, C325WB, C520WS, TC40, TC70).\n\n[license_badge]: https://img.shields.io/crates/l/tapo.svg\n[license]: https://github.com/mihai-dinculescu/tapo/blob/main/LICENSE\n[crates_badge]: https://img.shields.io/crates/v/tapo.svg?logo=rust&color=F75101\n[crates]: https://crates.io/crates/tapo\n[crates_documentation_badge]: https://img.shields.io/docsrs/tapo.svg?logo=rust&color=F75101\n[crates_documentation]: https://docs.rs/tapo\n[crates_downloads_badge]: https://img.shields.io/crates/d/tapo?logo=rust&label=downloads&color=F75101\n\n[pypi_badge]: https://img.shields.io/pypi/v/tapo.svg?logo=pypi&color=00ADD4\n[pypi]: https://pypi.org/project/tapo\n[pypi_versions_badge]: https://img.shields.io/pypi/pyversions/tapo.svg?logo=python&color=00ADD4\n[pypi_downloads_badge]: https://img.shields.io/pypi/dm/tapo?logo=python&color=00ADD4\n\n## Supported Devices\n\nSee [/SUPPORTED_DEVICES.md][supported_devices] for the supported devices and feature matrix.\n\n## Rust Library\n\n### Usage\n\n> Cargo.toml\n```toml\n[dependencies]\ntapo = \"0.9\"\n```\n\n> main.rs\n```rust\nlet device = ApiClient::new(\"<tapo-username>\", \"tapo-password\")\n    .p110(\"<device ip address>\")\n    .await?;\n\ndevice.on().await?;\n```\n\n### Examples\n\n```bash\nexport TAPO_USERNAME=\nexport TAPO_PASSWORD=\nexport IP_ADDRESS=\n\ncargo run --example tapo_l530\n```\n\nSee all examples in [/tapo/examples][examples].\n\n## Python Library\n\n### Usage\n\n```bash\npip install tapo\n```\n\n```python\nclient = ApiClient(\"<tapo-username>\", \"tapo-password\")\ndevice = await client.p110(\"<device ip address>\")\n\nawait device.on()\n```\n\n### Examples\n\n```bash\ncd tapo-py\nuv venv # On the initial run only\nuv sync --group dev --locked\nuv run maturin develop # On the initial run and whenever the Rust code is modified\n\nexport TAPO_USERNAME=\nexport TAPO_PASSWORD=\nexport IP_ADDRESS=\n```\n\n```bash\nuv run python examples/tapo_p110.py\n```\n\nSee all examples in [/tapo-py/examples][examples-py].\n\n## MCP Server\n\nAn MCP server that exposes Tapo devices as AI-callable tools and resources via the [Model Context Protocol](https://modelcontextprotocol.io/). See [/tapo-mcp/README.md][tapo_mcp] for setup and usage.\n\n## Community Projects\n\n- [tapo-rest][tapo_rest] — a REST wrapper of this library that can be deployed as a service or serve as an advanced example.\n\n## Troubleshooting\n\nSee [/TROUBLESHOOTING.md][troubleshooting] for solutions to common issues.\n\n## Contributing\n\nContributions are welcome and encouraged! See [/CONTRIBUTING.md][contributing].\n\n## Sponsors\n\nA big thank you to the sponsors of this project!\n\n- [abler98][sponsor_abler98]\n- [nathanja][sponsor_nathanja]\n- [santiago-salas-v][sponsor_santiago_salas_v]\n\n## Credits\n\nInspired by [petretiandrea/plugp100][inspired_by].\n\n[supported_devices]: https://github.com/mihai-dinculescu/tapo/blob/main/SUPPORTED_DEVICES.md\n[examples]: https://github.com/mihai-dinculescu/tapo/tree/main/tapo/examples\n[examples-py]: https://github.com/mihai-dinculescu/tapo/tree/main/tapo-py/examples\n[tapo_mcp]: https://github.com/mihai-dinculescu/tapo/tree/main/tapo-mcp\n[tapo_rest]: https://github.com/ClementNerma/tapo-rest\n[troubleshooting]: https://github.com/mihai-dinculescu/tapo/blob/main/TROUBLESHOOTING.md\n[contributing]: https://github.com/mihai-dinculescu/tapo/blob/main/CONTRIBUTING.md\n[sponsor_abler98]: https://github.com/abler98\n[sponsor_nathanja]: https://github.com/nathanja\n[sponsor_santiago_salas_v]: https://github.com/santiago-salas-v\n[inspired_by]: https://github.com/petretiandrea/plugp100\n",
  "bytes": 4113,
  "sha": "5c1e260c5f161e5a74c5cac3e800e51a29d251ef73ce2933ab77601c307d8667",
  "repo_slug": "mihai-dinculescu/tapo",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_mihai_dinculescu_tapo_mcp_000bbbfe/readme"
}