Shopify MCP Server

Interaja com dados da loja Shopify, como produtos, clientes e pedidos, usando a API GraphQL.

Documentação

Shopify MCP Server

Servidor MCP para a API da Shopify, permitindo interação com dados da loja (produtos, clientes, pedidos, etc.) via GraphQL.

Recursos

Fornece ferramentas para gerenciamento de produtos, clientes e pedidos, integração direta com GraphQL e tratamento claro de erros.

Pré-requisitos

  1. Node.js (v16+)
  2. Token de acesso do aplicativo personalizado da Shopify

Instalação

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

Configuração da Shopify

  1. Criar aplicativo personalizado: No admin da Shopify > Configurações > Apps e canais de vendas > Desenvolver apps > Criar um app.
  2. Configurar escopos: Conceda permissões read/write para products, customers e orders.
  3. Instalar o app e obter o token: Instale o aplicativo e copie o token de acesso da API de administrador.
  4. Criar o arquivo .env na raiz do projeto:
    SHOPIFY_ACCESS_TOKEN=your_access_token
    MYSHOPIFY_DOMAIN=your-store.myshopify.com
    
  5. Configurar o 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: Use o caminho correto para o repositório clonado e armazene seu token com segurança.

Ferramentas Disponíveis

Gerenciamento de Produtos

  1. findProducts: Obter todos os produtos ou pesquisar por título.
    • searchTitle (string opcional): Filtrar por título.
    • limit (número): Máximo de produtos.
  2. listProductsInCollection: Obter produtos de uma coleção.
    • collectionId (string): ID da coleção.
    • limit (número opcional, padrão: 10): Máximo de produtos.
  3. getProductsByIds: Obter produtos por IDs.
    • productIds (array de strings): IDs dos produtos.
  4. getVariantsByIds: Obter variantes por IDs.
    • variantIds (array de strings): IDs das variantes.

Gerenciamento de Clientes

  1. listCustomers: Obter clientes com paginação.
    • limit (número opcional): Máximo de clientes.
    • next (string opcional): Cursor da próxima página.
  2. addCustomerTags: Adicionar tags a um cliente.
    • customerId (string): ID do cliente.
    • tags (array de strings): Tags a adicionar.

Gerenciamento de Pedidos

  1. findOrders: Obter pedidos com filtragem/ordenação avançada.
    • first (número opcional): Limite de pedidos.
    • after (string opcional): Cursor da próxima página.
    • query (string opcional): Consulta de filtro.
    • sortKey (enum opcional): Campo de ordenação.
    • reverse (booleano opcional): Inverter ordenação.
  2. getOrderById: Obter um único pedido por ID.
    • orderId (string): ID do pedido.
  3. createDraftOrder: Criar um pedido de rascunho.
    • lineItems (array): Itens (variantId, quantity).
    • email (string): E-mail do cliente.
    • shippingAddress (objeto): Detalhes de envio.
    • note (string opcional): Nota do pedido.
  4. completeDraftOrder: Concluir um pedido de rascunho.
    • draftOrderId (string): ID do pedido de rascunho.
    • variantId (string): ID da variante.

Gerenciamento de Descontos

  1. createDiscountCode: Criar um código de desconto básico.
    • title (string): Título do desconto.
    • code (string): Código do desconto.
    • valueType (enum): 'percentage' ou 'fixed_amount'.
    • value (número): Valor do desconto.
    • startsAt (string): Data de início (ISO).
    • endsAt (string opcional): Data de término (ISO).
    • appliesOncePerCustomer (booleano): Limitar a um uso por cliente.

Gerenciamento de Coleções

  1. listCollections: Obter todas as coleções.
    • limit (número opcional, padrão: 10): Máximo de coleções.
    • name (string opcional): Filtrar por nome.

Informações da Loja

  1. getShopDetails: Obter detalhes básicos da loja (sem entradas).
  2. getExtendedShopDetails: Obter detalhes estendidos da loja (sem entradas).

Gerenciamento de Webhooks

  1. manageWebhooks: Gerenciar webhooks.
    • action (enum): 'subscribe', 'find', 'unsubscribe'.
    • callbackUrl (string): URL do webhook.
    • topic (enum): Tópico do webhook.
    • webhookId (string opcional): Necessário para cancelar a inscrição.

Ferramentas de Depuração

  1. debugGetVariantMetafield: Obter metadados de variante e size_chart_json.
    • variantId (string): GID da variante.

Ferramentas de Desenvolvedor

  1. introspect_admin_schema: Inspecionar o esquema GraphQL da API de administrador.
    • query (string): Termo de filtro.
    • filter (array opcional): Filtrar por 'types', 'queries', 'mutations', 'all'.
  2. search_dev_docs: Pesquisar na documentação do shopify.dev.
    • prompt (string): Consulta de pesquisa.

Depuração

Verifique os logs do MCP do Claude Desktop: tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Problemas comuns:

  • Autenticação: Verifique o token, o formato do domínio e os escopos da API.
  • Erros de API: Verifique limites de taxa, formatos de entrada e campos obrigatórios.

Desenvolvimento

npm install
npm run build
npm test

Dependências

  • @modelcontextprotocol/sdk
  • graphql-request
  • zod

Licença

MIT


Nota: Fork do repositório original do shopify-mcp-server