VAGO Cloud MCP server — conecta agentes IA (Claude Code, Cursor, Cowork via mcp-remote) con la API de VAGO Cloud usando un token de agente. API de sincronización de stock/precios/productos entre un Excel maestro y Shopify, MercadoLibre, Falabella, Ripley y Rappi.
Server has 25 tools with consistent naming (verb_noun pattern) and descriptions present for all. However, critical gaps exist: (1) Input schemas lack proper JSON Schema type definitions for complex parameters (e.g., 'changes' object in update_tenant/update_user has no nested schema); (2) Parameter descriptions are sparse or missing constraints (e.g., 'canal' in trigger_sync lists valid values in description but not as enum); (3) Output schemas are completely undocumented, tools return JSON strings via _dump() with no schema guidance for LLMs; (4) Error handling is minimal, generic RuntimeError with HTTP status codes, no recovery guidance; (5) No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. Naming is strong (whoami, list_tenants, create_tenant, trigger_sync are clear), but schema and output documentation are weak.
Analytics del negocio (ventas, metas, comparativos por canal).
Da de alta productos (ya existentes en Shopify) en un marketplace. canal: mercadolibre | falabella | ripley. MUTACIÓN.
Crea productos en Shopify desde el maestro. modo: 'ingresos' | 'preventa'. MUTACIÓN: publica productos reales.
Crea un negocio nuevo. fuente_tipo: 'excel' | 'shopify'.
Crea un usuario. role: superadmin | staff | analista | vendedor.
Resumen operativo del negocio: métricas, estado de fuente, alertas.
Object parameters lack nested schema definitions. 'changes' in update_tenant and update_user accept arbitrary objects with no type constraints or field documentation. LLMs cannot validate what fields are allowed.
No output schemas documented. All tools return JSON strings via _dump() with no guidance on response structure, field types, or pagination. LLMs cannot plan downstream tool calls or extract data reliably.
Enum constraints not declared in schemas. 'canal' parameter in trigger_sync lists valid values in description ('shopify | mercadolibre | falabella | ripley | mundotec') but not as JSON Schema enum. LLMs may hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Detalle de un job, incluido su log.
Canales/tiendas del negocio: activo, configurado, último job (sin secretos).
Últimos jobs de sincronización del negocio (estado, canal, tiempos).
Lista los negocios (tenants) con id, nombre, plan, estado y fuente.
Lista los usuarios de la plataforma (requiere superadmin).
Estado del snapshot del archivo maestro en servidor (SKUs, antigüedad).
SKUs de la fuente que cada marketplace no reconoce (diagnóstico por canal).
Vista global de la plataforma (todos los negocios) — requiere superadmin.
Relee el archivo maestro (OneDrive/Excel) y actualiza el snapshot en servidor.
Reintenta un job fallido o en dead-letter.
Ejecuta una query/mutation GraphQL en Shopify Admin API de una tienda.
Lista los aliases de tiendas Shopify que tienen credenciales resolubles ahora mismo.
Llamada REST a Shopify Admin API de una tienda.
Preview del próximo sync (qué cambiaría por canal, sin tocar marketplaces).
Encola sincronización de stock. canal: 'all' o uno de shopify | mercadolibre | falabella | ripley | mundotec. MUTACIÓN: actualiza stock real en las tiendas del negocio.
PATCH parcial de un negocio. changes admite: nombre, plan, estado, fuente_tipo, notas, features.
PATCH parcial de un usuario. changes admite: email, role, tenant_id, is_active, password, first_name, last_name.
Llamada genérica a la API de VAGO Cloud (GET/POST/PATCH/DELETE). Para endpoints sin tool dedicada.
Usuario con el que actúa este agente (rol, tenant, features).
No tool annotations despite clear risk levels. Tools marked DESTRUCTIVE (trigger_sync, create_products_shopify, create_products_marketplace) lack destructiveHint annotation. READ_ONLY tools lack readOnlyHint. Agents cannot distinguish safe from risky operations.
Error handling provides no recovery guidance. Generic RuntimeError with HTTP status codes (e.g., '401 No autorizado') gives LLMs no actionable next steps. Missing error classification (retryable vs user-fixable vs fatal).