Shopify MCP Server

Interactúa con los datos de la tienda Shopify, como productos, clientes y pedidos, utilizando la API GraphQL.

Documentación

Shopify MCP Server

Servidor MCP para la API de Shopify, que permite la interacción con los datos de la tienda (productos, clientes, pedidos, etc.) mediante GraphQL.

Características

Proporciona herramientas para la gestión de productos, clientes y pedidos, integración directa con GraphQL y manejo claro de errores.

Requisitos previos

  1. Node.js (v16+)
  2. Shopify Custom App Access Token

Instalación

git clone https://github.com/pashpashpash/shopify-mcp-server.git
cd shopify-mcp-server
npm install
npm run build

Configuración de Shopify

  1. Crear aplicación personalizada: En el administrador de Shopify > Configuración > Aplicaciones y canales de venta > Desarrollar aplicaciones > Crear una aplicación.
  2. Configurar alcances: Otorga permisos de read/write para products, customers y orders.
  3. Instalar la aplicación y obtener el token: Instala la aplicación y copia el token de acceso a la API de administración.
  4. Crea el archivo .env en la raíz del proyecto:
    SHOPIFY_ACCESS_TOKEN=your_access_token
    MYSHOPIFY_DOMAIN=your-store.myshopify.com
    
  5. Configura Claude Desktop (claude_desktop_config.json):
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%/Claude/claude_desktop_config.json
    {
      "mcpServers": {
        "shopify": {
          "command": "node",
          "args": ["path/to/shopify-mcp-server/dist/index.js"],
          "env": {
            "SHOPIFY_ACCESS_TOKEN": "your_access_token",
            "MYSHOPIFY_DOMAIN": "your-store.myshopify.com"
          }
        }
      }
    }
    
    Nota: Usa la ruta correcta al repositorio clonado y guarda tu token de forma segura.

Herramientas disponibles

Gestión de productos

  1. findProducts: Obtener todos los productos o buscar por título.
    • searchTitle (cadena opcional): Filtrar por título.
    • limit (número): Máximo de productos.
  2. listProductsInCollection: Obtener productos de una colección.
    • collectionId (cadena): ID de la colección.
    • limit (número opcional, predeterminado: 10): Máximo de productos.
  3. getProductsByIds: Obtener productos por IDs.
    • productIds (matriz de cadenas): IDs de productos.
  4. getVariantsByIds: Obtener variantes por IDs.
    • variantIds (matriz de cadenas): IDs de variantes.

Gestión de clientes

  1. listCustomers: Obtener clientes con paginación.
    • limit (número opcional): Máximo de clientes.
    • next (cadena opcional): Cursor de la siguiente página.
  2. addCustomerTags: Agregar etiquetas a un cliente.
    • customerId (cadena): ID del cliente.
    • tags (matriz de cadenas): Etiquetas a agregar.

Gestión de pedidos

  1. findOrders: Obtener pedidos con filtrado/ordenamiento avanzado.
    • first (número opcional): Límite de pedidos.
    • after (cadena opcional): Cursor de la siguiente página.
    • query (cadena opcional): Consulta de filtro.
    • sortKey (enum opcional): Campo de ordenamiento.
    • reverse (booleano opcional): Orden inverso.
  2. getOrderById: Obtener un pedido individual por ID.
    • orderId (cadena): ID del pedido.
  3. createDraftOrder: Crear un pedido borrador.
    • lineItems (matriz): Artículos (variantId, cantidad).
    • email (cadena): Correo electrónico del cliente.
    • shippingAddress (objeto): Detalles de envío.
    • note (cadena opcional): Nota del pedido.
  4. completeDraftOrder: Completar un pedido borrador.
    • draftOrderId (cadena): ID del pedido borrador.
    • variantId (cadena): ID de la variante.

Gestión de descuentos

  1. createDiscountCode: Crear un código de descuento básico.
    • title (cadena): Título del descuento.
    • code (cadena): Código de descuento.
    • valueType (enum): 'percentage' o 'fixed_amount'.
    • value (número): Valor del descuento.
    • startsAt (cadena): Fecha de inicio (ISO).
    • endsAt (cadena opcional): Fecha de fin (ISO).
    • appliesOncePerCustomer (booleano): Limitar un uso por cliente.

Gestión de colecciones

  1. listCollections: Obtener todas las colecciones.
    • limit (número opcional, predeterminado: 10): Máximo de colecciones.
    • name (cadena opcional): Filtrar por nombre.

Información de la tienda

  1. getShopDetails: Obtener detalles básicos de la tienda (Sin entradas).
  2. getExtendedShopDetails: Obtener detalles ampliados de la tienda (Sin entradas).

Gestión de webhooks

  1. manageWebhooks: Gestionar webhooks.
    • action (enum): 'subscribe', 'find', 'unsubscribe'.
    • callbackUrl (cadena): URL del webhook.
    • topic (enum): Tema del webhook.
    • webhookId (cadena opcional): Requerido para cancelar la suscripción.

Herramientas de depuración

  1. debugGetVariantMetafield: Obtener variante y metafield de size_chart_json.
    • variantId (cadena): GID de la variante.

Herramientas para desarrolladores

  1. introspect_admin_schema: Inspeccionar el esquema GraphQL de la API de administración.
    • query (cadena): Término de filtro.
    • filter (matriz opcional): Filtrar por 'types', 'queries', 'mutations', 'all'.
  2. search_dev_docs: Buscar en la documentación de shopify.dev.
    • prompt (cadena): Consulta de búsqueda.

Depuración

Revisa los registros MCP de Claude Desktop: tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Problemas comunes:

  • Autenticación: Verifica el token, el formato del dominio y los alcances de la API.
  • Errores de API: Verifica los límites de velocidad, los formatos de entrada y los campos obligatorios.

Desarrollo

npm install
npm run build
npm test

Dependencias

  • @modelcontextprotocol/sdk
  • graphql-request
  • zod

Licencia

MIT


Nota: Bifurcación del repositorio original shopify-mcp-server