Printify MCP Server

ISC License
  • Linux
  • Apple

Integrations

  • Supports configuration through .env files to manage API keys and settings for Printify, Replicate, and other services.

  • Enables browsing and selection of product blueprints from the Printify catalog for creating print-on-demand items.

  • Provides containerized deployment options with pre-built Docker images that can be pulled from Docker Hub, along with Docker Compose configurations for easier setup.

Servidor MCP de Printify

Un servidor de Protocolo de Contexto de Modelo (MCP) para integrar asistentes de IA con la plataforma de impresión bajo demanda de Printify.

Tabla de contenido

Descripción general

El servidor MCP de Printify es un puente entre los asistentes de IA (como Claude) y la plataforma de impresión bajo demanda de Printify. Permite a los asistentes de IA crear y gestionar productos de impresión bajo demanda, generar diseños con IA y gestionar todos los aspectos de la gestión de productos mediante el Protocolo de Contexto de Modelo (MCP).

MCP es un estándar abierto desarrollado por Anthropic que estandariza cómo las aplicaciones proporcionan contexto a los Modelos de Lenguaje Grandes (LLM). Este servidor implementa la especificación MCP para exponer la funcionalidad de Printify a los asistentes de IA de forma estructurada.

Características

Este servidor MCP proporciona las siguientes capacidades:

Integración de API de Printify

  • Autenticación : inicialice el cliente API de Printify con su clave API
  • Tiendas : Enumere y administre las tiendas Printify
  • Productos : crear, leer, actualizar, eliminar y publicar productos
  • Catálogo : explore planos, proveedores de impresión y variantes
  • Imágenes : Cargue imágenes para usar en diseños de productos.

Generación de imágenes con IA

  • Integración de Replicate : genere imágenes utilizando el modelo Flux 1.1 Pro de Replicate
  • Flujo de trabajo combinado : genere imágenes con IA y cárguelas directamente en Printify en un solo paso

Documentación

  • Documentación en la herramienta : documentación completa para todos los aspectos de la creación de productos
  • Guía de flujo de trabajo : guías paso a paso para crear productos

Indicaciones

  • Generar descripción del producto : genere descripciones de productos atractivas basadas en los detalles del producto.

Prerrequisitos

  • Node.js (v18 o superior)
  • npm (v7 o superior)
  • Clave API de Printify
  • Replicar token de API (para generación de imágenes de IA)
  • Clave API de ImgBB (requerida si se utiliza el modelo Flux 1.1 Pro Ultra)

Instalación

# Clone the repository git clone https://github.com/tsavo/printify-mcp.git cd printify-mcp # Install dependencies npm install # Build the project npm run build

Configuración

Tiene dos opciones para configurar las variables de entorno que necesita el servidor:

Opción 1: Usar un archivo .env (recomendado)

  1. Cree un archivo .env en el directorio raíz del proyecto con las siguientes variables:
# Required for all functionality PRINTIFY_API_KEY=your_printify_api_key # Required if using the Flux 1.1 Pro Ultra model for image generation # The Ultra model generates high-resolution images that are too large for direct base64 upload IMGBB_API_KEY=your_imgbb_api_key # Optional: If not provided, the first shop in your account will be used PRINTIFY_SHOP_ID=your_shop_id # Optional: Only needed if you want to use image generation features REPLICATE_API_TOKEN=your_replicate_api_token

Puede utilizar el archivo .env.example como plantilla copiándolo:

cp .env.example .env # Then edit the .env file with your actual API keys

Opción 2: Uso de variables de entorno del sistema

Alternativamente, puede configurar estas variables directamente en el entorno de su sistema:

Windows (símbolo del sistema):

:: Required set PRINTIFY_API_KEY=your_printify_api_key :: Optional set PRINTIFY_SHOP_ID=your_shop_id :: Optional - only for image generation set REPLICATE_API_TOKEN=your_replicate_api_token

Ventanas (PowerShell):

# Required $env:PRINTIFY_API_KEY = "your_printify_api_key" # Optional $env:PRINTIFY_SHOP_ID = "your_shop_id" # Optional - only for image generation $env:REPLICATE_API_TOKEN = "your_replicate_api_token"

macOS/Linux:

# Required export PRINTIFY_API_KEY=your_printify_api_key # Optional export PRINTIFY_SHOP_ID=your_shop_id # Optional - only for image generation export REPLICATE_API_TOKEN=your_replicate_api_token

El servidor comprobará estas variables de entorno al iniciarse, independientemente de si están configuradas en un archivo .env o en el entorno del sistema.

Obtener una clave API de Printify

  1. Inicie sesión en su cuenta de Printify
  2. Vaya a Configuración > API
  3. Haga clic en "Crear nueva clave API".
  4. Copia la clave API y agrégala a tu archivo .env

Obtener un token de API de réplica

  1. Crea una cuenta en Replicate
  2. Vaya a la configuración de su cuenta
  3. Generar un token de API
  4. Copia el token y agrégalo a tu archivo .env

Uso

Iniciando el servidor

npm start

Esto iniciará el servidor MCP mediante el transporte stdio, lo que le permite comunicarse con clientes MCP como Claude Desktop. El servidor inicializará automáticamente el cliente API de Printify utilizando la clave API de la variable de entorno.

Modo de desarrollo

npm run dev

Esto iniciará el servidor en modo de desarrollo con recarga automática cuando cambien los archivos.

Uso con Claude Desktop

Hay tres formas de utilizar este servidor MCP con Claude Desktop:

Opción 1: Instalar desde npm (recomendado)

  1. Instalar el paquete globalmente:
    npm install -g @tsavo/printify-mcp
  2. Configure sus variables de entorno utilizando un archivo .env en su directorio actual o variables de entorno del sistema como se describe en la sección Configuración .
  3. Configurar Claude Desktop:
    • Abra Claude Desktop
    • Vaya a Configuración > Servidores MCP
    • Haga clic en "Agregar servidor"
    • Introduzca un nombre para el servidor (por ejemplo, "Printify MCP")
    • Seleccione “Comando” como tipo de transporte
    • Introduzca printify-mcp como comando
    • No se necesitan argumentos
    • Haga clic en "Agregar servidor"
  4. Pruebe la conexión pidiéndole a Claude que verifique el estado de Printify:
    Can you check the status of my Printify connection?
    El comando printify-mcp ejecuta el mismo código que el archivo index.ts original, pero empaquetado como un ejecutable que se puede ejecutar directamente desde la línea de comando.

Opción 2: Usar con npx

Si no desea instalar el paquete globalmente, puede usar npx:

  1. Configure sus variables de entorno como se describe en la sección Configuración .
  2. Configurar Claude Desktop:
    • Abra Claude Desktop
    • Vaya a Configuración > Servidores MCP
    • Haga clic en "Agregar servidor"
    • Introduzca un nombre para el servidor (por ejemplo, "Printify MCP")
    • Seleccione “Comando” como tipo de transporte
    • Ingrese npx como comando
    • Ingrese @tsavo/printify-mcp como argumentos
    • Haga clic en "Agregar servidor"

Opción 3: Usar Docker (recomendado para aislamiento)

Si prefiere ejecutar el servidor en un contenedor Docker, tiene dos opciones:

Opción 3A: Usar la imagen de Docker directamente desde Docker Hub
  1. Asegúrese de tener Docker instalado en su sistema
  2. Cree un directorio para sus archivos MCP de Printify:
    mkdir printify-mcp cd printify-mcp
  3. Crea un archivo .env con tus claves API:
    PRINTIFY_API_KEY=your_printify_api_key PRINTIFY_SHOP_ID=your_shop_id (optional) REPLICATE_API_TOKEN=your_replicate_api_token IMGBB_API_KEY=your_imgbb_api_key (required for Flux 1.1 Pro Ultra model)
  4. Cree un directorio temporal para archivos temporales:
    mkdir temp
  5. Ejecutar el contenedor Docker (dos opciones):Opción A: Usar variables de entorno directamente (recomendado)
    # For Linux/macOS/Windows PowerShell: docker run -it --name printify-mcp \ -e PRINTIFY_API_KEY=your_printify_api_key \ -e PRINTIFY_SHOP_ID=your_shop_id_optional \ -v $(pwd)/temp:/app/temp \ tsavo/printify-mcp:latest # For Windows Command Prompt: docker run -it --name printify-mcp ^ -e PRINTIFY_API_KEY=your_printify_api_key ^ -e PRINTIFY_SHOP_ID=your_shop_id_optional ^ -v %cd%/temp:/app/temp ^ tsavo/printify-mcp:latest
    Nota: Si desea utilizar las funciones de generación de imágenes (herramienta para generar y cargar imágenes), agregue el token API de Replicar:
    -e REPLICATE_API_TOKEN=your_replicate_api_token \
    Importante: si desea utilizar el modelo Flux 1.1 Pro Ultra para la generación de imágenes, DEBE agregar también la clave API ImgBB:
    -e IMGBB_API_KEY=your_imgbb_api_key \
    Opción B: Usar un archivo .env
    # For Linux/macOS: docker run -it --name printify-mcp \ -v $(pwd)/.env:/app/.env:ro \ -v $(pwd)/temp:/app/temp \ tsavo/printify-mcp:latest # For Windows PowerShell: docker run -it --name printify-mcp -v ${PWD}/.env:/app/.env:ro -v ${PWD}/temp:/app/temp tsavo/printify-mcp:latest # For Windows Command Prompt: docker run -it --name printify-mcp -v %cd%/.env:/app/.env:ro -v %cd%/temp:/app/temp tsavo/printify-mcp:latest
  6. Configurar Claude Desktop:
    • Abra Claude Desktop
    • Vaya a Configuración > Servidores MCP
    • Haga clic en "Agregar servidor"
    • Ingrese un nombre para el servidor (por ejemplo, "Printify MCP Docker")
    • Seleccione “Comando” como tipo de transporte
    • Ingrese docker como comando
    • Ingrese exec -i printify-mcp node dist/index.js como argumentos
    • Haga clic en "Agregar servidor"
Opción 3B: Compilar y ejecutar con Docker Compose
  1. Asegúrese de tener Docker y Docker Compose instalados en su sistema
  2. Clone este repositorio en su máquina local:
    git clone https://github.com/tsavo/printify-mcp.git cd printify-mcp
  3. Configurar variables de entorno (dos opciones):Opción A: Editar docker-compose.yml directamente (recomendado) Abra docker-compose.yml y descomente/edite las variables de entorno:
    environment: - NODE_ENV=production # Option 1: Set environment variables directly (recommended) - PRINTIFY_API_KEY=your_printify_api_key - PRINTIFY_SHOP_ID=your_shop_id_optional # Optional: Only needed if you want to use image generation features - REPLICATE_API_TOKEN=your_replicate_api_token # Required if using the Flux 1.1 Pro Ultra model for image generation - IMGBB_API_KEY=your_imgbb_api_key
    Opción B: Crear un archivo .env
    PRINTIFY_API_KEY=your_printify_api_key PRINTIFY_SHOP_ID=your_shop_id (optional) # Optional: Only needed if you want to use image generation features REPLICATE_API_TOKEN=your_replicate_api_token # Required if using the Flux 1.1 Pro Ultra model for image generation IMGBB_API_KEY=your_imgbb_api_key
    Luego descomente el montaje del volumen .env en docker-compose.yml:
    volumes: # Option 2: Mount a .env file for environment variables - ./.env:/app/.env:ro
  4. Construya e inicie el contenedor Docker:
    docker-compose up -d
  5. Configurar Claude Desktop:
    • Abra Claude Desktop
    • Vaya a Configuración > Servidores MCP
    • Haga clic en "Agregar servidor"
    • Ingrese un nombre para el servidor (por ejemplo, "Printify MCP Docker")
    • Seleccione “Comando” como tipo de transporte
    • Ingrese docker como comando
    • Ingrese exec -i printify-mcp node dist/index.js como argumentos
    • Haga clic en "Agregar servidor"
  6. Pruebe la conexión pidiéndole a Claude que verifique el estado de Printify:
    Can you check the status of my Printify connection?

Opción 4: Clonar y configurar el repositorio

Si prefieres trabajar con el código fuente directamente sin Docker:

  1. Clone este repositorio en su máquina local:
    git clone https://github.com/tsavo/printify-mcp.git cd printify-mcp
  2. Instalar dependencias y compilar el proyecto:
    npm install npm run build
  3. Configure sus variables de entorno utilizando un archivo .env o variables de entorno del sistema como se describe en la sección Configuración .
  4. Obtenga la ruta absoluta completa al archivo JavaScript compilado:Ventanas:
    cd dist echo %CD%\index.js
    macOS/Linux:
    realpath dist/index.js
  5. Configurar Claude Desktop:
    • Abra Claude Desktop
    • Vaya a Configuración > Servidores MCP
    • Haga clic en "Agregar servidor"
    • Introduzca un nombre para el servidor (por ejemplo, "Printify MCP")
    • Seleccione “Comando” como tipo de transporte
    • Introduzca la ruta a Node.js como comando (por ejemplo, node )
    • Introduzca la ruta absoluta completa al servidor creado como argumentos
    • Haga clic en "Agregar servidor"
  6. Iniciar el servidor:
    npm start
    Mantenga esta ventana de terminal abierta mientras utiliza Claude Desktop.

Probando la conexión

En una conversación con Claude, puedes probar si el servidor está funcionando pidiéndole a Claude que verifique el estado de Printify:

Can you check the status of my Printify connection?

Claude debería usar la herramienta get-printify-status para comprobar el estado de la conexión. También puedes pedirle que enumere tus tiendas Printify con la herramienta list-shops .

Si encuentra algún problema:

  1. Verifique la salida de la consola donde inició el servidor para ver si hay mensajes de error
  2. Verifique que sus variables de entorno estén configuradas correctamente
  3. Asegúrese de que el servidor siga funcionando
  4. Confirme que la ruta al servidor en Claude Desktop sea correcta

Herramientas disponibles

Gestión de tienda

get-printify-status

Obtenga el estado actual del cliente API de Printify, incluido el estado de la conexión y la tienda actual.

list-shops

Lista todas las tiendas disponibles en tu cuenta de Printify. La tienda seleccionada está marcada con una flecha (→).

switch-shop

Cambie a una tienda diferente para las siguientes llamadas API.

Parámetros:

  • shopId (cadena): El ID de la tienda a la que cambiar

Herramientas de producto

list-products

Enumere productos en su tienda Printify.

Parámetros:

  • page (número, opcional): Número de página (predeterminado: 1)
  • limit (número, opcional): Número de productos por página (predeterminado: 10)
get-product

Obtenga detalles de un producto específico.

Parámetros:

  • productId (cadena): ID del producto
create-product

Crea un nuevo producto en tu tienda Printify.

Parámetros:

  • title (cadena): Título del producto
  • description (cadena): Descripción del producto
  • blueprintId (número): ID del plano
  • printProviderId (número): ID del proveedor de impresión
  • variants (matriz): variantes del producto
  • printAreas (objeto, opcional): áreas de impresión para el producto
update-product

Actualice un producto existente en su tienda Printify.

Parámetros:

  • productId (cadena): ID del producto
  • title (cadena, opcional): Título del producto
  • description (cadena, opcional): Descripción del producto
  • variants (matriz, opcional): variantes del producto
  • printAreas (objeto, opcional): áreas de impresión para el producto
delete-product

Eliminar un producto de tu tienda Printify.

Parámetros:

  • productId (cadena): ID del producto
publish-product

Publica un producto en tu canal de ventas conectado.

Parámetros:

  • productId (cadena): ID del producto
  • publishDetails (objeto, opcional): Detalles de publicación
get-blueprints

Obtenga una lista de planos disponibles en el catálogo de Printify.

Parámetros:

  • page (número, opcional): Número de página (predeterminado: 1)
  • limit (número, opcional): Número de planos por página (predeterminado: 10)
get-blueprint

Obtenga detalles de un plano específico.

Parámetros:

  • blueprintId (cadena): ID del plano
get-print-providers

Obtenga una lista de proveedores de impresión para un plano específico.

Parámetros:

  • blueprintId (cadena): ID del plano
get-variants

Obtenga una lista de variantes para un plano y un proveedor de impresión específicos.

Parámetros:

  • blueprintId (cadena): ID del plano
  • printProviderId (cadena): ID del proveedor de impresión

Herramientas de imagen

generate-and-upload-image

Genere una imagen con los modelos Flux de Replicate, procésela con Sharp y súbala a Printify en una sola operación. Esta herramienta combina la generación de imágenes con IA con la integración con Printify para un flujo de trabajo fluido.

La herramienta realiza cuatro pasos:

  1. Genera una imagen utilizando los modelos Flux de Replicate según su solicitud de texto.
  2. Procesa la imagen con Sharp para garantizar que sea una imagen válida con el formato correcto para Printify
  3. Sube la imagen procesada a tu cuenta de Printify
  4. Limpia archivos temporales para evitar problemas de espacio en disco

Parámetros:

  • prompt (cadena): mensaje de texto para la generación de imágenes
  • fileName (cadena): nombre de archivo de la imagen cargada
  • model (cadena, opcional): anula el modelo predeterminado (por ejemplo, "black-forest-labs/flux-1.1-pro-ultra")
  • width (número, opcional): ancho de la imagen en píxeles (predeterminado: 1024)
  • height (número, opcional): altura de la imagen en píxeles (predeterminado: 1024)
  • aspectRatio (cadena, opcional): Relación de aspecto (p. ej., '16:9', '4:3', '1:1'). Si se proporciona, anula el ancho y la altura.
  • outputFormat (cadena, opcional): Formato de salida ("jpeg", "png", "webp") (predeterminado: "png")
  • numInferenceSteps (número, opcional): Número de pasos de inferencia (predeterminado: 25)
  • guidanceScale (número, opcional): Escala de orientación (predeterminado: 7,5)
  • negativePrompt (cadena, opcional): mensaje negativo (predeterminado: "baja calidad, mala calidad, bocetos")
  • seed (número, opcional): semilla aleatoria para generación reproducible
  • raw (booleano, opcional): genera imágenes menos procesadas y de aspecto más natural (predeterminado: verdadero para Flux 1.1 Pro Ultra)

Nota: Esta herramienta requiere que la variable de entorno REPLICATE_API_TOKEN tenga un token de API de replicación válido. Puede obtener un token en replicate.com .

Importante: Si desea utilizar el modelo Flux 1.1 Pro Ultra, también DEBE configurar la variable de entorno IMGBB_API_KEY . El modelo Ultra genera imágenes de alta resolución demasiado grandes para subirlas directamente en base64 a Printify. Puede obtener una clave API gratuita en api.imgbb.com .

generate-image

Genere una imagen usando los modelos Flux de Replicate y guárdela en un archivo local sin subirla a Printify. Esta herramienta es útil si desea generar imágenes para otros fines o si desea revisarlas y, posiblemente, editarlas antes de subirlas a Printify.

Parámetros:

  • prompt (cadena): mensaje de texto para la generación de imágenes
  • outputPath (cadena): Ruta completa donde se debe guardar la imagen generada
  • model (cadena, opcional): anula el modelo predeterminado (por ejemplo, "black-forest-labs/flux-1.1-pro-ultra")
  • width (número, opcional): ancho de la imagen en píxeles (predeterminado: 1024)
  • height (número, opcional): altura de la imagen en píxeles (predeterminado: 1024)
  • aspectRatio (cadena, opcional): Relación de aspecto (p. ej., '16:9', '4:3', '1:1'). Si se proporciona, anula el ancho y la altura.
  • outputFormat (cadena, opcional): Formato de salida ("jpeg", "png", "webp") (predeterminado: "png")
  • numInferenceSteps (número, opcional): Número de pasos de inferencia (predeterminado: 25)
  • guidanceScale (número, opcional): Escala de orientación (predeterminado: 7,5)
  • negativePrompt (cadena, opcional): mensaje negativo (predeterminado: "baja calidad, mala calidad, bocetos")
  • seed (número, opcional): semilla aleatoria para generación reproducible
  • raw (booleano, opcional): genera imágenes menos procesadas y de aspecto más natural (solo Flux 1.1 Pro Ultra)

Nota: Esta herramienta requiere que la variable de entorno REPLICATE_API_TOKEN tenga un token de API de replicación válido. Puede obtener un token en replicate.com .

A diferencia de la herramienta generate-and-upload-image , esta herramienta no requiere la clave API ImgBB ya que guarda directamente en un archivo local.

upload-image

Sube una imagen a tu cuenta de Printify. Admite tres tipos de entrada:

  1. URL (http:// o https://) - Carga directa a Printify
  2. Rutas de archivos locales (por ejemplo, c:\path\to\image.png): se convierten automáticamente con Sharp para garantizar la compatibilidad y luego se cargan en Printify
  3. Cadenas de imágenes codificadas en Base64: carga directa a Printify

Nota sobre los formatos de archivo:

  • Formatos compatibles: PNG, JPEG y SVG
  • La resolución recomendada para archivos JPEG/PNG es 300 DPI
  • Para productos más grandes (leggings, mantas, tapices), se aceptan entre 120 y 150 DPI.
  • Es posible que algunos archivos de imagen no sean compatibles con la API de Printify si exceden los límites de tamaño
  • Para archivos de más de 5 MB, se recomienda cargar la URL en lugar de la codificación base64

Parámetros:

  • fileName (cadena): nombre del archivo
  • url (cadena): URL de la imagen a cargar, ruta al archivo local o datos de imagen codificados en base64

Indicaciones

generate-product-description

Genere una descripción de producto convincente.

Parámetros:

  • productName (cadena): Nombre del producto
  • category (cadena): Categoría del producto
  • targetAudience (cadena, opcional): público objetivo del producto
  • keyFeatures (cadena, opcional): lista separada por comas de características clave del producto

Configuración de claves API

Clave API de Printify

Para usar las funciones de Printify de este servidor MCP, necesitará una clave API de Printify. A continuación, le explicamos cómo obtenerla y configurarla:

  1. Inicie sesión en su cuenta de Printify en printify.com
  2. Vaya a Mi perfil > Conexiones
  3. En la sección Conexiones, podrás generar tus Tokens de Acceso Personal
  4. Almacene su clave API de forma segura, ya que solo será visible inmediatamente después de su generación
  5. Cree un archivo .env en la raíz del proyecto con el siguiente contenido:
    PRINTIFY_API_KEY=your_api_key_here # Optional: Set a default shop ID # PRINTIFY_SHOP_ID=your_shop_id_here # For image generation with Replicate REPLICATE_API_TOKEN=your_replicate_token_here # Required if using the Flux 1.1 Pro Ultra model for image generation IMGBB_API_KEY=your_imgbb_api_key_here
    El servidor inicializará automáticamente el cliente API de Printify usando la clave API de la variable de entorno. Si no especifica un ID de tienda, el servidor usará la primera tienda de su cuenta como predeterminada.También puedes configurar las variables de entorno directamente:
    # On Windows set PRINTIFY_API_KEY=your_api_key_here set REPLICATE_API_TOKEN=your_replicate_token_here set IMGBB_API_KEY=your_imgbb_api_key_here npm start # On macOS/Linux export PRINTIFY_API_KEY=your_api_key_here export REPLICATE_API_TOKEN=your_replicate_token_here export IMGBB_API_KEY=your_imgbb_api_key_here npm start

Replicar token de API

Para usar las funciones de generación de imágenes de este servidor MCP, necesitará un token de API de replicación. Para obtenerlo, siga estos pasos:

  1. Crea una cuenta o inicia sesión en replicate.com
  2. Vaya a la configuración de su cuenta
  3. Generar un token de API
  4. Agregue el token a su archivo .env como se muestra arriba

Clave API de ImgBB

Si desea usar el modelo Flux 1.1 Pro Ultra para generar imágenes, DEBE tener una clave API de ImgBB. El modelo Ultra genera imágenes de alta resolución que son demasiado grandes para subirlas directamente en base64 a Printify, por lo que usamos ImgBB como intermediario. A continuación, le explicamos cómo obtener una clave API:

  1. Crea una cuenta o inicia sesión en imgbb.com
  2. Vaya a api.imgbb.com para obtener su clave API
  3. Agregue la clave a su archivo .env como se muestra arriba

Ejemplos de flujo de trabajo

Creación de una camiseta con diseño generado por IA

A continuación se muestra un ejemplo completo de creación de una camiseta con diseños en la parte delantera y trasera:

// Step 1: Get blueprints and choose one get-blueprints_printify() // Selected blueprint ID 12 (Unisex Jersey Short Sleeve Tee) // Step 2: Get print providers for this blueprint get-print-providers_printify({ blueprintId: "12" }) // Selected print provider ID 29 (Monster Digital) // Step 3: Get variants for this blueprint and print provider get-variants_printify({ blueprintId: "12", printProviderId: "29" }) // Selected variant IDs 18100 (Black / S), 18101 (Black / M), 18102 (Black / L) // Step 4: Generate and upload front image const frontImage = await generate-and-upload-image_printify({ prompt: "A futuristic cityscape with neon lights and tall skyscrapers, horizon city logo design", fileName: "horizon-city-front" }) // Got image ID: 68032b22ae74bf725ed406ec // Step 4b: Generate and upload back image const backImage = await generate-and-upload-image_printify({ prompt: "A minimalist 'Horizon City' text logo with futuristic font, suitable for the back of a t-shirt", fileName: "horizon-city-back" }) // Got image ID: 68032b377e36fbdd32791027 // Step 5: Create the product create-product_printify({ title: "Horizon City Skyline T-Shirt", description: "Step into the future with our Horizon City Skyline T-Shirt. This premium unisex tee features a stunning futuristic cityscape with neon lights and towering skyscrapers on the front, and a sleek minimalist Horizon City logo on the back.", blueprintId: 12, printProviderId: 29, variants: [ { variantId: 18100, price: 2499 }, { variantId: 18101, price: 2499 }, { variantId: 18102, price: 2499 } ], printAreas: { "front": { position: "front", imageId: "68032b22ae74bf725ed406ec" }, "back": { position: "back", imageId: "68032b377e36fbdd32791027" } } }) // Product created with ID: 68032b43a24efbac6502b6f7

Gestión de productos existentes

// List products list-products_printify() // Get details of a specific product get-product_printify({ productId: "68032b43a24efbac6502b6f7" }) // Update a product update-product_printify({ productId: "68032b43a24efbac6502b6f7", title: "Updated Horizon City Skyline T-Shirt", description: "Updated description...", variants: [ { variantId: 18100, price: 2999 }, { variantId: 18101, price: 2999 }, { variantId: 18102, price: 2999 } ] }) // Publish a product to external sales channels publish-product_printify({ productId: "68032b43a24efbac6502b6f7", publishDetails: { title: true, description: true, images: true, variants: true, tags: true } }) // Delete a product delete-product_printify({ productId: "68032b43a24efbac6502b6f7" })

Arquitectura

Componentes principales

El servidor MCP de Printify consta de tres componentes principales:

  1. Servidor MCP ( src/index.ts ) : configura el servidor MCP con varias herramientas para interactuar con la API de Printify.
  2. Cliente API de Printify ( src/printify-api.ts ) : maneja la comunicación con la API de Printify mediante el SDK oficial.
  3. Cliente Replicate ( src/replicate-client.ts ) : se integra con la API de Replicate para generar imágenes para diseños de productos.

Arquitectura de Docker

La configuración de Docker consta de los siguientes componentes:

  1. Dockerfile : define cómo construir la imagen de Docker
    • Utiliza Node.js 22 Alpine como imagen base para un espacio reducido
    • Instala dependencias y compila el código TypeScript
    • Configura el entorno y ejecuta el servidor.
  2. docker-compose.yml : define la configuración del servicio
    • Configura variables de entorno
    • Monta volúmenes para archivos .env y directorios temporales
    • Configura stdin y tty para el transporte stdio
    • Establece la política de reinicio
  3. Volúmenes :
    • .env : montado como un volumen de solo lectura para variables de entorno
    • temp : montado como un volumen para archivos temporales (como imágenes generadas)

Publicar la imagen de Docker

Puede publicar la imagen de Docker en Docker Hub o cualquier otro registro de contenedores para que esté disponible para otros sin necesidad de que instalen Node.js o clonen el repositorio.

  1. Construya la imagen de Docker :
    docker build -t tsavo/printify-mcp:latest .
  2. Inicie sesión en Docker Hub :
    docker login
  3. Envía la imagen a Docker Hub :
    docker push tsavo/printify-mcp:latest

Uso de la imagen de Docker sin Node.js

Los usuarios pueden ejecutar el servidor Printify MCP sin instalar Node.js utilizando la imagen de Docker directamente:

  1. Instalar Docker : los usuarios deben tener Docker instalado en su sistema.
  2. Cree un directorio temporal para archivos temporales:
    mkdir -p temp
  3. Ejecutar el contenedor Docker (dos opciones):Opción A: Usar variables de entorno directamente (recomendado)
    docker run -it --name printify-mcp \ -e PRINTIFY_API_KEY=their_printify_api_key \ -e PRINTIFY_SHOP_ID=their_shop_id_optional \ -v $(pwd)/temp:/app/temp \ tsavo/printify-mcp:latest
    Nota: Si desean utilizar las funciones de generación de imágenes (herramienta para generar y cargar imágenes), agreguen el token API de Replicar:
    -e REPLICATE_API_TOKEN=their_replicate_api_token \
    Importante: Si desean utilizar el modelo Flux 1.1 Pro Ultra para la generación de imágenes, DEBEN agregar también la clave API ImgBB:
    -e IMGBB_API_KEY=their_imgbb_api_key \
    Opción B: Usar un archivo .env Primero, crea un archivo .env con sus claves API:
    PRINTIFY_API_KEY=their_printify_api_key PRINTIFY_SHOP_ID=their_shop_id (optional) # Optional: Only needed if they want to use image generation features REPLICATE_API_TOKEN=their_replicate_api_token # Required if using the Flux 1.1 Pro Ultra model for image generation IMGBB_API_KEY=their_imgbb_api_key
    Luego ejecuta el contenedor:
    docker run -it --name printify-mcp \ -v $(pwd)/.env:/app/.env:ro \ -v $(pwd)/temp:/app/temp \ tsavo/printify-mcp:latest
  4. Configurar Claude Desktop :
    • Abra Claude Desktop
    • Vaya a Configuración > Servidores MCP
    • Haga clic en "Agregar servidor"
    • Ingrese un nombre para el servidor (por ejemplo, "Printify MCP Docker")
    • Seleccione “Comando” como tipo de transporte
    • Ingrese docker como comando
    • Ingrese exec -i printify-mcp node dist/index.js como argumentos
    • Haga clic en "Agregar servidor"

Este enfoque permite a los usuarios ejecutar el servidor Printify MCP sin instalar Node.js ni ninguna otra dependencia: solo necesitan Docker.

Estructura de archivos

printify-mcp/ ├── dist/ # Compiled JavaScript files ├── docs/ # Documentation │ ├── index.ts.md # Documentation for index.ts │ ├── printify-api.ts.md # Documentation for printify-api.ts │ └── replicate-client.ts.md # Documentation for replicate-client.ts ├── node_modules/ # Node.js dependencies ├── src/ # Source code │ ├── index.ts # Main MCP server │ ├── printify-api.ts # Printify API client │ └── replicate-client.ts # Replicate API client ├── temp/ # Temporary directory for generated images ├── .dockerignore # Files to exclude from Docker build ├── .env # Environment variables (not in repo) ├── .env.example # Example environment variables ├── .gitignore # Git ignore file ├── docker-compose.yml # Docker Compose configuration ├── Dockerfile # Docker build instructions ├── package.json # Node.js package configuration ├── package-lock.json # Node.js package lock ├── README.md # This file └── tsconfig.json # TypeScript configuration

Documentación de la API

Para obtener documentación detallada del código base, consulte los siguientes archivos:

Solución de problemas

Problemas comunes

Cliente API de Printify no inicializado

Si ve el error "El cliente API de Printify no está inicializado", verifique lo siguiente:

  1. La variable de entorno PRINTIFY_API_KEY está configurada correctamente en su archivo .env
  2. La clave API es válida y tiene los permisos correctos
Cliente de API de replicación no inicializado

Si ve el error "El cliente de API de replicación no está inicializado", verifique lo siguiente:

  1. La variable de entorno REPLICATE_API_TOKEN está configurada correctamente en su archivo .env
  2. El token API es válido y tiene los permisos correctos
Error al crear el producto

Si encuentra errores al crear un producto, verifique que:

  1. El ID del plano y el ID del proveedor de impresión son válidos
  2. Los ID de variantes son válidos para el plano y el proveedor de impresión seleccionados
  3. Los identificadores de imágenes en las áreas de impresión son válidos y accesibles
  4. Todos los campos obligatorios están incluidos en la solicitud.
Error al cargar la imagen

Si encuentra errores al cargar una imagen, verifique que:

  1. La imagen tiene un formato válido (PNG, JPEG, etc.)
  2. La imagen no es demasiado grande (el tamaño máximo es 10 MB)
  3. Si se utiliza una URL, es de acceso público.
  4. Si se utiliza un archivo local, éste existe y es legible.
Problemas específicos de Docker

Si está utilizando la configuración de Docker y encuentra problemas:

  1. El contenedor no se inicia : verifique los registros de Docker con docker logs printify-mcp
  2. Las variables de entorno no funcionan : Si usa un archivo .env, asegúrese de que esté en el mismo directorio que el archivo docker-compose.yml o el directorio donde ejecuta el comando docker run . Si configura las variables de entorno directamente con -e , revise los nombres de las variables para detectar errores tipográficos.
  3. Problemas de permisos con el directorio temporal : el directorio temporal está montado como un volumen, asegúrese de que tenga los permisos correctos
  4. Problemas de conexión de Claude : asegúrese de que el contenedor Docker se esté ejecutando con docker ps y de que haya configurado Claude Desktop correctamente
  5. Imagen no encontrada : si usa la imagen de Docker Hub directamente, asegúrese de haberla extraído con docker pull tsavo/printify-mcp:latest

Para reiniciar el contenedor Docker al usar docker-compose:

docker-compose down docker-compose up -d

Para reiniciar el contenedor Docker al usar docker run:

docker stop printify-mcp docker rm printify-mcp docker run -it --name printify-mcp -v $(pwd)/.env:/app/.env:ro -v $(pwd)/temp:/app/temp tsavo/printify-mcp:latest

Para usuarios de Windows que usan PowerShell con la imagen de Docker directamente:

docker run -it --name printify-mcp -v ${PWD}/.env:/app/.env:ro -v ${PWD}/temp:/app/temp tsavo/printify-mcp:latest

Para usuarios de Windows que utilizan el símbolo del sistema con la imagen de Docker directamente:

docker run -it --name printify-mcp -v %cd%/.env:/app/.env:ro -v %cd%/temp:/app/temp tsavo/printify-mcp:latest

Depuración

El servidor incluye un registro detallado para solucionar problemas. Consulte la salida de la consola para ver mensajes de error e información de depuración.

Para las implementaciones de Docker, puedes ver los registros con:

docker logs printify-mcp

Para seguir los registros en tiempo real:

docker logs -f printify-mcp

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Licencia

ISC

ID: b8ap8e8n8v