Skip to main content
Glama
printful-mcp-server

printful-mcp-server

by Jasuni69

Printful MCP Server

MCP server for Printful API. Create print-on-demand products with your designs.

Setup

  1. Get API key from Printful Settings

  2. Create config file:

cp printful_mcp_settings.example.json printful_mcp_settings.json
  1. Add your API key to the config

  2. Install and build:

npm install
npm run build

Related MCP server: OpenPrints MCP

Usage

With Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "printful": {
      "command": "node",
      "args": ["path/to/printful-mcp-server/build/index.js"]
    }
  }
}

Test with MCP Inspector

npm run inspector

Available Tools

Catalog

  • getProducts - Browse all printable products (shirts, mugs, etc)

  • getProduct - Get product details with all variants (sizes, colors)

  • getProductVariant - Get specific variant info

  • getCategories - List product categories

  • getPrintfiles - Get print area dimensions for a product

Files

  • uploadFile - Upload design from local file

  • uploadFileFromUrl - Upload design from URL

  • getFile - Get file info

  • getFiles - List all files in library

Sync Products (Your Listings)

  • getSyncProducts - List your created products

  • getSyncProduct - Get product with variants

  • createSyncProduct - Create new product listing

  • updateSyncProduct - Update product

  • deleteSyncProduct - Delete product

  • getSyncVariant - Get variant details

  • updateSyncVariant - Update variant (price, files)

  • deleteSyncVariant - Delete variant

Mockups

  • createMockupTask - Generate mockup images

  • getMockupTask - Check mockup generation status

  • getMockupTemplates - Get available mockup styles

Store

  • getStore - Get current store info

  • getStores - List all stores

  • changeStore - Switch to different store

Workflow Example

  1. Browse catalog:

getProducts → find product ID (e.g. 71 for Unisex Staple T-Shirt)
getProduct(71) → find variant IDs for sizes/colors you want
  1. Upload design:

uploadFileFromUrl({ url: "https://example.com/my-design.png" })
→ returns file ID
  1. Create product:

createSyncProduct({
  name: "My Awesome Shirt",
  variants: [
    {
      variant_id: 4012,
      retail_price: "24.99",
      files: [{ type: "front", url: "https://example.com/my-design.png" }]
    }
  ]
})
  1. Generate mockups (optional):

createMockupTask({
  product_id: 71,
  files: [{ placement: "front", image_url: "https://..." }]
})
getMockupTask({ task_key: "..." }) → get mockup image URLs

Environment Variables

Alternative to config file:

  • PRINTFUL_API_KEY - Your API key

  • PRINTFUL_STORE_ID - Optional store ID

Available Tools

23 tools
changeStoreB

Switch to a different store (for accounts with multiple stores)

Inputs: store_id (required).

createMockupTaskA

Generate product mockup images with your design. Returns a task ID to check status.

Inputs: files (required), product_id (required), format, options, +2 more.

createSyncProductA

Create a new sync product with variants. This creates a listing draft in your Printful store.

Inputs: name (required), variants (required), thumbnail, external_id.

deleteSyncProductB

Delete a sync product from your store

Inputs: sync_product_id (required).

deleteSyncVariantB

Delete a sync variant

Inputs: sync_variant_id (required).

getCategoriesA

Get list of product categories

Inputs: no named parameters.

getFileB

Get info about a previously uploaded file

Inputs: file_id (required).

getFilesB

Get list of all files in your Printful library

Inputs: limit, offset, status.

getMockupTaskA

Check status of a mockup generation task and get result URLs

Inputs: task_key (required).

getMockupTemplatesA

Get available mockup templates for a product

Inputs: product_id (required).

getPrintfilesA

Get printfile info for a product (dimensions, DPI, placement areas)

Inputs: product_id (required).

getProductA

Get detailed info about a specific product including all variants (sizes, colors)

Inputs: product_id (required).

getProductsA

Get list of all printable products in the Printful catalog (t-shirts, mugs, posters, etc)

Inputs: category_id.

getProductVariantB

Get info about a specific product variant

Inputs: variant_id (required).

getStoreA

Get information about your Printful store

Inputs: no named parameters.

getStoresA

Get list of all stores linked to your Printful account

Inputs: no named parameters.

getSyncProductA

Get a single sync product with all its variants

Inputs: sync_product_id (required).

getSyncProductsB

Get list of all sync products (your created products) in your Printful store

Inputs: limit, offset, search, status.

getSyncVariantB

Get a single sync variant

Inputs: sync_variant_id (required).

updateSyncProductB

Update an existing sync product

Inputs: sync_product_id (required), name, thumbnail.

updateSyncVariantC

Update a sync variant (price, files, etc)

Inputs: sync_variant_id (required), files, retail_price.

uploadFileA

Upload a design file (image) to Printful. Returns file ID to use when creating products.

Inputs: file_path (required), type.

uploadFileFromUrlB

Add a file to Printful library from a URL

Inputs: url (required), filename.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 23 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action. Catalog, file, sync product, mockup, and store tools are clearly separated. There is no overlap between tools like getProducts (catalog) and getSyncProducts (store products).

    Naming Consistency5/5

    Tool names follow a consistent verb_noun pattern (e.g., getProducts, createSyncProduct, updateSyncVariant, deleteSyncProduct). All use camelCase with descriptive verbs, and even uploadFileFromUrl is predictable. No mixed naming conventions.

    Tool Count4/5

    23 tools is on the higher end but appropriate for the broad scope of Printful's API: catalog browsing, file management, product lifecycle, mockups, and store management. Each tool covers a distinct function, so the count feels justified rather than excessive.

    Completeness4/5

    The tool set covers the core workflow: browse catalog, upload designs, create/update/delete sync products and variants, generate mockups, and manage stores. Minor gaps exist, such as no file deletion or order management tools, but the primary product creation and management lifecycle is well covered.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables creating and publishing print-on-demand products on Printify from reusable SKU templates, allowing AI assistants like Claude to manage product listings, upload artwork, and publish drafts through natural language.
      -