Servidor MCP de Shopify
Servidor MCP para la API de Shopify, que permite interactuar con los datos de la tienda a través de la API GraphQL. Este servidor proporciona herramientas para la gestión de productos, clientes, pedidos, etc.
Características
- Gestión deproductos: Búsqueda y recuperación de información de productos
- Gestión de clientes: Cargar datos de clientes y gestionar etiquetas de clientes
- Gestión depedidos: Consulta y filtrado avanzado de pedidos
- Integración GraphQL: Integración directa con la API GraphQL Admin de Shopify
- Gestión integral de errores: Mensajes de error claros para problemas de API y autenticación
Herramientas
obtener-productos
- Obtener todos los productos o buscar por título
- Entradas
searchTitle
(cadena opcional): Filtrar productos por títulolimit
(número): Número máximo de productos a devolver
- Devuelve: Detalles del producto formateados, incluidos el título, la descripción, el identificador y las variantes
obtener-productos-por-colección
- Obtener productos de una colección específica
- Entradas
collectionId
(cadena): ID de la colección de la que se obtienen los productoslimit
(número opcional, por defecto: 10): Número máximo de productos a devolver
- Devuelve: Detalles formateados de los productos de la colección especificada
obtener-productos-por-id
- Obtener productos por su ID
- Entradas
productIds
(matriz de cadenas): Matriz de IDs de productos a recuperar
- Devuelve: Detalles formateados de los productos especificados
actualizar-precio-producto
- Actualiza los precios de los productos para su ID
- Entradas
productId
(cadena): ID del producto a actualizarprice
(cadena): Nuevo precio del producto
- Devuelve: Respuesta de la actualización
obtener-variantes-por-id
- Obtener variantes de productos por sus IDs
- Entradas
variantIds
(matriz de cadenas): Matriz de IDs de variantes a recuperar
- Devuelve: Información detallada de la variante incluyendo detalles del producto
obtener-clientes
- Obtener clientes de shopify con soporte de paginación
- Entradas
limit
(número opcional): Número máximo de clientes a devolvernext
(cadena opcional): Cursor de la página siguiente
- Devuelve: Datos del cliente en formato JSON
etiqueta-cliente
- Añadir etiquetas a un cliente
- Entradas
customerId
(cadena): ID del cliente a etiquetartags
(array de cadenas): Etiquetas a añadir al cliente
- Devuelve: Mensaje de éxito o fracaso
obtener-pedidos
- Obtener pedidos con filtrado y ordenación avanzados
- Entradas
first
(número opcional): Límite de órdenes a devolverafter
(cadena opcional): Cursor de la página siguientequery
(cadena opcional): Filtrar órdenes utilizando la sintaxis de la consultasortKey
(enum opcional): Campo para ordenar por ('PROCESSED_AT', 'TOTAL_PRICE', 'ID', 'CREATED_AT', 'UPDATED_AT', 'ORDER_NUMBER')reverse
(booleano opcional): Orden de clasificación inverso
- Devuelve: Detalles del pedido formateados
obtener-orden
- Obtener un único pedido por ID
- Entradas
orderId
(cadena): ID de la orden a recuperar
- Devuelve: Información detallada del pedido
crear-descuento
- Crear un código de descuento básico
- Entradas
title
(cadena): Título del descuentocode
(cadena): Código de descuento que introducirán los clientesvalueType
(enum): Tipo de descuento ('porcentaje' o 'importe_fijo')value
(número): Valor del descuento (porcentaje como decimal o importe fijo)startsAt
(cadena): Fecha de inicio en formato ISOendsAt
(cadena opcional): Fecha final opcional en formato ISOappliesOncePerCustomer
(booleano): Si el descuento sólo puede utilizarse una vez por cliente
- Devuelve: Detalles del descuento creado
crear-borrador-pedido
- Crear un borrador de pedido
- Entradas
lineItems
(array): Matriz de artículos con variantId y cantidademail
(cadena): Email del clienteshippingAddress
(objeto): Datos de la dirección de envíonote
(cadena opcional): Nota opcional para el pedido
- Devoluciones: Detalles del borrador de pedido creado
completar-orden-borrador
- Completar una orden de giro
- Entradas
draftOrderId
(cadena): ID del borrador de orden a completarvariantId
(cadena): ID de la variante en el proyecto de orden
- Devuelve: Detalles del pedido completado
obtener-colecciones
- Obtener todas las colecciones
- Entradas
limit
(número opcional, por defecto: 10): Número máximo de colecciones a devolvername
(cadena opcional): Filtrar colecciones por nombre
- Devuelve: Detalles de la colección
obtener-tienda
- Obtener detalles de la tienda
- Entradas: Ninguno
- Devuelve: Información básica de la tienda
obtener-detalles-de-la-tienda
- Obtiene información ampliada de la tienda, incluidos los países de envío
- Introduce: Ninguno
- Devuelve: Información ampliada de la tienda, incluidos los países de envío
gestionar-webhook
- Suscribir, encontrar o desuscribir webhooks
- Entradas
acción
(enum): Acción a realizar ('subscribe', 'find', 'unsubscribe')callbackUrl
(cadena): URL de devolución de llamada del webhooktopic
(enum): Tema del webhook al que suscribirsewebhookId
(cadena opcional): ID del webhook (necesario para darse de baja)
- Devuelve: Detalles del webhook o mensaje de éxito
Configurar
Token de acceso a Shopify
Para utilizar este servidor MCP, tendrás que crear una aplicación personalizada en tu tienda Shopify:
- Desde el administrador de Shopify, ve a Configuración > Aplicaciones y canales de venta
- Haz clic en Desarrollar aplicaciones (es posible que primero tengas que activar la vista previa para desarrolladores)
- Haz clic en Crear una aplicación
- Establece un nombre para tu aplicación (por ejemplo, "Shopify MCP Server")
- Haz clic en Configurar ámbitos de la API de administración
- Seleccione los siguientes ámbitos
read_products
,write_products
read_customers
,write_customers
read_orders
,write_orders
- Haga clic en Guardar
- Haga clic en Instalar aplicación
- Haz clic en Instalar para dar acceso a la aplicación a los datos de tu tienda
- Tras la instalación, verás tu código de acceso a la API de administración
- Cópialo, lo necesitarás para la configuración
Nota: Guarda tu token de acceso de forma segura. Proporciona acceso a los datos de su tienda y nunca debe ser compartida o comprometida con el control de versiones. Más detalles sobre cómo crear una aplicación Shopify se puede encontrar aquí.
Uso con Claude Desktop
Añade a tu claude_desktop_config.json
:
{ "mcpServers": { "shopify": { "command": "npx", "args": ["-y", "shopify-mcp-server"], "env": { "SHOPIFY_ACCESS_TOKEN": "<SU_ACCESS_TOKEN>", "MYSHOPIFY_DOMAIN": "<TU_TIENDA>.myshopify.com" } } }
Desarrollo
- Clonar el repositorio
- Instala las dependencias:
npm install
- Crear un archivo
.env
SHOPIFY_ACCESS_TOKEN=tu_acceso_token MYSHOPIFY_DOMAIN=tu_tienda.myshopify.com
- Construye el proyecto:
npm run build
- Ejecuta las pruebas:
npm test
Dependencias
- @modelcontextprotocol/sdk - Implementación del protocolo MCP
- graphql-request - Cliente GraphQL para la API de Shopify
- zod - Validación de tipos en tiempo de ejecución
Contribución
¡Las contribuciones son bienvenidas! Por favor, lea primero nuestras Directrices de Contribución.
Licencia
MIT
Comunidad
Construido con ❤️ utilizando el Protocolo de Contexto de Modelo