LG Washer MCP Server
Servidor MCP para Lavadora LG
Un servidor MCP que permite a un asistente de IA supervisar y controlar una lavadora LG ThinQ a través de la API oficial ThinQ Connect de LG.
Se comunica con la API REST directamente a través de HTTP (sin SDK de LG). Su Token de Acceso Personal (PAT) se utiliza como token de portador.
Cómo funciona la API (la versión corta)
Autenticación:
Authorization: Bearer <PAT>. Sin flujo OAuth.Región: su código de país elige el servidor. India (
IN) →https://api-kic.lgthinq.com.Cada solicitud también envía
x-country,x-client-id(un UUID4 que usted elige),x-api-key(una clave pública),x-message-id(nuevo por solicitud),x-service-phase: OP.Endpoints:
GET /devices,GET /devices/{id}/profile,GET /devices/{id}/state,POST /devices/{id}/control.
Related MCP server: SmartThings MCP Server
Herramientas expuestas
Herramienta | Qué hace |
| Encuentre el |
| Vea las propiedades/valores controlables para su modelo. |
| Estado en vivo: ¿en funcionamiento?, ciclo, tiempo restante. |
|
|
| Envíe un JSON de control arbitrario para propiedades específicas del modelo. |
⚠️ La mayoría de las lavadoras LG solo aceptan un START remoto cuando la máquina está físicamente configurada en "Inicio remoto" con un ciclo ya cargado. La API reanuda/inicia un ciclo preseleccionado; normalmente no puede elegir un programa de lavado desde cero.
Configuración
uv sync
cp .env.example .env # then edit .env with your PATEjecutarlo
La configuración se lee de las variables de entorno (THINQ_PAT, THINQ_COUNTRY, THINQ_CLIENT_ID). El servidor habla MCP a través de stdio.
THINQ_PAT=xxx THINQ_COUNTRY=IN uv run washer-mcpConectar con Claude Desktop / Claude Code
Añada a su configuración de MCP (por ejemplo, claude_desktop_config.json):
{
"mcpServers": {
"lg-washer": {
"command": "uv",
"args": ["--directory", "/Users/sushmanagaraj/c_drive/Coding/LG", "run", "washer-mcp"],
"env": {
"THINQ_PAT": "your-pat-here",
"THINQ_COUNTRY": "IN",
"THINQ_CLIENT_ID": "your-uuid4-here"
}
}
}
}Para Claude Code específicamente:
claude mcp add lg-washer --env THINQ_PAT=xxx --env THINQ_COUNTRY=IN -- uv --directory /Users/sushmanagaraj/c_drive/Coding/LG run washer-mcpPrueba manual rápida (sin necesidad de cliente MCP)
uv run python -c "import asyncio, os; from washer_mcp.thinq_client import ThinQClient; \
print(asyncio.run(ThinQClient(os.environ['THINQ_PAT'],'IN',os.environ.get('THINQ_CLIENT_ID','test-id')).list_devices()))"Available Tools
5 toolscontrol_washerA
Start, stop, power off, or wake the washer.
operation must be one of: START, STOP, POWER_OFF, WAKE_UP.
location is the device zone from the profile (default "MAIN"). Location-
scoped washers reject commands that omit it (API error code 2207).
Note: most LG washers only accept a remote START when the machine has been physically set to "Remote Start" and a cycle is already selected/loaded. The API pauses/resumes or starts a pre-selected cycle; it generally cannot pick a wash program from scratch. Call get_washer_profile first to confirm the model supports the operation and to see the exact accepted values.
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | MAIN | |
| device_id | Yes | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
control_washer_rawA
Escape hatch: send an arbitrary control payload to the washer.
control_json is a JSON object matching the shape shown in the device
profile, e.g. {"operation": {"washerOperationMode": "START"}}. Use this for
model-specific properties (timers, remote-control toggles, etc.) that the
higher-level tools do not cover.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | ||
| control_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_washer_profileA
Get a washer's capability profile: the exact controllable properties and their allowed values for THIS specific model. Consult this before controlling, because property names/values vary by model.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
get_washer_statusA
Get the washer's current live state: whether it is running, the current cycle/run state, and remaining time.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
list_devicesA
List all LG ThinQ devices on the account. Use this to find the washer's deviceId, which every other tool needs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
control_washer - First observed
control_washer_raw - First observed
get_washer_profile - First observed
get_washer_status - First observed
list_devices
TDQS
Scored across 5 tools
Most tools are clearly distinct: listing devices, fetching profile, fetching status, and sending commands all serve different purposes. The only mild overlap is between control_washer and control_washer_raw, but the descriptions make the intended boundary clear.
All tools follow a clean snake_case verb_noun pattern: list_devices, get_washer_profile, get_washer_status, control_washer, control_washer_raw. The naming is consistent and predictable.
Five tools is well-scoped for an LG washer MCP server: discovery, model introspection, status, high-level control, and a raw escape hatch. Each tool earns its place without adding redundancy.
The server covers the core washer workflow: find the device, inspect its capability profile, read live status, and issue commands. The raw control tool helps fill model-specific gaps, though common operations like pause/resume are not explicitly exposed beyond the raw payload path.
Maintenance
Related MCP Connectors
Control your Tesla from your AI assistant - climate, charging, access, and security.
AI for your car: check charge, start climate, lock/unlock, open trunk via Tesla Fleet API. OAuth.
- DNS-DATA RemoteDeprecatedcom.dns-data
Connect AI assistants to authorized Windows and macOS devices for files, commands, and management.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides integrated control capabilities for LG ThinQ devices including status monitoring, device control, and profile information through a Model Context Protocol server.433 PyPI33Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables control and monitoring of SmartThings smart home devices through natural language, supporting switches, sensors, refrigerators, and other IoT devices with real-time status queries and command execution.-
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to control DeLonghi ECAM espresso machines over a local network, including brewing beverages, monitoring status, and managing machine settings.27 PyPI1MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to monitor a Hyundai, Kia, or Genesis vehicle's charge, fuel, range, locks, and location, and optionally pre-heat the cabin, lock or unlock doors, and start or stop charging. Reads come from cached Bluelink data with rate-limited refreshes, and all write commands are disabled by default.62MIT