Saltar al contenido principal
El Model Context Protocol (MCP) es un estandar abierto que permite a los asistentes de IA interactuar con herramientas y fuentes de datos externas. El MCP server de Avala expone sus datasets, proyectos y exportaciones como herramientas que cualquier cliente compatible con MCP puede invocar, permitiendole gestionar su flujo de trabajo de anotacion mediante lenguaje natural sin cambiar de contexto. Esto significa que puede pedirle a Claude que “liste todos mis datasets”, hacer que Cursor cree una exportacion, o usar VS Code para verificar el estado de un proyecto — todo impulsado por la misma API de Avala que ya utiliza.

Requisitos previos

  • Node.js 18 o posterior instalado en su maquina
  • Una clave API de Avala (genere una en Mission Control en Settings > Security)

Configuracion

Claude Desktop

Abra su archivo de configuracion de Claude Desktop:
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
Agregue el MCP server de Avala:
Nunca haga commit de archivos de configuracion que contengan claves API reales en el control de versiones. Defina AVALA_API_KEY como una variable de entorno del sistema, o reemplace "your-api-key" con su clave real localmente y asegurese de que el archivo de configuracion este en su .gitignore.
Reinicie Claude Desktop. Deberia ver las herramientas de Avala disponibles en el selector de herramientas.

Cursor

Cree o edite .cursor/mcp.json en la raiz de su proyecto (o en el directorio de configuracion global):
.cursor/mcp.json se encuentra en la raiz de su proyecto y puede ser incluido en git. Agreguelo a su .gitignore o defina AVALA_API_KEY como una variable de entorno del sistema en lugar de colocarla directamente en el archivo de configuracion.
Reinicie Cursor o recargue la ventana. Las herramientas de Avala apareceran en el modo agente de Cursor.

VS Code

Cree o edite .vscode/mcp.json en su espacio de trabajo:
.vscode/mcp.json se encuentra en su espacio de trabajo y puede ser incluido en git. Agreguelo a su .gitignore o defina AVALA_API_KEY como una variable de entorno del sistema en lugar de colocarla directamente en el archivo de configuracion.
Asegurese de tener la extension GitHub Copilot instalada con el soporte MCP habilitado. Reinicie VS Code para que reconozca el nuevo servidor.

Claude Code

Agregue el MCP server de Avala a Claude Code con un solo comando:
Defina su clave API como variable de entorno:
Reinicie Claude Code. Las herramientas de Avala estaran disponibles en su sesion.

ChatGPT

El soporte MCP de ChatGPT esta en evolucion. Consulte la documentacion de OpenAI para las ultimas instrucciones de configuracion y disponibilidad en su plan y region.

Modo de seguridad MCP

Por seguridad, el MCP server es de solo lectura por defecto. Las herramientas de mutacion no se registran a menos que las habilite explicitamente con:
Esta variable de entorno puede definirse en el entorno de proceso de su MCP server antes de iniciarlo. Por defecto, las siguientes operaciones de escritura/eliminacion estan bloqueadas:
  • create_dataset
  • create_agent, delete_agent
  • create_annotation_issue, update_annotation_issue, delete_annotation_issue
  • create_storage_config, test_storage_config, delete_storage_config
  • create_webhook, delete_webhook
  • create_export
  • evaluate_quality
  • compute_consensus
  • fleet_register_device, fleet_acknowledge_alert

Herramientas MCP disponibles

Una vez conectado, las siguientes herramientas estan disponibles para el asistente de IA:

Fleet (Vista previa)

Las herramientas Fleet estan en vista previa y pueden cambiar. Proporcionan acceso de lectura y escritura a dispositivos, grabaciones, eventos, alertas y reglas de la flota.

Definiciones de herramientas

Esquemas detallados para cada herramienta MCP. Todas las herramientas devuelven JSON como contenido de texto.

list_datasets

Lista todos los datasets en el espacio de trabajo. Parameters:
  • dataType (string, optional) — Filtrar por tipo de datos (image, video, lidar, mcap, splat)
  • name (string, optional) — Filtrar por nombre de dataset (coincidencia parcial)
  • status (string, optional) — Filtrar por estado del dataset
  • visibility (string, optional) — Filtrar por visibilidad (private o public)
  • limit (number, optional) — Numero maximo de datasets a devolver
  • cursor (string, optional) — Cursor de paginacion de una solicitud anterior
Ejemplo de respuesta:

get_dataset

Obtiene los detalles de un dataset especifico. Parameters:
  • uid (string, required) — El identificador unico (UUID) del dataset
Ejemplo de respuesta:
Respuesta de error (UID invalido):

list_projects

Lista todos los proyectos de anotacion. Parameters:
  • limit (number, optional) — Numero maximo de proyectos a devolver
  • cursor (string, optional) — Cursor de paginacion de una solicitud anterior

get_project

Obtiene los detalles de un proyecto especifico. Parameters:
  • uid (string, required) — El identificador unico (UUID) del proyecto

create_dataset

Crea un nuevo dataset para anotacion. Parameters:
  • name (string, required) — Nombre para mostrar del dataset
  • slug (string, required) — Identificador compatible con URL para el dataset
  • dataType (string, required) — Tipo de datos: image, video, lidar o mcap
  • visibility (string, optional) — Visibilidad del dataset: private o public (por defecto: private)
  • createMetadata (boolean, optional) — Si se deben crear los metadatos del dataset (por defecto: true)
  • providerConfig (object, optional) — Configuracion del proveedor de almacenamiento en la nube
  • ownerName (string, optional) — Nombre de usuario o correo electronico del propietario del dataset

create_export

Inicia una nueva exportacion para un dataset o proyecto. Parameters:
  • project (string, optional) — UID del proyecto a exportar
  • dataset (string, optional) — UID del dataset a exportar
Ejemplo de respuesta:

get_export_status

Verifica el estado de una exportacion. Parameters:
  • uid (string, required) — El identificador unico (UUID) de la exportacion
Ejemplo de respuesta:

list_exports

Lista todas las exportaciones en el espacio de trabajo. Parameters:
  • limit (number, optional) — Numero maximo de exportaciones a devolver
  • cursor (string, optional) — Cursor de paginacion de una solicitud anterior

get_workspace_stats

Obtiene un resumen rapido del contenido del espacio de trabajo (datasets, proyectos, exportaciones). Parameters: Ninguno Ejemplo de respuesta:

list_tasks

Lista tareas con filtrado opcional por proyecto o estado. Parameters:
  • project (string, optional) — Filtrar por UID de proyecto
  • status (string, optional) — Filtrar por estado de tarea
  • limit (number, optional) — Numero maximo de tareas a devolver
  • cursor (string, optional) — Cursor de paginacion de una solicitud anterior
Ejemplo de respuesta:

get_task

Obtiene informacion detallada sobre una tarea especifica. Parameters:
  • uid (string, required) — El identificador unico (UUID) de la tarea

list_agents

Lista todos los agentes de automatizacion configurados en su espacio de trabajo. Parameters:
  • limit (number, optional) — Numero maximo de agentes a devolver
  • cursor (string, optional) — Cursor de paginacion de una solicitud anterior

get_agent

Obtiene informacion detallada sobre un agente de automatizacion especifico. Parameters:
  • uid (string, required) — El identificador unico (UUID) del agente

create_agent

Crea un nuevo agente de automatizacion con suscripciones a eventos y una URL de devolucion de llamada. Parameters:
  • name (string, required) — Nombre del agente
  • events (string[], required) — Lista de tipos de eventos a los que el agente se suscribe
  • callbackUrl (string, optional) — URL para recibir devoluciones de llamada de eventos
  • description (string, optional) — Descripcion del agente
  • project (string, optional) — UID del proyecto para limitar el alcance del agente
  • taskTypes (string[], optional) — Tipos de tareas que maneja el agente

delete_agent

Elimina un agente de automatizacion por su UID. Parameters:
  • uid (string, required) — El identificador unico (UUID) del agente a eliminar

list_webhooks

Lista todas las suscripciones de webhook en su espacio de trabajo. Parameters:
  • limit (number, optional) — Numero maximo de webhooks a devolver
  • cursor (string, optional) — Cursor de paginacion de una solicitud anterior

create_webhook

Crea una nueva suscripcion de webhook para eventos especificos. Parameters:
  • targetUrl (string, required) — URL para recibir entregas de webhook
  • events (string[], required) — Lista de tipos de eventos a los que suscribirse

delete_webhook

Elimina una suscripcion de webhook por su UID. Parameters:
  • uid (string, required) — El identificador unico (UUID) del webhook a eliminar

list_storage_configs

Lista todas las configuraciones de almacenamiento en su espacio de trabajo. Parameters:
  • limit (number, optional) — Numero maximo de configuraciones de almacenamiento a devolver
  • cursor (string, optional) — Cursor de paginacion de una solicitud anterior

create_storage_config

Crea una nueva configuracion de almacenamiento (S3 o Google Cloud Storage). Parameters:
  • name (string, required) — Nombre para la configuracion de almacenamiento
  • provider (string, required) — Tipo de proveedor de almacenamiento (s3 o gcs)
  • s3BucketName (string, optional) — Nombre del bucket S3
  • s3BucketRegion (string, optional) — Region del bucket S3
  • s3BucketPrefix (string, optional) — Prefijo de clave S3
  • s3AccessKeyId (string, optional) — ID de clave de acceso S3 (almacenado de forma segura en el servidor)
  • s3SecretAccessKey (string, optional) — Clave de acceso secreta S3 (almacenada de forma segura en el servidor)
  • s3IsAccelerated (boolean, optional) — Habilitar S3 Transfer Acceleration
  • gcStorageBucketName (string, optional) — Nombre del bucket de Google Cloud Storage
  • gcStoragePrefix (string, optional) — Prefijo de Google Cloud Storage
  • gcStorageAuthJsonContent (string, optional) — Credenciales JSON de la cuenta de servicio GCS (almacenadas de forma segura en el servidor)

test_storage_config

Prueba la conectividad de una configuracion de almacenamiento. Parameters:
  • uid (string, required) — El identificador unico (UUID) de la configuracion de almacenamiento a probar

delete_storage_config

Elimina una configuracion de almacenamiento por su UID. Parameters:
  • uid (string, required) — El identificador unico (UUID) de la configuracion de almacenamiento a eliminar

list_quality_targets

Lista los objetivos de calidad configurados para un proyecto especifico. Parameters:
  • projectUid (string, required) — El identificador unico (UUID) del proyecto
  • limit (number, optional) — Numero maximo de objetivos de calidad a devolver
  • cursor (string, optional) — Cursor de paginacion de una solicitud anterior

evaluate_quality

Evalua todos los objetivos de calidad de un proyecto y devuelve su estado actual. Parameters:
  • projectUid (string, required) — El identificador unico (UUID) del proyecto a evaluar

get_consensus_summary

Obtiene un resumen de consenso para un proyecto que incluye puntuaciones medias/medianas y distribucion. Parameters:
  • projectUid (string, required) — El identificador unico (UUID) del proyecto

compute_consensus

Inicia el calculo de consenso para un proyecto. Parameters:
  • projectUid (string, required) — El identificador unico (UUID) del proyecto

list_organizations

Lista todas las organizaciones de las que es miembro. Parameters:
  • limit (number, optional) — Numero maximo de organizaciones a devolver
  • cursor (string, optional) — Cursor de paginacion de una solicitud anterior

get_organization

Obtiene informacion detallada sobre una organizacion especifica. Parameters:
  • slug (string, required) — El identificador slug de la organizacion

list_slices

Lista los slices de un propietario (usuario u organizacion). Parameters:
  • owner (string, required) — Nombre del propietario (slug de usuario u organizacion)
  • limit (number, optional) — Numero maximo de slices a devolver
  • cursor (string, optional) — Cursor de paginacion de una solicitud anterior

get_slice

Obtiene informacion detallada sobre un slice especifico. Parameters:
  • owner (string, required) — Nombre del propietario (slug de usuario u organizacion)
  • slug (string, required) — El slug del slice

list_annotation_issues_by_sequence

Lista todos los problemas de anotacion de una secuencia especifica. Parameters:
  • sequenceUid (string, required) — El UUID de la secuencia
  • datasetItemUid (string, optional) — Filtrar por UUID del elemento de dataset
  • projectUid (string, optional) — Filtrar por UUID del proyecto

create_annotation_issue

Crea un nuevo problema de anotacion en una secuencia. Parameters:
  • sequenceUid (string, required) — El UUID de la secuencia
  • toolUid (string, required) — UUID de la herramienta de anotacion
  • problemUid (string, required) — UUID del tipo de problema
  • datasetItemUid (string, optional) — UUID del elemento de dataset
  • projectUid (string, optional) — UUID del proyecto
  • priority (string, optional) — Nivel de prioridad: lowest, low, medium, high, highest
  • severity (string, optional) — Nivel de severidad: critical, moderate
  • description (string, optional) — Descripcion del problema
  • wrongClass (string, optional) — Etiqueta de clase incorrecta
  • correctClass (string, optional) — Etiqueta de clase correcta
  • objectUid (string, optional) — UUID del objeto de anotacion
  • shouldReAnnotate (boolean, optional) — Si se debe re-anotar
  • shouldDelete (boolean, optional) — Si se debe eliminar la anotacion
  • framesAffected (string, optional) — Fotogramas afectados por el problema

update_annotation_issue

Actualiza un problema de anotacion existente (estado, prioridad, etc.). Parameters:
  • sequenceUid (string, required) — El UUID de la secuencia
  • issueUid (string, required) — El UUID del problema de anotacion
  • status (string, optional) — Estado: open, relabeling, in_review, completed, cant_reproduce, awaiting_feedback, no_action_taken
  • priority (string, optional) — Nivel de prioridad: lowest, low, medium, high, highest
  • severity (string, optional) — Nivel de severidad: critical, moderate
  • description (string, optional) — Descripcion actualizada
  • toolUid (string, optional) — UUID de la herramienta de anotacion
  • problemUid (string, optional) — UUID del tipo de problema
  • wrongClass (string, optional) — Etiqueta de clase incorrecta
  • framesAffected (string, optional) — Fotogramas afectados por el problema

delete_annotation_issue

Elimina un problema de anotacion. Parameters:
  • sequenceUid (string, required) — El UUID de la secuencia
  • issueUid (string, required) — El UUID del problema de anotacion a eliminar

list_annotation_issues_by_dataset

Lista todos los problemas de anotacion de un dataset. Parameters:
  • owner (string, required) — Nombre de usuario del propietario del dataset
  • datasetSlug (string, required) — Slug del dataset
  • sequenceUid (string, optional) — Filtrar por UUID de secuencia

get_annotation_issue_metrics

Obtiene metricas agregadas de problemas de anotacion de un dataset (conteos por estado/prioridad/severidad, tiempos de cierre). Parameters:
  • owner (string, required) — Nombre de usuario del propietario del dataset
  • datasetSlug (string, required) — Slug del dataset
  • sequenceUid (string, optional) — Filtrar por UUID de secuencia

list_qc_tools

Lista las herramientas QC de anotacion disponibles para un tipo de dataset dado. Parameters:
  • datasetType (string, required) — El tipo de dataset (ej. lidar, image, video)

fleet_list_devices

Lista los dispositivos de la flota con filtros opcionales. Parameters:
  • status (string, optional) — Filtrar por estado del dispositivo (online, offline, maintenance)
  • type (string, optional) — Filtrar por tipo de dispositivo
  • limit (number, optional) — Numero maximo de dispositivos a devolver
  • cursor (string, optional) — Cursor de paginacion
Ejemplo de respuesta:

fleet_get_device

Obtiene informacion detallada sobre un dispositivo de flota especifico. Parameters:
  • uid (string, required) — El identificador unico del dispositivo

fleet_list_recordings

Lista las grabaciones de la flota con filtros opcionales. Parameters:
  • device (string, optional) — Filtrar por UID de dispositivo
  • status (string, optional) — Filtrar por estado de grabacion
  • limit (number, optional) — Numero maximo de grabaciones a devolver
  • cursor (string, optional) — Cursor de paginacion

fleet_get_recording

Obtiene informacion detallada sobre una grabacion especifica. Parameters:
  • uid (string, required) — El identificador unico de la grabacion

fleet_list_events

Lista los eventos de la flota con filtros opcionales. Parameters:
  • recording (string, optional) — Filtrar por UID de grabacion
  • device (string, optional) — Filtrar por UID de dispositivo
  • type (string, optional) — Filtrar por tipo de evento
  • severity (string, optional) — Filtrar por severidad
  • limit (number, optional) — Numero maximo de eventos a devolver
  • cursor (string, optional) — Cursor de paginacion

fleet_list_alerts

Lista las alertas de la flota con filtros opcionales. Parameters:
  • status (string, optional) — Filtrar por estado de alerta (open, acknowledged, resolved)
  • severity (string, optional) — Filtrar por severidad (info, warning, error, critical)
  • device (string, optional) — Filtrar por UID de dispositivo
  • rule (string, optional) — Filtrar por UID de regla
  • limit (number, optional) — Numero maximo de alertas a devolver
  • cursor (string, optional) — Cursor de paginacion
Ejemplo de respuesta:

fleet_list_rules

Lista las reglas de la flota con filtros opcionales. Parameters:
  • enabled (boolean, optional) — Filtrar por estado de habilitacion
  • limit (number, optional) — Numero maximo de reglas a devolver
  • cursor (string, optional) — Cursor de paginacion

fleet_register_device

Registra un nuevo dispositivo de flota. Parameters:
  • name (string, required) — Nombre del dispositivo
  • type (string, required) — Tipo del dispositivo
  • firmwareVersion (string, optional) — Version del firmware
  • tags (string[], optional) — Etiquetas para el dispositivo

fleet_acknowledge_alert

Confirma una alerta de flota. Parameters:
  • uid (string, required) — El identificador unico de la alerta a confirmar

Recetas

Flujos de trabajo de varios pasos que puede ejecutar mediante lenguaje natural. Cada receta muestra las llamadas a herramientas que el asistente realiza en segundo plano.

Receta 1: Revision de salud de datasets

Pregunte a su asistente: “Dame una revision de salud de mi espacio de trabajo — cuantos datasets tengo y cuales tienen mas elementos?” Paso 1 — El asistente llama a get_workspace_stats para obtener la vision general.
Paso 2 — El asistente llama a list_datasets con limit: 50 para obtener todos los datasets. Paso 3 — El asistente ordena los resultados por itemCount y presenta un resumen clasificado:
Tiene 14 datasets. Los tres mas grandes son:
  1. Warehouse Cameras — 34.200 elementos (image)
  2. Urban Driving Q1 — 12.450 elementos (lidar)
  3. Parking Lot Footage — 8.900 elementos (video)

Receta 2: Exportar y descargar

Pregunte a su asistente: “Exporte el proyecto Urban Driving Q1 y aviseme cuando este listo.” Paso 1 — El asistente llama a list_projects para encontrar el UID del proyecto que coincida con “Urban Driving Q1”. Paso 2 — El asistente llama a create_export con el UID del proyecto.
Paso 3 — El asistente consulta get_export_status hasta que el estado cambie a completed.
Paso 4 — El asistente proporciona el enlace de descarga y el tamano del archivo.
Su exportacion esta lista (50 MB). Descarguelo aqui: https://api.avala.ai/exports/.../download

Receta 3: Auditoria de calidad en todos los proyectos

Pregunte a su asistente: “Evalue los objetivos de calidad de todos mis proyectos y senale los que estan fallando.” Paso 1 — El asistente llama a list_projects para obtener todos los proyectos. Paso 2 — Para cada proyecto, el asistente llama a evaluate_quality con el UID del proyecto. Paso 3 — El asistente agrega los resultados y destaca los fallos:
5 de 7 proyectos cumplen todos los objetivos de calidad. Dos requieren atencion:
  • Sidewalk Segmentation — Objetivo “Label accuracy” en 88% (umbral: 95%)
  • Fleet Camera Review — Objetivo “Consensus score” en 0,72 (umbral: 0,85)

Receta 4: Monitoreo de dispositivos de la flota

Pregunte a su asistente: “Muestreme todas las alertas de flota que no han sido confirmadas, agrupadas por severidad.” Paso 1 — El asistente llama a fleet_list_alerts con status: "open". Paso 2 — El asistente agrupa y formatea la respuesta:
Critico (1)
  • Dock Camera 3 — “Dispositivo fuera de linea por mas de 24 horas” (desde el 18 de marzo)
Advertencia (2)
  • Forklift Sensor Unit 12 — “Temperatura del dispositivo supero el umbral (72C)” (desde el 19 de marzo)
  • Rooftop LiDAR 1 — “Espacio en disco bajo (< 5%)” (desde el 19 de marzo)
Paso 3 — Puede continuar: “Confirme todas las alertas de nivel de advertencia.” El asistente llama a fleet_acknowledge_alert para cada UID de alerta de tipo advertencia.

Receta 5: Triaje de problemas de anotacion

Pregunte a su asistente: “Obtenga las metricas de problemas de anotacion del dataset urban-driving-q1 y muestreme el desglose.” Paso 1 — El asistente llama a get_annotation_issue_metrics con el propietario y el slug del dataset. Paso 2 — El asistente presenta un resumen formateado:
Urban Driving Q1 — Metricas de problemas Por estado: 12 abiertos, 5 en revision, 3 en re-etiquetado, 45 completados Por severidad: 8 criticos, 57 moderados Por prioridad: 2 mas altos, 6 altos, 18 medios, 25 bajos, 14 mas bajos Tiempo promedio de cierre: 4,2 horas
Paso 3 — Usted continua: “Liste los problemas criticos abiertos.” El asistente llama a list_annotation_issues_by_dataset con filtros y muestra los resultados.

Ejemplos de prompts

Aqui hay algunos prompts en lenguaje natural que puede usar con cualquier cliente compatible con MCP:
El asistente de IA llamara a la herramienta MCP de Avala apropiada, procesara la respuesta y presentara los resultados en un formato legible. Puede encadenar solicitudes en una misma conversacion — por ejemplo, listar datasets, elegir uno y luego verificar el estado de una exportacion.

Solucion de problemas

AVALA_API_KEY no definida

El MCP server se detiene inmediatamente con el codigo de error 1 si la variable de entorno AVALA_API_KEY no esta presente. Asegurese de que la clave este definida en el bloque env de su configuracion MCP o exportada en su shell antes de iniciar el servidor.

Las herramientas de mutacion no aparecen

Si herramientas como create_export, create_agent o fleet_register_device no aparecen en la lista de herramientas, necesita definir AVALA_MCP_ENABLE_MUTATIONS=true en el entorno del servidor. Agreguelo al bloque env de su archivo de configuracion MCP:

npx no encontrado o version incorrecta de Node.js

El MCP server requiere Node.js 18 o posterior. Si ve npx: command not found o errores de sintaxis de modulos, verifique su version de Node.js:

MCP server en cache desactualizado

Si actualizo recientemente el paquete @avala-ai/mcp-server pero todavia ve el comportamiento anterior o herramientas faltantes, npx puede estar sirviendo una version en cache. Fuerce una nueva instalacion:
Luego reinicie su cliente MCP.

Clave API invalida o expirada

Si las llamadas a herramientas devuelven 401 Unauthorized, su clave API puede ser invalida, estar expirada o revocada. Genere una nueva clave en Mission Control en Settings > Security y actualice su configuracion MCP.
El MCP server de Avala es de codigo abierto. Visite el repositorio en GitHub para ver el codigo fuente o contribuir.