Introducing the first unofficial Tapo MCP - control your Tapo devices with AI assistants

Introducing the first unofficial Tapo MCP - control your Tapo devices with AI assistants

Introducing the first unofficial Tapo MCP - control your Tapo devices with AI assistants
Introducing the first unofficial Tapo MCP - control your Tapo devices with AI assistants
20 hours ago - last edited 20 hours ago

Hi everyone, I'm the author of the Tapo library (Rust + Python, ~720 stars on GitHub). I've just released the first version of a new addition to the project: Tapo MCP, an MCP server that exposes your Tapo devices as AI-callable tools and resources.
 

What is MCP?

The Model Context Protocol is an open standard that lets AI assistants (Claude, GPT, etc.) interact with external systems through a well-defined tool/resource interface. Think of it as a universal plugin system for LLMs.


What does Tapo MCP do?

It runs as an HTTP server (Streamable HTTP transport) and exposes three tools and one resource:
 

Tools:

  • list_devices - discovers all Tapo devices on your network, including their capabilities
  • check_device - verifies a device ID matches a given IP
  • set_device_state - applies a capability to a device (e.g. OnOff(true)), with an automatic check_device guard before execution
     

Resource:

  • tapo://devices - a JSON list of discovered devices

Devices and child devices (e.g. individual plugs on a power strip) expose a list of capabilities they support. Currently the OnOff capability is implemented, with more to come.


Architecture

Built on the tapo crate (the same Rust library that powers the Python bindings) and the rmcp SDK. Device discovery works via UDP broadcast on your local network, so the server needs host network access.


Deployment

Ships as a Docker image at ghcr.io/mihai-dinculescu/tapo-mcp:latest. Configuration is entirely via environment variables (TAPO_MCP_USERNAME, TAPO_MCP_PASSWORD, TAPO_MCP_DISCOVERY_TARGET, etc.). Optional bearer token auth is supported via TAPO_MCP_API_KEY. A Kubernetes deployment manifest is included in the README as well.

Quick start:
 

docker run --rm \
  --network host \
  -e TAPO_MCP_USERNAME="you@example.com" \
  -e TAPO_MCP_PASSWORD="your-password" \
  -e TAPO_MCP_DISCOVERY_TARGET="192.168.1.255" \
  ghcr.io/mihai-dinculescu/tapo-mcp:latest


There's also a companion OpenClaw skill for quick integration with OpenClaw agents (npx clawhub install tapo).


What's next

This is an early release. The Rust and Python libraries support a much wider set of device features (energy monitoring, colour control, dimming, etc.) that haven't been surfaced as MCP capabilities yet. I plan to iterate and add more based on community interest.

I'd love to hear your thoughts. Is this useful to you? What capabilities or devices would you like prioritised? Feedback and contributions are very welcome.

  0      
  0      
#1
Options