Smart Home Device Control
Controla dispositivos del hogar inteligente y consulta información conectando modelos grandes a las APIs de backend del hogar inteligente.
Documentación
Servidor MCP de Control de Dispositivos para Hogar Inteligente
Este servidor MCP permite que los modelos de lenguaje accedan a la API de backend de hogar inteligente a través del protocolo Model Context Protocol (MCP), habilitando el control de dispositivos y la consulta de información.
Características
- Proporciona interfaces de control de dispositivos, compatibles con la operación de varios dispositivos de hogar inteligente
- Consulta de resúmenes e información detallada de dispositivos
- Documentación integrada y completa de dispositivos que guía a los modelos de lenguaje en el uso correcto de cada tipo de dispositivo
- Soporta configuración de la dirección de la API de backend y el token de autenticación mediante argumentos de línea de comandos
Tipos de dispositivos compatibles y parámetros de control
-
Aire acondicionado (air_conditioner):
- Configurar temperatura (set_temperature)
- Parámetro: temperature (rango: 16-30°C)
- Ejemplo:
control_device(device_id="5", action="set_temperature", parameters={"temperature": 24})
- Control de encendido/apagado (switch)
- Parámetro: state ("on" u "off")
- Ejemplo:
control_device(device_id="5", action="switch", parameters={"state": "on"})
- Configurar temperatura (set_temperature)
-
Refrigerador (refrigerator):
- Configurar temperatura (set_temperature)
- Parámetro: temperature (rango: -20 a 10°C)
- Ejemplo:
control_device(device_id="8", action="set_temperature", parameters={"temperature": 4})
- Control de encendido/apagado (switch)
- Parámetro: state ("on" u "off")
- Ejemplo:
control_device(device_id="8", action="switch", parameters={"state": "on"})
- Configurar temperatura (set_temperature)
-
Luz (light):
- Configurar brillo (set_brightness)
- Parámetro: brightness (rango: 0-100)
- Ejemplo:
control_device(device_id="12", action="set_brightness", parameters={"brightness": 80})
- Control de encendido/apagado (switch)
- Parámetro: state ("on" u "off")
- Ejemplo:
control_device(device_id="12", action="switch", parameters={"state": "on"})
- Configurar brillo (set_brightness)
-
Cerradura (lock):
- Configurar estado de bloqueo (set_lock)
- Parámetro: state ("lock" o "unlock")
- Ejemplo:
control_device(device_id="15", action="set_lock", parameters={"state": "lock"})
- Configurar estado de bloqueo (set_lock)
-
Cámara (camera):
- Control de grabación (set_recording)
- Parámetro: state ("start" o "stop")
- Ejemplo:
control_device(device_id="20", action="set_recording", parameters={"state": "start"})
- Configurar resolución (set_resolution)
- Parámetro: resolution ("720p", "1080p" o "4k")
- Ejemplo:
control_device(device_id="20", action="set_resolution", parameters={"resolution": "1080p"})
- Control de grabación (set_recording)
Descripción de estados de dispositivos
- online: el dispositivo está en línea y funcionando correctamente
- offline: el dispositivo está fuera de línea
- error: el dispositivo presenta un error
Método de uso
Iniciar el servidor
Puede ejecutar el script en un entorno python:
pip install fastmcp requests
python mcp_server.py --backend http://backend-api-address:8000/api/v1 --token <your_auth_token>
También puede descargar el ejecutable binario correspondiente a su plataforma desde Release y ejecutarlo directamente:
mcp_server --backend http://backend-api-address:8000/api/v1 --token <your_auth_token>
El token your_auth_token debe obtenerse después de iniciar sesión en el backend a través de POST /auth/login
Descripción de parámetros:
--backend: dirección de la API de backend, valor predeterminado:http://localhost:8000--token: token de autenticación, utilizado para la autorización de acceso a la API de backend
Prueba de conversación
Puede usar cursor o cline (complemento de VSCode) para conversar con el modelo de lenguaje e invocar el servidor MCP en la conversación.
{
"mcpServers": {
"cpm-smarthome": {
"disabled": false,
"timeout": 60,
"transportType": "stdio",
"command": "python",
"args": [
"/path/to/mcp_server.py",
"--token",
"your_auth_token",
"--backend",
"http://backend-api-address:8000/api/v1"
]
}
}
}
Herramientas disponibles
El servidor proporciona las siguientes herramientas para que las use el modelo de lenguaje:
-
get_config(): obtener la información de configuración actual- Devuelve la dirección de la API de backend y el estado de configuración del token de autenticación
- Nota: el token de autenticación no se devuelve en texto plano
-
get_device_overview(): obtener la información de resumen de todos los dispositivos- Devuelve la lista de información básica de todos los dispositivos en el sistema
- Incluye ID del dispositivo, nombre, estado y otra información
-
get_device_detail(device_id): obtener información detallada de un dispositivo específico- Devuelve la información de estado detallada del dispositivo especificado
- Incluye estado del dispositivo, consumo de energía, tiempo de funcionamiento, registros, etc.
-
control_device(device_id, action, parameters): controlar un dispositivo específico para ejecutar operaciones- Se utiliza para enviar comandos de control al dispositivo especificado
- Consulte la descripción de tipos de dispositivos anterior para conocer los parámetros específicos
-
get_device_type_docs(device_type): obtener la documentación de control del tipo de dispositivo- Si no se especifica un tipo de dispositivo, devuelve el resumen de todos los tipos de dispositivos
- Si se especifica un tipo de dispositivo, devuelve la documentación de control detallada de ese tipo
Interfaces de API de backend
Este servidor se conecta a las siguientes interfaces de API de backend:
- Controlar dispositivo:
POST /devices/{device_id}/control/ - Consultar resumen de dispositivo:
GET /devices/overview/ - Consultar detalle de dispositivo:
GET /devices/{device_id}/detail/
Notas
- Antes de usar cualquier herramienta, asegúrese de que el servidor se haya iniciado con el token de autenticación correcto
- Diferentes tipos de dispositivos admiten diferentes operaciones y parámetros; consulte la documentación del dispositivo para obtener más detalles
- Todas las llamadas a la API requieren un token de autenticación válido
- Las operaciones de control de dispositivos devuelven el resultado de la operación; verifique el campo success devuelto para confirmar si la operación fue exitosa