mihai-dinculescu/tapo/openclaw-skill
Claude Code and agent skill by mihai-dinculescu/tapo
- community
Checking that the SKILL.md file is still in the repository.
Control TP-Link Tapo smart home devices (lights, plugs, power strips, hubs and their child devices, cameras) via [Tapo MCP](https://github.com/mihai-dinculescu/tapo/tree/main/tapo-mcp).
Install
npx vskill@latest install mihai-dinculescu/tapo/openclaw-skillSKILL.md
Tapo
Control Tapo devices using npx mcporter call tapo.<tool>.
Setup
You need a Tapo MCP server (v0.6.1 or later) running on your network (HTTP transport). Bearer token auth is recommended (and required when the server binds to a non-loopback address). When connecting by LAN IP or hostname, the server's TAPO_MCP_ALLOWED_HOSTS must include that host, or requests get 403 Forbidden.
- Add the Tapo server:
``bash npx mcporter config add tapo http://<TAPO_MCP_IP> \ --transport http \ --header "Authorization=Bearer <YOUR_TOKEN>" \ --scope home ``
- Verify:
``bash npx mcporter list tapo --schema ` You should see list_devices, check_device, get_device_state, control_device, and take_snapshot`.
See references/setup.md for the full walkthrough, config management, and troubleshooting.
Tools
list_devices
List all Tapo devices on the network.
Returns discovered_at, the time the discovery that produced the list started, and each device's id, name, model, ip, set_capabilities, get_capabilities, and children (for power strips and the H100, H110, H200 and H500 hubs). The server refreshes the list in the background (every 10 minutes by default), so the call returns immediately. Until a discovery has succeeded after the server starts, it fails with "Device discovery unavailable" and the message says why: either the first discovery is still running, so wait a little longer than TAPO_MCP_DISCOVERY_TIMEOUT seconds and retry, or every discovery so far has failed, in which case the message carries the reason and the retry interval, so report the reason instead of retrying. A device that joined the network after discovered_at appears after the next refresh, which is at most TAPO_MCP_DISCOVERY_INTERVAL seconds (600 by default) away. A device that answered the discovery but could not be logged in to is listed under errors with its ip and the reason. A hub or power strip whose children could not be read stays under devices with an empty children list, and the reason is under errors with the parent's ip. A Tapo device the server cannot control is listed under unsupported. When the most recent refresh failed, the result also includes refresh_error with the reason, and the devices are the ones from the last successful discovery.
check_device
Verify a device ID matches at a given IP.
get_device_state
Get a device's current state. Checks the capability's parameters, then automatically runs check_device.
Energy dates are read in the plug's time zone, so the entries match the Tapo app. Hours, days and months that have not started yet are left out.
control_device
Control a device by applying 1 to 12 set capabilities, in order. The count and every value are checked before the device is contacted; then it automatically runs check_device, and a capability the device does not support fails the call before any capability is applied. Brightness, Color, HueSaturation and ColorTemperature also turn the device on if it is off. When the device returns an error partway through, the error says how many capabilities were applied and which one failed.
take_snapshot
Capture a still JPEG snapshot from a Tapo camera (~640x360), with the device id, capture time and size as text. When the server has TAPO_MCP_PUBLIC_URL set, the text also includes a url to the image that is valid for 5 minutes; share it with the user or download the file. Automatically runs check_device first. Requires TAPO_MCP_CAMERA_USERNAME and TAPO_MCP_CAMERA_PASSWORD configured on the server (Camera Settings > Advanced Settings > Camera Account in the Tapo app).
Usage rules
- Always run
list_devicesfirst if you don't have a recent device list. It returns immediately from the server's background discovery, so there is no need to cache it. If a device the user expects is missing, checkerrors,unsupported,discovered_atandrefresh_erroras described underlist_devicesbefore concluding it is gone. A device that joined afterdiscovered_atshows up withinTAPO_MCP_DISCOVERY_INTERVALseconds; do not polllist_devicesin a loop. - Use the device
idandipfrom the list — never guess or hardcode these values. - For power strips (e.g. P304M) and the H100, H110, H200 and H500 hubs, children have their own
id. Use the childidwith the parent'sip.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingtapo-mcp/openclaw-skill/SKILL.md
Popularity
- Repository stars
- 760
- Repository forks
- 79
- 7-day trend score
- 33
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 15 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/mihai-dinculescu/tapo/openclaw-skill)