De hecho, para algunos clientes MCP (móvil, o como el cliente de voz que mostraste antes) creo que una versión accesible a través de Internet es necesaria.
Gracias por la información, voy a intentar implementarlo también, puede ser realmente genial tener acceso local para los que empiezan en Gladys.
¡Vaya! ¡Pierre-Gilles es muy rápido, gracias! Lo voy a integrar también.
Acabo de subir la autenticación local, la imagen está en proceso de construcción. Para acceder al MCP ahora hay que generar una clave API desde la interfaz de integración y luego configurar su cliente MCP para enviar un encabezado Authorization con el valor de la clave generada.
Por ejemplo, para usarlo a través de GitHub Copilot en VS Code, aquí está la configuración
A continuación, ingrese esta URL en su cliente MCP https://api.gladysgateway.com/v1/api/mcp/<OPEN_API_KEY> reemplazando <OPEN_API_KEY> por la clave recién generada.
Por ejemplo, en Le Chat de Mistral, vaya a Inteligencia → Conectores
De hecho, puede que no ocurra inmediatamente, hay dos cosas a tener en cuenta. La primera es que en Gladys el esquema se genera al iniciar el servicio, podríamos añadir un botón « Recargar » como hicimos para HomeKit para generar el esquema de nuevo si el usuario acaba de añadir un nuevo dispositivo. Para el lado del cliente, depende de la implementación, en general lo que he notado es que el cliente verifica el esquema al iniciar + si modificas la configuración del MCP en tu cliente y la guardas.
Normalmente creo que he puesto todos los tipos de sensores, pero puede que falten algunos.
Voy a aclarar eso, son todos los sensores + los dispositivos controlables compatibles (hoy en día, lámparas, interruptores).
¿Podrías darme la categoría y el tipo de característica asociada a esta funcionalidad, por favor? Lo voy a verificar.
Desde hace poco estoy aprendiendo en YouTube cómo crear un agente de IA con N8N. Si he entendido bien el funcionamiento del MCP, este servidor me permitiría conectar Gladys a mi agente de IA y hablar con él para lanzar escenas, obtener información de los sensores y controlar mis enchufes y luces sin pasar por Google Home o Alexa, que son muy limitados.
He subido los cambios solicitados. Para información, también he realizado una pequeña actualización para encontrar el dispositivo correcto solicitado por el usuario. Si el nombre exacto no existe, se realiza una verificación de nombres cercanos con la distancia de Levenshtein. En la mayoría de los casos no debería ser necesario, ya que todo el esquema se basa en enumeraciones, pero algunos clientes MCP no parecen tenerlo en cuenta. Tras una pequeña prueba con 11ai que presentaste antes, parece que no gestiona correctamente las énums y estos pequeños cambios, aunque no sean perfectos, deberían ayudar un poco (una mejora por parte de 11ai sería mucho más eficaz).
Acabo de actualizar mi Gladys, y el servicio tiene un error de inicio en mi entorno de producción. Al parecer debido a un dispositivo que no tendría una habitación (supongo).
compose-gladys-1 | 2025-11-03T16:18:35+0100 <info> index.js:27 (Object.start) Iniciando el servicio MCP
compose-gladys-1 | 2025-11-03T16:18:35+0100 <warn> service.start.js:44 (Service.start) No se puede iniciar el servicio mcp TypeError: No se puede leer propiedades de null (lectura 'selector')
compose-gladys-1 | at /src/server/services/mcp/lib/buildSchemas.js:41:28
compose-gladys-1 | at Array.forEach (<anonymous>)
compose-gladys-1 | at MCPHandler.getAllResources (/src/server/services/mcp/lib/buildSchemas.js:28:17)
compose-gladys-1 | at MCPHandler.createServer (/src/server/services/mcp/lib/createServer.js:26:4)
compose-gladys-1 | at Object.start (/src/server/services/mcp/index.js:29:5)
compose-gladys-1 | at Service.start (/src/server/lib/service/service.start.js:33:7)
compose-gladys-1 | at start (/src/server/api/controllers/service.controller.js:22:21)
No logro encontrar el dispositivo en cuestión, voy a mirar en la base de datos a ver si lo encuentro
Edición:
Es el dispositivo vinculado al servicio Enedis el que causa el problema, lo voy a eliminar por ahora, no lo uso
2025-11-03T15:04:03+0100 <warn> service.start.js:44 (Service.start) No se puede iniciar el servicio mcp TypeError: No se pueden leer propiedades de null (lectura 'selector')
at /src/server/services/mcp/lib/buildSchemas.js:41:28
at Array.forEach (<anonymous>)
at MCPHandler.getAllResources (/src/server/services/mcp/lib/buildSchemas.js:28:17)
at MCPHandler.createServer (/src/server/services/mcp/lib/createServer.js:26:4)
at Object.start (/src/server/services/mcp/index.js:29:5)
at Service.start (/src/server/lib/service/service.start.js:33:7)