Saltar al contenido
Volver al blog
Casos prácticos10 min

Caso de estudio: cómo un agente IA compra un producto en 8 pasos (walkthrough de la demo store)

Recorre el flujo exacto de 8 pasos que sigue un agente IA para descubrir, comparar y comprar un producto de la demo store de Trusteed. Sin API key para descubrimiento: pruébalo tú mismo con los ejemplos curl.

Resumen ejecutivo

Caso de estudio end-to-end de un agente IA comprando en la demo store de Trusteed. Cubre el flujo MCP completo de 8 pasos: búsqueda → detalles → crear carrito → tarifas de envío (con elicitation) → selegir envío → aplicar descuento → preview → checkout. Incluye ejemplos curl ejecutables y explica trust scoring, detección de protocolo y elicitation de dirección en Claude.ai.

Publicado

2026-04-06

Actualizado: 2026-09-22

10 min

Autoría

Trusteed

Publicado por Trusteed

Escrito y mantenido por quienes construyen Trusteed. Las afirmaciones técnicas de estos artículos se respaldan en las superficies enlazadas desde cada pieza y en el registro de capacidades firmado en /.well-known/trusteed-capabilities.json, que es el árbitro cuando un artículo y una superficie de estado se contradicen.

Sobre Trusteed

Categoría

Casos prácticos

caso-estudiodemo-storeMCPcheckoutagentes-iawalkthroughelicitationejemplos-curl

¿Cómo se ve cuando un agente IA compra algo? En este walkthrough seguimos a un agente Claude paso a paso por una compra en sandbox en la demo store de Trusteed: 18 productos, 6 categorías, 3 códigos de descuento, múltiples opciones de envío y un flujo de checkout que maneja pago y recopilación de dirección nativamente dentro del chat. Cada comando curl en este post funciona contra el endpoint de demo en vivo ahora mismo — y el propio endpoint declara `store_environment: "sandbox"` en cada respuesta de búsqueda. El paso final usa `payment_method: "MOCK"`: crea un pedido y no mueve dinero. Qué rails pueden liquidar valor real depende de cada rail y de cada comercio; el estado rail a rail está en /es/status. Corrección 2026-10-11: una versión anterior de este párrafo negaba que se liquide algún pago en la plataforma; era un dato fechado que nadie volvió a medir, y el estado es por rail y por comercio.

El endpoint de la demo store es público y tiene límite de 20 peticiones/minuto por IP. No se necesita API key para herramientas de descubrimiento. Todas las herramientas de checkout la necesitan, create_cart incluida: obtén una clave sandbox gratis de 24 horas con POST /api/v1/sandbox/key. Todas las tools de checkout que gastan o liquidan piden además la cabecera X-Payment-Mandate; el resto de herramientas de checkout (create_cart y attach_agent_identity y verify_age_over_n y verify_residence_country y verify_legal_person_authorization y apply_discount y get_shipping_rates y select_shipping_option y create_payment_mandate y update_payment_mandate y cancel_payment_mandate y ucp_create_checkout y ucp_update_checkout y ucp_add_items_to_checkout y ucp_get_checkout y ucp_cancel_checkout y get_checkout_state y quote_checkout y get_trust_receipt y verify_trust_receipt) no la necesitan.

Idea clave

El montaje: 18 productos, cero configuración

La demo store viene con 18 productos seleccionados en 6 categorías: sneakers (4), chaquetas (3), accesorios (3), pantalones (3), camisetas (3) y calzado (2). No son items de relleno: cada producto tiene precios realistas, opciones de variante (talla/color), niveles de stock, valoraciones con conteo de reviews, y metadatos completos incluyendo peso, material y origen. Las valoraciones las afirma el comerciante, y cada respuesta de búsqueda lo dice en un bloque `rating_provenance`: Trusteed no las verifica. Productos clave que verás en este walkthrough (medidos contra el endpoint en vivo el 2026-09-22): • Nike Air Max 90: $130 (antes $160), 4.7★ de 324 reviews, tallas US 8–10 • The North Face Nuptse Jacket: $320 (antes $380), 4.8★ de 512 reviews, plumón de ganso 700-fill • Adidas Ultraboost 23: $190, 4.5★ de 189 reviews • New Balance 574 Classic: $89.99, 4.3★ de 156 reviews El trust score de la demo store era 44,7/100 (v4.1), banda RESTRICTED, verificación STANDARD cuando se revisó este post, el 2026-09-22. No te lleves esa cifra de aquí: se mueve, y el valor autoritativo va firmado en https://api.trusteed.xyz/api/v1/stores/demo-store/trust-score. Cada respuesta MCP de esta tienda trae el valor vigente en su bloque `merchant_trust`. RESTRICTED supera el suelo duro de elegibilidad (≥ 0,3 en escala 0–1) —o sea, el agente puede operar—, pero no es una nota alta ni pretende serlo: la demo store es un sandbox sin pedidos liquidados detrás, y el modelo lo dice.

Paso 1: buscar productos

El agente empieza buscando en el catálogo. Sin autenticación necesaria. ```bash curl https://trusteed.xyz/demo-store/mcp \ -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"search_products","arguments":{"query":"running shoes","limit":5}},"id":1}' ``` La respuesta devuelve productos coincidentes ordenados por relevancia y trust score. Cada resultado incluye: id, título, precio, moneda, valoración, estado de stock y URL de imagen. El agente ahora tiene IDs de producto que puede usar en los pasos siguientes.

Paso 2: obtener detalles del producto

Con un ID de producto de la búsqueda, el agente obtiene detalles completos incluyendo variantes, especificaciones y Schema.org JSON-LD. ```bash curl https://trusteed.xyz/demo-store/mcp \ -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_product_details","arguments":{"product_id":"prod-001"}},"id":2}' ``` La respuesta incluye todo lo que el agente necesita para hacer una recomendación: precio vs precio anterior (para cálculo de descuento), opciones de variante con stock por variante, composición de material, peso y un bloque JSON-LD completo que el agente puede usar para razonamiento semántico.

Paso 3: crear un carrito

Ahora el agente añade items al carrito. Esto requiere una clave sandbox. ```bash # Primero, obtener clave sandbox de 24 horas curl -X POST https://trusteed.xyz/api/v1/sandbox/key # Devuelve: {"key":"agnt_sandbox_...","expires_in":86400} # Crear carrito con la clave curl https://trusteed.xyz/demo-store/mcp \ -X POST \ -H "Content-Type: application/json" \ -H "X-Agent-Api-Key: agnt_sandbox_..." \ -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"create_cart","arguments":{"items":[{"product_id":"prod-001","quantity":1,"variant_id":"v-snk-001a"}]}},"id":3}' ``` La respuesta incluye un `cart_id` (UUID), line items con precios, y un `status: "NOT_READY_FOR_PAYMENT"`. El carrito necesita envío y checkout para completarse.

Paso 4: obtener tarifas de envío (con elicitation)

Aquí es donde las cosas se ponen interesantes. Cuando el agente llama a `get_shipping_rates` sin dirección de envío, el servidor MCP activa elicitation: una funcionalidad nativa de MCP que recopila input del usuario inline. En Claude.ai, el usuario ve un formulario inline aparecer directamente en el chat: - Dirección (calle y número) - Ciudad - Código de país (ISO-2: US, ES, DE...) - Código postal - Provincia/Estado (opcional) El usuario completa el formulario, Claude pasa los datos de vuelta a la herramienta, y las tarifas de envío se calculan. Sin redirecciones, sin páginas externas. Toda la interacción ocurre dentro de la conversación. La demo store devuelve dos opciones: - Standard (5–7 días): $9.99 - Express (2–3 días): $24.99

Paso 5: elegir la opción de envío

El agente selecciona un método de envío pasando el `shipping_handle` de la respuesta de tarifas. ```bash curl https://trusteed.xyz/demo-store/mcp \ -X POST \ -H "Content-Type: application/json" \ -H "X-Agent-Api-Key: agnt_sandbox_..." \ -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"select_shipping_option","arguments":{"cart_id":"<UUID>","shipping_handle":"standard"}},"id":5}' ``` El total del carrito se recalcula para incluir los $9.99 de envío.

Paso 6: aplicar un código de descuento

Tres códigos de descuento funcionan en la demo store: - WELCOME10: 10% de descuento en el subtotal - DEMO20: 20% de descuento en el subtotal - FREESHIP: Envío gratis (elimina el coste de envío) ```bash curl https://trusteed.xyz/demo-store/mcp \ -X POST \ -H "Content-Type: application/json" \ -H "X-Agent-Api-Key: agnt_sandbox_..." \ -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"apply_discount","arguments":{"cart_id":"<UUID>","discount_code":"WELCOME10"}},"id":6}' ``` Con WELCOME10 aplicado a un item de $130: subtotal baja a $117, más $9.99 de envío = $126.99 total.

Paso 7: preview del checkout

Antes de completar la compra, el agente previsualiza el resumen completo del pedido. ```bash curl https://trusteed.xyz/demo-store/mcp \ -X POST \ -H "Content-Type: application/json" \ -H "X-Agent-Api-Key: agnt_sandbox_..." \ -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"preview_checkout","arguments":{"cart_id":"<UUID>"}},"id":7}' ``` La respuesta incluye line items, método de envío, detalles de descuento y el total final. El estado pasa a `READY_FOR_PAYMENT`. Esta es la última oportunidad del agente para verificar que todo está correcto antes de completar la compra.

Paso 8: completar el checkout

El paso final crea el pedido. Si la información del comprador (nombre, email) no se proporcionó antes, aparece un segundo formulario de elicitation en Claude.ai. ```bash curl https://trusteed.xyz/demo-store/mcp \ -X POST \ -H "Content-Type: application/json" \ -H "X-Agent-Api-Key: agnt_sandbox_..." \ -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"complete_checkout","arguments":{"checkout_session_id":"<UUID>","idempotency_key":"unique-key-123","buyer":{"name":"Demo User","email":"demo@example.com"},"payment_method":"MOCK"}},"id":8}' ``` El `idempotency_key` garantiza reintentos seguros: enviar la misma clave dos veces devuelve el mismo resultado sin doble cargo. `payment_method: "MOCK"` omite el procesamiento de pago por completo: crea un pedido `COMPLETED` y no cobra nada. La respuesta: `{ "order_id": "...", "status": "COMPLETED", "totals": { ... } }`. Hecho: el agente ha cursado un pedido de punta a punta, sin que se mueva un céntimo. `COMPLETED` es una de las tres salidas terminales de esta tool, y cuál te toca depende del método de pago, no de que todo haya ido bien: • `COMPLETED` — el camino MOCK de arriba. Existe un pedido; no se cobró nada. • `PENDING_EXTERNAL_CONFIRMATION` — el comprador tiene que terminar en otro sitio (salto al navegador, aprobación de PayPal). El pedido es real y todavía no está pagado. • `READY_FOR_PAYMENT` — la respuesta trae una URL de pago y la liquidación ocurre en la página del procesador del comerciante, nunca dentro de la llamada a la tool. Trata las dos últimas como «aún sin pagar». Lo único que demuestra que el dinero se movió es la señal de liquidación del procesador del comerciante, que es justo lo que registra el Trust Receipt.

Lo que el agente ve tras bambalinas

Durante todo este flujo, varios sistemas invisibles están trabajando: • Trust scoring: La nota de la demo store (44,7/100 el 2026-09-22, banda RESTRICTED) supera el filtro de elegibilidad duro (≥ 0,3 en escala 0–1), que es lo que permite que el checkout siga adelante. El trust pesa además un 30% en el ranking de búsqueda, así que una tienda RESTRICTED es elegible, no favorecida. • Detección de protocolo: Cada petición la analiza el middleware protocol-detector, que elige adapter a partir del método de pago. Lee «soporta» con cuidado: la demo store tiene ACP, AP2, x402 y UCP activados en su propia configuración, pero quien decide si algo puede liquidar es el estado de plataforma de esos rails — y hoy no liquida ninguno. ACP está desplegado sin ningún comercio configurado en producción; AP2 v0.1 por REST está retirado y v0.2 sobre UCP sigue en construcción; x402 devuelve `x402_not_configured` para todos los comercios. El árbitro es el registro de capacidades firmado en /.well-known/trusteed-capabilities.json, y /es/status lo pinta. Por eso este walkthrough usa MOCK. • Motor de políticas KYAI: Cada intención de checkout pasa por las reglas de política del comerciante antes de que se cree un pedido. Lo que devuelven depende de las reglas que ese comerciante tenga configuradas y de la identidad y el mandato del propio agente, no sólo de la nota de la tienda: un checkout bloqueado vuelve como rechazo con código de regla, no como un fallo silencioso. • Rate limiting: El endpoint demo tiene límite de 20 peticiones/minuto por IP. Las claves sandbox obtienen 50 peticiones de checkout/hora. El acceso de producción se habilita por entorno y activación del comerciante, no por tiers públicos de autoservicio. • Limpieza de sesiones: Las sesiones de carrito expiran tras 30 minutos de inactividad. Cada petición crea una instancia MCP fresca: sin conexiones persistentes.

Pruébalo tú mismo

La forma más rápida de experimentar este flujo: 1. En Claude.ai: Añade la URL del servidor MCP `https://trusteed.xyz/demo-store/mcp` a tu configuración de Claude Desktop y pide a Claude 'busca zapatillas de running en la demo store' 2. Vía curl: Copia cualquiera de los comandos anteriores y ejecútalos en tu terminal. Las herramientas de descubrimiento funcionan inmediatamente sin configuración. 3. En el playground: Visita trusteed.xyz/en/demo-store y usa el playground interactivo MCP para ejecutar herramientas visualmente con un panel de traza de sesión. 4. Vía NLWeb: Prueba búsqueda en lenguaje natural en `POST /demo-store/ask` con `{ "query": "chaqueta impermeable barata", "mode": "list" }` para búsqueda semántica vectorial.

Preguntas frecuentes

¿Necesito una API key para buscar productos en la demo store?

No. Las herramientas de descubrimiento (search_products, get_product_details, browse_categories, get_merchant_profile) funcionan sin autenticación en el endpoint demo. Todas las herramientas de checkout (create_cart, get_shipping_rates, select_shipping_option, apply_discount, preview_checkout, complete_checkout) necesitan una clave sandbox, create_cart incluida (obtén una gratis con POST /api/v1/sandbox/key) y todas las tools de checkout que gastan o liquidan piden además la cabecera X-Payment-Mandate; el resto de herramientas de checkout (create_cart y attach_agent_identity y verify_age_over_n y verify_residence_country y verify_legal_person_authorization y apply_discount y get_shipping_rates y select_shipping_option y create_payment_mandate y update_payment_mandate y cancel_payment_mandate y ucp_create_checkout y ucp_update_checkout y ucp_add_items_to_checkout y ucp_get_checkout y ucp_cancel_checkout y get_checkout_state y quote_checkout y get_trust_receipt y verify_trust_receipt) no la necesitan.

¿Qué pasa si llamo a complete_checkout dos veces con la misma idempotency key?

La segunda llamada devuelve el mismo resultado que la primera sin crear un pedido o cargo duplicado. Esto es por diseño: las idempotency keys aseguran reintentos seguros en caso de fallos de red. Siempre pasa un idempotency_key para complete_checkout.

¿Cómo funciona la elicitation de dirección fuera de Claude.ai?

La elicitation es una funcionalidad del SDK MCP (v1.28.0+). En Claude.ai se renderiza como formulario inline. En otros clientes MCP, el comportamiento depende de la implementación del cliente. También puedes omitir la elicitation pasando shipping_address directamente en los argumentos de get_shipping_rates.

¿Los códigos de descuento son reales?

En modo sandbox, sí: WELCOME10 (10% descuento), DEMO20 (20% descuento) y FREESHIP (envío gratis) funcionan y ajustan correctamente el total del carrito. En producción, los merchants configuran sus propios códigos de descuento.

¿Puedo probar checkout PayPal o x402 en la demo store?

La demo store tiene varios métodos de pago activados, pero hoy sólo uno completa un walkthrough: 'MOCK', que crea un pedido y no cobra nada. 'ACP' enruta a Stripe en modo test y 'PAYPAL' al sandbox de PayPal con redirect de aprobación del comprador; ninguno está configurado para liquidar en producción. x402 es el caso más claro: el rail está desplegado y devuelve `x402_not_configured` para todos los comercios, así que aquí no completa ningún checkout x402, ni siquiera simulado. El árbitro del estado de cada rail es el registro firmado en /.well-known/trusteed-capabilities.json, y /es/status lo pinta.

Fuentes y referencias

Artículos relacionados

Guías de integración

Odoo + MCP en 15 Minutos: Conecta tu ERP a Agentes IA

Conecta tu instancia Odoo 16, 17 o 18 a agentes IA en menos de 15 minutos. Un conector JSON-RPC, cero cambios en Odoo. Tus productos, niveles de stock y listas de precios se vuelven descubribles y comprables por Claude, GPT y otros agentes IA vía MCP.

Flujo de compra de un agente IA: walkthrough de la demo store | Trusteed | Trusteed