Tapo

v0.3.1Cloud Servicesstable

MCP server for discovering and controlling TP-Link Tapo smart home devices via AI Agents

iotl510l530p100p110
Share:
758
Stars
0
Downloads
0
Weekly
0/5

What is Tapo?

Tapo is a Model Context Protocol (MCP) server that allows AI assistants like Claude, Cursor, and VS Code to mcp server for discovering and controlling tp-link tapo smart home devices via ai agents

MCP server for discovering and controlling TP-Link Tapo smart home devices via AI Agents

This server falls under the Cloud Services category on MCPgee, the world's largest MCP server directory with 33,000+ servers.

Features

  • MCP server for discovering and controlling TP-Link Tapo smar

Use Cases

Discover and control TP-Link Tapo smart home devices through AI agents. Automate smart home tasks using natural language commands. Manage multiple smart home devices from a single AI interface.
LicenseMIT
Languagerust
Versionv0.3.1
UpdatedMay 21, 2026
Statushealthy
Maintenanceactive

Works with

ClaudeOpenAIwindowsmacoslinux

Installation

Manual Installation

npx tapo

Configuration

Configuration Details

Config File

claude_desktop_config.json

Performance

Response Metrics

Response Time< 200ms
ThroughputMedium

Resource Usage

Memory UsageLow
CPU UsageLow

How to Set Up and Use Tapo

The Tapo MCP Server exposes TP-Link Tapo smart home devices — bulbs, plugs, power strips, sensors, cameras, and more — as AI-callable tools and resources via the Model Context Protocol. It runs as a local HTTP server using Streamable HTTP transport, discovers devices on your LAN via UDP broadcast, and lets AI agents list, query, and control your entire Tapo ecosystem through natural language. Home automation enthusiasts and developers use it to build voice-like or agent-driven smart home workflows where Claude can turn lights on or off, adjust brightness and color, read sensor data, and capture camera snapshots on demand.

Prerequisites

  • TP-Link Tapo account (email and password used in the Tapo mobile app)
  • Tapo smart home devices connected to your local network
  • Docker (recommended) or the Rust toolchain to build from source
  • The network broadcast address for your LAN (e.g. 192.168.1.255)
  • An MCP client that supports HTTP/SSE transport, such as Claude Desktop with streamable HTTP support
1

Identify your network broadcast address

The server needs a broadcast address to discover Tapo devices via UDP. On most home networks this is the subnet broadcast such as 192.168.1.255. Run `ifconfig` (macOS/Linux) or `ipconfig` (Windows) to confirm your subnet.

ifconfig | grep broadcast
2

Run the MCP server via Docker

The easiest deployment is Docker with --network host so the container can reach Tapo devices via UDP broadcast. Supply your Tapo account credentials and broadcast address as environment variables.

docker run --rm \
  --network host \
  -e TAPO_MCP_USERNAME="[email protected]" \
  -e TAPO_MCP_PASSWORD="your_tapo_password" \
  -e TAPO_MCP_DISCOVERY_TARGET="192.168.1.255" \
  ghcr.io/mihai-dinculescu/tapo-mcp:latest
3

Optional: enable camera snapshots

Camera snapshots require a separate per-camera account configured in the Tapo app under Camera Settings > Advanced Settings > Camera Account. Set the additional env vars when you need snapshot support.

docker run --rm \
  --network host \
  -e TAPO_MCP_USERNAME="[email protected]" \
  -e TAPO_MCP_PASSWORD="your_tapo_password" \
  -e TAPO_MCP_CAMERA_USERNAME="camera_user" \
  -e TAPO_MCP_CAMERA_PASSWORD="camera_pass" \
  -e TAPO_MCP_DISCOVERY_TARGET="192.168.1.255" \
  ghcr.io/mihai-dinculescu/tapo-mcp:latest
4

Optional: secure the server with an API key

Set TAPO_MCP_API_KEY to require a Bearer token on all HTTP requests. Without it the server is unauthenticated and accessible to anyone on the network.

docker run --rm --network host \
  -e TAPO_MCP_USERNAME="[email protected]" \
  -e TAPO_MCP_PASSWORD="your_tapo_password" \
  -e TAPO_MCP_DISCOVERY_TARGET="192.168.1.255" \
  -e TAPO_MCP_API_KEY="mysecrettoken" \
  ghcr.io/mihai-dinculescu/tapo-mcp:latest
5

Configure your MCP client to connect

Point your MCP client to the running server. The default listening address is 127.0.0.1:3000. This entry uses the HTTP URL transport; adjust the URL if you changed TAPO_MCP_HTTP_ADDR.

{
  "mcpServers": {
    "tapo": {
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Tapo Examples

Client configuration

MCP client config entry pointing to the locally running Tapo MCP HTTP server. If TAPO_MCP_API_KEY is set, add an Authorization header in the client settings.

{
  "mcpServers": {
    "tapo": {
      "url": "http://127.0.0.1:3000/mcp"
    }
  }
}

Prompts to try

Natural language commands that map to the list_devices, get_device_state, control_device, and take_snapshot tools.

- "List all my Tapo devices"
- "Turn off the office light"
- "Set the bedroom light to 50% brightness"
- "Change the living room light color to Coral"
- "What's the current temperature in the kitchen?"
- "Take a snapshot from the baby monitor camera"
- "Show me the last 24 hours of humidity readings from the living room sensor"

Troubleshooting Tapo

list_devices returns an empty list

Verify TAPO_MCP_DISCOVERY_TARGET matches your LAN broadcast address. On Docker Desktop for macOS/Windows, --network host is not supported; use -p 3000:3000 but note that UDP broadcast discovery will not work — you may need to specify device IPs manually.

Authentication errors when controlling devices

Double-check TAPO_MCP_USERNAME and TAPO_MCP_PASSWORD match the credentials used in the Tapo mobile app, not your Wi-Fi or router password. Some regions use a different email; try the email shown in the Tapo app's account settings.

take_snapshot returns a permission error

Camera snapshots require TAPO_MCP_CAMERA_USERNAME and TAPO_MCP_CAMERA_PASSWORD, which are set per-camera in the Tapo app under Camera Settings > Advanced Settings > Camera Account. These are different from your TP-Link cloud account credentials.

Frequently Asked Questions about Tapo

What is Tapo?

Tapo is a Model Context Protocol (MCP) server that mcp server for discovering and controlling tp-link tapo smart home devices via ai agents It connects AI assistants to external tools and data sources through a standardized interface.

How do I install Tapo?

Follow the installation instructions on the Tapo GitHub repository. Clone the repo, install dependencies, and add the server config to your AI client.

Which AI clients work with Tapo?

Tapo works with all major MCP-compatible AI clients including Claude Desktop, Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, and Cline.

Is Tapo free to use?

Yes, Tapo is open source and available under the MIT license. You can use it freely in both personal and commercial projects.

Browse More Cloud Services MCP Servers

Explore all cloud services servers available in the MCPgee directory. Each server includes setup guides for Claude, Cursor, and VS Code.

Quick Config Preview

{ "mcpServers": { "tapo": { "command": "npx", "args": ["-y", "tapo"] } } }

Add this to your claude_desktop_config.json or .cursor/mcp.json

Read the full setup guide →

Ready to use Tapo?

Browse our complete directory of 33,000+ MCP servers, read setup guides for your editor, and start building with the Model Context Protocol.

33,000+ ServersFree & Open SourceStep-by-Step Guides