list_devicesLABSCO SUMMARY
Straight to the unit over UDP, which is why it works with the cloud unreachable.
Two details save time: a target temperature outside the device's configured range is rejected rather than silently clamped, so you find out immediately, and set_xfan and set_light only work on devices where you enabled them in the config — the surface reflects what the hardware actually has.
What it is
A server that speaks the GREE units' native UDP protocol directly on the LAN. It binds each configured unit, polls its state continuously, and exposes read and write tools per device.
What you get
- list_devices — every configured unit with online and bound status and its last-known mode and temperature
- get_device_status and get_room_temperature — full decoded state, and calibrated current temperature
- set_power, set_mode (auto, cool, dry, fan, heat) and set_target_temperature
- set_fan_speed across auto, quiet, low, medium-low, medium, medium-high, high and turbo, mapped down on 3-speed units
- set_oscillation, set_xfan, set_light, set_quiet_mode and set_turbo_mode
- Both encryption schemes auto-detected per device, and IP discovery by MAC when no address is configured
Requirements
Node.js 20 or newer, and the units on the same LAN as the server — it talks UDP to port 7000. A config file listing each device by MAC is required; in HTTP mode a bearerToken is required too, and is ignored over stdio. The server must be restarted to pick up config changes.
Setup effort
Build from source — git clone https://github.com/marcinn2/gree-ac-mcp.git
USE CASES
Setting the room without finding the remote
Name the unit, set the mode and target temperature; setting a mode also powers it on.
Checking whether a unit is reachable at all
List devices and read the online and bound status, with the last-known mode and temperature next to it.
Reading the temperature a unit reports
Get the calibrated current temperature; when the unit has no real sensor and estimation is enabled, the reading is flagged as estimated.
Quieting a bedroom unit at night
Turn quiet mode on — which disables turbo — and switch off the display light on units that support it.
12 tools
Listed in project docs. Your client may show a different list.
get_device_statusget_room_temperatureset_powerset_modeset_target_temperatureset_fan_speedset_oscillationset_xfanset_lightset_quiet_modeset_turbo_modeBEFORE YOU INSTALL
What to know first
Tools you get
12 tools named in the project's documentation.
Requires
Node.js >= 20
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/marcinn2/gree-ac-mcp.git
cd gree-ac-mcp
npm install
npm run build
cp config.example.json config.jsonEdit config.json: set bearerToken and your devices' mac/address.
MCP Clients
Claude Desktop
{
"mcpServers": {
"gree-ac": {
"command": "node",
"args": [
"<YOUR_PATH_TO_GREE_AC_MCP>/dist/index.js",
"--transport",
"stdio",
"--config",
"<YOUR_PATH_TO_CONFIG>"
]
}
}
}HTTP server
npm run start:http -- --config ./config.json --host 0.0.0.0 --port 8080Docker
docker build -t gree-ac-mcp-server .
docker run --rm --network host -v "$(pwd)/config.json:/config/config.json:ro" gree-ac-mcp-server