printful-mcp-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@printful-mcp-server create a t-shirt with my logo"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Printful MCP Server
MCP server for Printful API. Create print-on-demand products with your designs.
Setup
Get API key from Printful Settings
Create config file:
cp printful_mcp_settings.example.json printful_mcp_settings.jsonAdd your API key to the config
Install and build:
npm install
npm run buildRelated 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 inspectorAvailable Tools
Catalog
getProducts- Browse all printable products (shirts, mugs, etc)getProduct- Get product details with all variants (sizes, colors)getProductVariant- Get specific variant infogetCategories- List product categoriesgetPrintfiles- Get print area dimensions for a product
Files
uploadFile- Upload design from local fileuploadFileFromUrl- Upload design from URLgetFile- Get file infogetFiles- List all files in library
Sync Products (Your Listings)
getSyncProducts- List your created productsgetSyncProduct- Get product with variantscreateSyncProduct- Create new product listingupdateSyncProduct- Update productdeleteSyncProduct- Delete productgetSyncVariant- Get variant detailsupdateSyncVariant- Update variant (price, files)deleteSyncVariant- Delete variant
Mockups
createMockupTask- Generate mockup imagesgetMockupTask- Check mockup generation statusgetMockupTemplates- Get available mockup styles
Store
getStore- Get current store infogetStores- List all storeschangeStore- Switch to different store
Workflow Example
Browse catalog:
getProducts → find product ID (e.g. 71 for Unisex Staple T-Shirt)
getProduct(71) → find variant IDs for sizes/colors you wantUpload design:
uploadFileFromUrl({ url: "https://example.com/my-design.png" })
→ returns file IDCreate product:
createSyncProduct({
name: "My Awesome Shirt",
variants: [
{
variant_id: 4012,
retail_price: "24.99",
files: [{ type: "front", url: "https://example.com/my-design.png" }]
}
]
})Generate mockups (optional):
createMockupTask({
product_id: 71,
files: [{ placement: "front", image_url: "https://..." }]
})
getMockupTask({ task_key: "..." }) → get mockup image URLsEnvironment Variables
Alternative to config file:
PRINTFUL_API_KEY- Your API keyPRINTFUL_STORE_ID- Optional store ID
Available Tools
23 toolschangeStoreB
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
Scored across 23 tools
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).
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.
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.
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
Related MCP Connectors
Browse the Printful catalog, orders, shipping quotes and stats, and create draft orders and mockups.
Design print-on-demand products, publish them to your shops, and draft and track orders.
Create, write and publish Printify products from chat, after a preview you approve.
Print-on-demand catalog, listings, and fulfillment for AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceConnects Printful's print-on-demand API to AI assistants like Claude and Cursor to automate business operations. It enables users to browse catalogs, manage orders, generate mockups, and calculate shipping rates through natural language.1935MIT

OpenPrints MCPofficial
AlicenseNot gradedqualityDmaintenanceEnables AI agents to browse products, upload designs, place print orders, track shipments, and manage account balance via natural language.12 npmMIT- FlicenseNot gradedqualityDmaintenanceEnables 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.-
- AlicenseAqualityCmaintenanceEnables natural language access to the full Printify API, including managing products, orders, uploads, and shipping costs.916 npmMIT