Skip to main content
Glama
Jasuni69

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: Dynamic Mockups

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

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jasuni69/printful-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server