Tu agente puede gestionar la tienda, no solo los textos
La mayoría de los servidores MCP de CMS se quedan en el contenido. Aquí, un caso de soporte - reembolso, descuento, banner, publicación - resuelto por un agente en una conversación, y las salvaguardas alrededor.
Una tarde de martes
Un cliente escribe: la taza llegó rota. Esto es lo que suele costar solucionarlo en una configuración headless:
- Reembolsar el dinero en el proveedor de pagos.
- Registrar el reembolso en el backend de comercio para que el stock y los informes coincidan.
- Crear un código de descuento para que el cliente vuelva.
- Ya que estás, el banner de la página de inicio sigue anunciando la promoción de la semana pasada. Cámbialo en el CMS y publica.
Son tres o cuatro paneles de administración y, con la mayoría de los CMS headless, al menos dos proveedores, porque el CMS guarda los textos y otra cosa guarda los pedidos.
En cmssy los pedidos, los descuentos y las páginas viven en un solo workspace, y el servidor MCP los expone todos. Cada paso después del primero cabe en una sola conversación con un agente.
La misma tarde, en una conversación
Esto es Claude Code conectado a un workspace de cmssy mediante MCP. Los prompts son lo que escribes; los nombres de herramienta son lo que Claude llama.
1. Encuentra el pedido
Busca el último pedido de anna@example.com y muéstrame sus líneas.Claude llama a list_orders con search (coincide con el email del cliente) y después a get_order para ver las líneas, pagos, paquetes y totales.
2. Registra el reembolso
Reembolsé la taza en Stripe, id de reembolso re_3Q... por 24.00 EUR.
Regístralo en el pedido.Claude llama a refund_order con el id del pedido, amount: 2400 (el dinero va en unidades menores) y el id de reembolso de Stripe como reference.
Fíjate en lo que esto hace y lo que no. cmssy no mueve dinero. Los pagos los cobra y los devuelve tu propio proveedor. cmssy registra el resultado. El id de reembolso es obligatorio, y enviar el mismo id dos veces no registra nada dos veces. Un reembolso total también devuelve al stock las unidades que aún no se habían enviado y cancela los paquetes que seguían esperando su envío. En cualquier caso, cmssy dispara un webhook order.refunded o order.partially_refunded, de modo que tu servicio de contabilidad o de email se entera.
3. Crea el código de disculpa
Crea un código del 15% SORRY-ANNA, un solo uso, válido durante 30 días.create_discount con type: "percentage", value: 15, maxUses: 1 y un endsAt. La tienda lo aplica en el checkout a través de la API de entrega, como cualquier otro código.
4. Actualiza el bloque de promoción
En la página de inicio, cambia el banner de promoción para anunciar envío
gratis este fin de semana, en todos los idiomas que tenemos.Claude lee la página con get_page, encuentra el bloque del banner y lo cambia con update_block_content. Claude toma los nombres de campo del manifiesto de bloques de tu sitio (list_block_types), y el servidor avisa cuando el contenido no coincide con él, así que el banner recibe los campos que renderiza tu componente. El cambio queda en el borrador.
5. Publica
Publica la página de inicio.publish_page. Si tu sitio tiene una ruta de revalidación suscrita a content.changed, el nuevo banner está en vivo segundos después. cmssy no renderiza la página; lo hace tu app, en tu hosting.
Qué cubre el servidor
El mismo servidor, con el mismo token:
- Contenido: páginas, bloques, regiones de layout, page types, medios, formularios y sus envíos, modelos de datos personalizados y registros.
- Comercio: pedidos (pedidos manuales, ediciones, pagos registrados, reembolsos, cancelaciones, facturas, el pipeline de pedidos), devoluciones, envíos, carritos, descuentos, productos y stock, listas de precios y canales de venta.
- Clientes: las cuentas que inician sesión en tu sitio. Claude puede listarlas, suspender o desbloquear una, o enviar un restablecimiento de contraseña.
- Webhooks: crear, actualizar y rotar endpoints, y leer su registro de entregas.
La lista completa, con el permiso que necesita cada herramienta, está en la documentación del servidor MCP.
Cómo se compara
Contentful, Sanity y Storyblok tienen servidores MCP oficiales, y son buenos en lo que esos productos almacenan: entradas y documentos, assets, tipos de contenido y esquemas, releases. Si todo lo que necesitas es un agente que escriba y publique contenido, cualquiera de ellos sirve, y nosotros también.
La diferencia aparece cuando la tarea toca dinero. Esas plataformas no guardan tus pedidos; una tienda construida sobre ellas mantiene los pedidos en un sistema de comercio aparte. Los pasos 1 y 2 de arriba pasan entonces por la API de otro proveedor, con otro servidor MCP o una integración que mantienes tú. En cmssy el pedido, el descuento y el banner están en el mismo workspace, bajo los mismos roles, detrás del mismo servidor.
Y para dejar claros los límites: cmssy no es un procesador de pagos y no quiere serlo. Tu checkout habla con Stripe u otro proveedor, tu backend verifica el webhook del proveedor y solo entonces el pago se registra en cmssy.
Salvaguardas
Un agente que puede reembolsar un pedido merece más cuidado que uno que edita un título. Lo que lo limita de verdad:
- Roles. Un token o una conexión alojada actúa como la persona que lo creó, con el rol de esa persona en el workspace. Un reembolso requiere el permiso orders-manage. Un miembro sin él recibe un error, no un reembolso.
- Conexiones de solo lectura. Cuando conectas Claude mediante el servidor alojado puedes conceder solo lectura. Entonces el servidor rechaza toda escritura, diga lo que diga el prompt.
- Aprobación en el cliente. El servidor marca como destructiva cada herramienta que borra, publica, reembolsa o cancela. Claude Code pregunta antes de ejecutar cualquier herramienta que no hayas permitido, así que si mantienes
refund_order,cancel_order,publish_pageydelete_pagefuera de tu lista de permitidos, apruebas cada una a medida que llega. - El asistente del admin también pregunta. Cuando las mismas herramientas se ejecutan en el asistente del admin, el propio servidor retiene las destructivas hasta que las apruebas con un botón.
Pruébalo
La configuración consiste en un API token, un .mcp.json y dos variables de entorno. El tutorial de Claude Code lo recorre con una app Next.js. El contenido funciona en todos los planes; el carrito y el checkout requieren Pro.