mcp-server-tuya
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TUYA_ACCESS_ID | Yes | Tuya Cloud API Access ID | |
| TUYA_CACHE_TTL | No | Device list cache duration (seconds) | 60 |
| TUYA_ACCESS_KEY | Yes | Tuya Cloud API Access Secret | |
| TUYA_API_ENDPOINT | No | API endpoint (Europe: https://openapi.tuyaeu.com, Americas: https://openapi.tuyaus.com, China: https://openapi.tuyacn.com, India: https://openapi.tuyain.com) | https://openapi.tuyaeu.com |
| TUYA_REQUEST_TIMEOUT | No | API request timeout (seconds) | 10 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tuya_list_devicesA | Get a list of all available Tuya devices with their IDs, names, categories, and online status |
| tuya_get_device_statusA | Get the current status of a specific Tuya device by device_id or name (e.g. 'Living Room Light'), including power state, brightness, color, temperature and other properties |
| tuya_get_device_infoA | Get detailed information about a specific Tuya device by device_id or name (e.g. 'Living Room Light'), including capabilities, category, model and firmware version |
| tuya_turn_on_deviceA | Turn on a Tuya device by device_id or name (e.g. 'Living Room Light'). For devices with multiple switches, specify switch_code (switch_1, switch_2, etc.) |
| tuya_turn_off_deviceA | Turn off a Tuya device by device_id or name (e.g. 'Living Room Light'). For devices with multiple switches, specify switch_code (switch_1, switch_2, etc.) |
| tuya_toggle_deviceA | Toggle a Tuya device on/off by device_id or name (e.g. 'Living Room Light'). Turns it on if off, turns it off if on |
| tuya_set_brightnessA | Set the brightness of a Tuya light by device_id or name (e.g. 'Living Room Light'). brightness must be between 0 (minimum) and 1000 (maximum) |
| tuya_set_color_temperatureA | Set the color temperature of a Tuya light by device_id or name (e.g. 'Living Room Light'). temperature must be between 0 (warm white) and 1000 (cool white) |
| tuya_set_colorB | Set the color of a Tuya RGB light by device_id or name (e.g. 'Living Room Light') using HSV values. hue: 0-360, saturation: 0-255, value: 0-255 |
| tuya_send_commandA | Send custom commands to a Tuya device by device_id or name (e.g. 'Living Room Light'). commands must be a JSON string like: [{"code": "switch_1", "value": true}] |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_devices_list | List of all available Tuya devices |
TDQS
Scored across 10 tools
Most tools are clearly distinct (list, get status, get info, turn on/off, toggle, set brightness/color temp/color, send command). However, get_device_status and get_device_info could be confused at first glance, though their descriptions clarify the difference.
All tools follow a tuya_<verb>_<noun> pattern in snake_case, which is consistent. Minor deviation: set_brightness, set_color_temperature, and set_color omit the 'device' suffix seen in most other control verbs, but this does not harm readability.
10 tools is well within the ideal 3-15 range. Each tool covers a distinct operation for smart home control (discovery, status, metadata, on/off, toggling, light settings, and custom commands), so none feel redundant.
The tool surface covers the full lifecycle of device interaction: discovering devices (list), reading state (status/info), controlling power (on/off/toggle), adjusting light properties (brightness, color temp, color), and arbitrary customization via send_command. This is complete for a smart home control server.