Ir al contenido principal

Servidor MCP de Ubidots

Crea aplicaciones de IA que interactúen con tus datos.

Escrito por Sergio M

Descripción general

El Protocolo de Contexto de Modelo (MCP) permite que las aplicaciones de IA se conecten de forma segura a APIs externas. En proyectos 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 consulta del usuario — ya sea leyendo datos o realizando 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 la temperature promedio de ayer de 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 del MCP de Ubidots desde:

  • Claude Desktop

  • API de Anthropic


Usar el servidor MCP de Ubidots desde Claude Desktop

Requisitos previos

  • Una cuenta de Ubidots y un token de API de Ubidots (con alcance para la organización que deseas usar).

  • Claude Desktop instalado (macOS/Windows/Linux).

Paso a paso

  1. Abre la Configuración de Claude Desktop
    Inicia Claude Desktop → ConfiguraciónDesarrollador.

  2. Editar configuración
    Haz clic en Editar configuración para abrir claude_desktop_config.json.

  3. Agrega la entrada del servidor MCP de Ubidots
    Pega el fragmento a continuación en el JSON (combínalo con tu mcpServers existente si ya existe).
    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 las rutas MCP con alcance definido a continuación para restringir el acceso por entidad o nivel de permiso.

  4. Guardar y recargar 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 tiempo real desde Ubidots.

Solución de problemas

Claude no muestra la herramienta de Ubidots

  • Reinicia Claude después de editar la configuración.

  • Verifica la validez del JSON (usa un validador de JSON en línea si es necesario).

  • Asegúrate de que npx esté disponible en el PATH de tu sistema.

401 / No autorizado

  • Verifica que el encabezado sea exactamente: x-auth-token: <YOUR UBIDOTS TOKEN>.

  • Comprueba que el token no haya expirado ni sido revocado.

Errores de red

  • Confirma que tienes conexión a internet y que no estás detrás de un proxy o firewall que bloquee el HTTPS saliente.

  • Inténtalo de nuevo más tarde en caso de problemas de red transitorios.

Múltiples servidores MCP configurados

  • Asegúrate de que no haya claves duplicadas con el nombre 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.


Usar el servidor MCP de Ubidots con la API de Anthropic

Si bien Claude Desktop es ideal para pruebas, no refleja escenarios del mundo real, donde los usuarios querrán interactuar con un agente de IA a través de Slack, WhatsApp o un chat web dentro de tu aplicación basada en Ubidots.

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

A continuación se muestra una solicitud de ejemplo que usarías desde una aplicación de este tipo para interactuar tanto con las consultas de tus usuarios como con el MCP de Ubidots:

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 definido

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

Esto es útil por tres 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 usar una ruta /readonly para cualquier caso de uso donde la IA no deba poder modificar tu cuenta — por ejemplo, un chatbot de reportes de solo lectura.

  • Eficiencia de tokens: Exponer menos herramientas significa que se envía menos contexto al modelo de IA en cada solicitud, reduciendo el consumo de tokens de entrada.

Rutas disponibles

Ruta

Descripción

/mcp

Todas las herramientas (lectura y escritura) para todas las entidades

/mcp/readonly

Todas las herramientas, restringidas a operaciones de solo lectura

/mcp/_/devices

Todas las herramientas con alcance solo a dispositivos

/mcp/_/devices/readonly

Herramientas de solo lectura con alcance solo a dispositivos

/mcp/_/variables

Todas las herramientas con alcance solo a variables

/mcp/_/variables/readonly

Herramientas de solo lectura con alcance solo a variables

/mcp/_/device-groups

Todas las herramientas con alcance solo a grupos de dispositivos

/mcp/_/device-groups/readonly

Herramientas de solo lectura con alcance solo a grupos de dispositivos

/mcp/_/device-types

Todas las herramientas con alcance solo a tipos de dispositivos

/mcp/_/device-types/readonly

Herramientas de solo lectura con alcance solo a tipos de dispositivos

/mcp/_/organizations

Todas las herramientas con alcance solo a organizaciones

/mcp/_/organizations/readonly

Herramientas de solo lectura con alcance solo a organizaciones

/mcp/_/events

Todas las herramientas con alcance solo a eventos (actualmente de solo lectura)

/mcp/_/events/readonly

Igual que /mcp/_/events; aún no existen herramientas de escritura para esta entidad

/mcp/_/incidents

Todas las herramientas con alcance solo a incidentes

/mcp/_/incidents/readonly

Herramientas de solo lectura con alcance 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 a cualquiera de las rutas con alcance definido) usando el mismo encabezado Authorization.

¿El servidor es local?
No. El servidor MCP de Ubidots está alojado en la nube, lo que elimina la necesidad de ejecutarlo localmente y habilita aplicaciones como bots de IA en 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 MCP de Ubidots proporciona acceso a los datos de tu cuenta para las entidades que se indican a continuación. La mayoría de las entidades admiten tanto lectura como escritura — puedes consultar registros existentes, así como crearlos y actualizarlos. Eventos es actualmente de solo lectura.

Entidad

Herramientas de lectura

Herramientas de escritura

Dispositivos

list_devices, list_device_last_values

create_device, update_device

Variables

list_variables, list_variables_by_device, get_variable_statistics, get_variable_series

create_variable, update_variable

Tipos de Dispositivos

list_device_types

create_device_type, update_device_type

Grupos de Dispositivos

list_device_groups

create_device_group, update_device_group

Organizaciones

list_organizations

create_organization, update_organization

Eventos

list_events, list_event_logs

Incidentes

list_incidents, list_incident_logs

create_incident, acknowledge_incident, add_incident_comment, assign_incident

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

Lista de funciones de agregación estadística disponibles en el servidor MCP

El servidor MCP puede calcular resultados agregados sobre las variables del 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 consultas para comenzar

Lectura de datos:

  • "Lista las organizaciones y muestra el número de dispositivos de 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 el aire acondicionado está funcionando 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 de sensor."

  • "Reconoce el incidente #1234 y deja un comentario indicando que estamos investigando."

  • "Muéstrame todos los incidentes activados que no están asignados a nadie."


Si encuentras problemas o tienes solicitudes de nuevas funciones para el servidor MCP de Ubidots, cuéntanos 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.

¿Ha quedado contestada tu pregunta?