Smartlife Tuya MCP Server
README.md
# Smartlife Tuya MCP Server
Local MCP server exposing Tuya-based temperature/humidity sensors (managed via
the SmartLife app) to an MCP client. Devices, names, and capabilities are all
discovered live from the linked Tuya account — nothing is hardcoded.
## Tools exposed
- `list_devices` — every sensor linked to the account, with id/name/online status
- `get_capabilities(device_id)` — the data points a device reports (code, type, unit, range), read live from Tuya
- `get_reading(device_id)` — latest reading for one sensor; flagged `stale: true` if it hasn't reported in over an hour or is offline
- `get_all_readings` — latest reading for every sensor in one call
## Setup
1. Clone/copy this folder to the target machine.
2. Create a venv and install dependencies:
```
./setup.sh
```
(On Windows, without the script: `python -m venv venv && venv\Scripts\pip install -r requirements.txt`)
3. `setup.sh` copies `.env.example` to `.env` if one doesn't exist yet. Fill it in:
- `TUYA_ACCESS_ID` / `TUYA_ACCESS_SECRET` — from your Tuya IoT Platform Cloud project
- `TUYA_ENDPOINT` — must match your project's Data Center (US `openapi.tuyaus.com`,
EU `openapi.tuyaeu.com`, China `openapi.tuyacn.com`, India `openapi.tuyain.com`).
A mismatch here is the most common setup failure — auth will still succeed, but
every device call returns a permission/"data center suspended" error.
4. Sanity check — should start with no errors and then hang waiting on stdio (Ctrl+C to stop):
```
./venv/bin/python server.py
```
`.env` holds live API credentials and is gitignored — never commit it.
## Wiring into Hermes Agent
Add to `~/.hermes/config.yaml`:
```yaml
mcp_servers:
smartlife-tuya:
command: "/path/to/smartlife_mcp/venv/bin/python"
args: ["/path/to/smartlife_mcp/server.py"]
tools:
include: ["list_devices", "get_capabilities", "get_reading", "get_all_readings"]
```
The `tools.include` allowlist isn't strictly needed (the server only exposes
these four read-only tools anyway) but matches Hermes's own recommendation to
start with the smallest tool set possible.
## Rotating credentials
Regenerate the Access Secret from the Tuya IoT Platform → your Cloud project →
Overview, then update `.env` on every machine running this server.
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues