Ubidots MCP Server

Servidor MCP que expone datos, entidades y agregaciones de Ubidots IoT para asistentes de IA.

Documentación

Resumen

El Protocolo de Contexto de Modelo (MCP) permite que las aplicaciones de IA se conecten de forma segura a APIs externas. En proyectos de IoT, esto significa que tu aplicación de IA puede decidir automáticamente si necesita llamar a la API de Ubidots para responder a una solicitud del usuario — ya sea para leer datos o realizar un cambio en tu nombre.

Ejemplos:

  • "¿Qué dispositivos están fuera de línea?"
  • "Muestra los últimos valores de temperature para el dispositivo aws810".
  • "¿Cuál fue el promedio de temperature ayer para Machine ABC?"
  • "Crea un nuevo incidente para el dispositivo aws810\ con severidad P2."
  • "Actualiza la descripción del dispositivo pump-04\."

En este artículo exploramos el uso de Ubidots MCP desde:

  • Claude Desktop
  • API de Anthropic

Uso del servidor Ubidots MCP desde Claude Desktop

Requisitos previos

  • Una cuenta de Ubidots y un token de API de Ubidots (con alcance para la organización que quieras usar).
  • Claude Desktop instalado (macOS/Windows/Linux).

Paso a paso

  1. Abre la configuración de Claude Desktop Inicia Claude Desktop → Configuración → Desarrollador.
  2. Edita la configuración Haz clic en Editar configuración para abrir claude_desktop_config.json.
  3. Agrega la entrada del servidor Ubidots MCP Pega el fragmento a continuación en el JSON (combínalo con tu mcpServers existente si está presente). Reemplaza <YOUR UBIDOTS TOKEN> con tu token real.
    {
       "mcpServers": {
          "ubidots": {
             "command": "npx",
             "args": [
                "-y",
                "mcp-remote",
                "https://mcp.ubidots.com/mcp",
                "--header",
                "Authorization:${AUTH_HEADER}"
             ],
             "env": {
                "AUTH_HEADER": "Bearer <YOUR UBIDOTS TOKEN>"
             }
          }
       }
    }
    
    Notas
    • Si mcpServers ya existe, agrega solo el bloque "ubidots" dentro de él.
    • Mantén la sintaxis JSON válida (comas, llaves).
    • La URL anterior (/mcp) expone todas las herramientas disponibles. Consulta Rutas MCP con alcance a continuación para restringir el acceso por entidad o nivel de permiso.
  4. Guarda y recarga Claude Guarda el archivo y reinicia Claude Desktop (o usa "Recargar" si está disponible).
  5. Verifica la conexión En un nuevo chat de Claude, asegúrate de que el MCP esté habilitado y prueba esto:
    • "¿Qué dispositivos están en línea?" Si está configurado correctamente, Claude debería confirmar que la herramienta MCP está disponible y devolver datos en vivo de Ubidots.

Solución de problemas

Claude no muestra la herramienta Ubidots

  • Reinicia Claude después de editar la configuración.
  • Verifica la validez del JSON (usa un validador JSON en línea si es necesario).
  • Asegúrate de que npx esté disponible en tu PATH del sistema.

401 / No autorizado

  • Verifica que el token no haya expirado o sido revocado.

Errores de red

  • Confirma que estés en línea y no detrás de un proxy/cortafuegos que bloquee HTTPS saliente.
  • Intenta nuevamente más tarde en caso de problemas de red transitorios.

Múltiples servidores MCP configurados

  • Asegúrate de que no haya claves duplicadas llamadas ubidots.
  • Si renombraste el servidor, recuerda que el nombre que verás dentro de Claude coincidirá con esa clave.

Actualizar o eliminar la integración

  • Actualizar token: Abre claude_desktop_config.json, reemplaza el token en el encabezado, guarda y recarga Claude.
  • Deshabilitar: Elimina o comenta el bloque "ubidots" bajo mcpServers, guarda y recarga Claude.

Uso del servidor Ubidots MCP con la API de Anthropic

Si bien Claude Desktop es excelente para pruebas, no se asemeja a escenarios del mundo real, donde los usuarios querrán interactuar con un agente de IA a través de Slack, Whatsapp o un chat basado en web dentro de tu aplicación impulsada por Ubidots.

En tales escenarios, usar una API de IA como OpenAI API o API de Anthropic te permitirá agregar la capa de inteligencia necesaria a tu caso de uso.

Aquí tienes una solicitud de ejemplo que usarías desde dicha aplicación para interactuar tanto con las consultas de tus usuarios como con Ubidots MCP:

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "content-type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: mcp-client-2025-04-04" \
  -d '{
    "model": "claude-3-5-sonnet-20240620",
    "max_tokens": 500,
    "system": "You are a smart IoT assistant. If you need device data, use the attached MCP.",
    "messages": [
      {"role": "user", "content": "List my devices"}
    ],
    "mcp_servers": [
      {
        "type": "url",
        "name": "ubidots",
        "url": "https://mcp.ubidots.com/mcp",
        "authorization_token": "YOUR_UBIDOTS_TOKEN"
      }
    ]
  }'

Para obtener más información sobre el conector MCP de Anthropic, visita su documentación oficial.


Rutas MCP con alcance

De forma predeterminada, conectarse a https://mcp.ubidots.com/mcp expone todas las herramientas disponibles a la IA, incluidas las herramientas que crean o modifican datos, no solo las de lectura. Puedes reducir esto usando una ruta más específica, ya sea para restringir permisos (solo lectura) o para limitar el alcance a una entidad específica (dispositivos, variables, incidentes, etc.).

Esto es útil por dos razones:

  • Seguridad: Puedes garantizar que la IA solo tenga acceso de lectura, o que solo pueda interactuar con un subconjunto específico de tus datos.
  • Prevención de cambios no deseados: Dado que la mayoría de las entidades ahora admiten operaciones de escritura (crear o actualizar registros), se recomienda limitar el alcance a una ruta /readonly\ para cualquier caso de uso donde la IA no deba poder modificar tu cuenta — por ejemplo, un chatbot de informes de solo lectura.
  • Eficiencia de tokens: Exponer menos herramientas significa que se envía menos contexto al modelo de IA en cada solicitud, lo que reduce el consumo de tokens de entrada.

Rutas disponibles

RutaDescripción
/mcpTodas las herramientas (lectura y escritura) en todas las entidades
/mcp/readonlyTodas las herramientas, restringidas a operaciones de solo lectura
/mcp/_/devicesTodas las herramientas limitadas solo a dispositivos
/mcp/_/devices/readonlyHerramientas de solo lectura limitadas solo a dispositivos
/mcp/_/variablesTodas las herramientas limitadas solo a variables
/mcp/_/variables/readonlyHerramientas de solo lectura limitadas solo a variables
/mcp/_/device-groupsTodas las herramientas limitadas solo a grupos de dispositivos
/mcp/_/device-groups/readonlyHerramientas de solo lectura limitadas solo a grupos de dispositivos
/mcp/_/device-typesTodas las herramientas limitadas solo a tipos de dispositivos
/mcp/_/device-types/readonlyHerramientas de solo lectura limitadas solo a tipos de dispositivos
/mcp/_/organizationsTodas las herramientas limitadas solo a organizaciones
/mcp/_/organizations/readonlyHerramientas de solo lectura limitadas solo a organizaciones
/mcp/_/eventsTodas las herramientas limitadas solo a eventos (actualmente solo lectura)
/mcp/_/events/readonlyIgual que /mcp/_/events; aún no existen herramientas de escritura para esta entidad
/mcp/_/incidentsTodas las herramientas limitadas solo a incidentes
/mcp/_/incidents/readonlyHerramientas de solo lectura limitadas solo a incidentes

Ejemplo: acceso de solo lectura a dispositivos

En una configuración de Claude Desktop, simplemente reemplaza la URL:

"args": [
   "-y",
   "mcp-remote",
   "https://mcp.ubidots.com/mcp/_/devices/readonly",
   "--header",
   "Authorization:${AUTH_HEADER}"
]

En una llamada a la API de Anthropic:

"mcp_servers": [
  {
    "type": "url",
    "name": "ubidots",
    "url": "https://mcp.ubidots.com/mcp/_/devices/readonly",
    "authorization_token": "YOUR_UBIDOTS_TOKEN"
  }
]

Preguntas frecuentes

¿Funciona con otros clientes MCP?

Sí. Cualquier cliente compatible con MCP puede conectarse a https://mcp.ubidots.com/mcp (o cualquiera de las rutas con alcance) usando el mismo encabezado Authorization.

¿El servidor es local? No. El servidor Ubidots MCP está alojado en la nube; lo que te ahorra la necesidad de ejecutarlo localmente y permite aplicaciones como bots de IA de Whatsapp.

¿Puedo usar múltiples cuentas de Ubidots? Sí: crea entradas separadas (por ejemplo, ubidots-prod, ubidots-staging) con diferentes tokens.


Herramientas MCP

El servidor Ubidots MCP proporciona acceso a los datos de tu cuenta en las entidades a continuación. La mayoría de las entidades admiten tanto lectura como escritura: puedes consultar registros existentes, así como crearlos y actualizarlos. Eventos actualmente es de solo lectura.

EntidadHerramientas de lecturaHerramientas de escritura
Dispositivoslist_devices, list_device_last_valuescreate_device, update_device
Variableslist_variables, list_variables_by_device, get_variable_statistics, get_variable_seriescreate_variable, update_variable
Tipos de dispositivoslist_device_typescreate_device_type, update_device_type
Grupos de dispositivoslist_device_groupscreate_device_group, update_device_group
Organizacioneslist_organizationscreate_organization, update_organization
Eventoslist_events, list_event_logs—
Incidenteslist_incidents, list_incident_logscreate_incident, acknowledge_incident, add_incident_comment, assign_incident

Nota sobre incidentes: La asignación y el estado de un incidente (reconocido, comentado) se pueden actualizar después de su creación, pero su severidad y descripción actualmente no se pueden cambiar a través del MCP una vez creado.

Lista de funciones de agregación estadística que se pueden consultar usando el servidor MCP

El servidor MCP puede calcular resultados agregados sobre variables de usuario usando las siguientes operaciones:

  • Primero
  • Último
  • Mínimo
  • Máximo
  • Conteo
  • Suma
  • Media
  • Desviación estándar
  • Percentil 25
  • Percentil 50
  • Percentil 75

Ejemplos de solicitudes para comenzar

Lectura de datos:

  • "Lista las organizaciones y muestra el conteo de dispositivos para cada una."
  • "Para el dispositivo aws810, lista las variables y muestra las últimas marcas de tiempo y valores."
  • "¿Cuál es la temperatura promedio a la que funciona el aire acondicionado en cada piso?"

Creación y actualización de datos:

  • "Crea un nuevo dispositivo llamado pump-04 bajo la organización Plant North."
  • "Actualiza la descripción del dispositivo aws810 a 'Compresor del ala norte'."
  • "Crea un incidente P2 para el dispositivo aws810 sobre una falla del sensor."
  • "Reconoce el incidente #1234 y deja un comentario de que estamos investigando."
  • "Muéstrame todos los incidentes activados que no están asignados a nadie."

Si encuentras problemas o tienes solicitudes de funciones para el servidor Ubidots MCP, infórmanos qué cliente estás usando, tu sistema operativo y una copia redactada de tu configuración de mcpServers para que podamos ayudarte más rápido.