# Printful MCP

> Printful MCP Server connects your AI agent directly to the entire Printful product catalog. You can list available items by category, fetch deep metadata for any product ID, check precise details (color, size, stock) using a Variant ID, and get accurate size guides in both inches and centimeters. It lets you work with complex e-commerce data—like verifying SKU availability or pulling technical specs—without ever logging into the web dashboard.

## Overview
- **Category:** ecommerce
- **Price:** Free
- **Tags:** print-on-demand, dropshipping, product-catalog, merchandise, custom-printing

## Description

You connect your AI agent directly to the entire Printful catalog using this MCP server. Forget logging into the web dashboard; you'll manage complex e-commerce data right through conversation. Here’s what you can do: 

**List Products by Category:** Your agent uses `list_products` to pull a list of available items from the whole catalog. You can narrow this down fast by specifying a category ID filter, so you're only looking at relevant merchandise.

**Product Overview Data:** When you get a specific product ID, you call `get_product`. This pulls general metadata and detailed descriptions for that item, plus it lists every single variant associated with the product. You’ll know everything about what *could* be sold there.

**Check Specific Variant Stock/Pricing:** For ordering data, you've gotta use the unique Variant ID (the SKU). Calling `get_variant` gives you the definitive color, size, price, and stock status for that exact item. It’s critical because this tool tells you if you can actually order it right now.

**Get Product Size Guides:** You don't have to guess on sizing. Use `get_product_sizes` and your agent pulls accurate size matrices for any product ID, providing measurements in both inches and centimeters. This means you guarantee the fit before anyone even places an order.

When building a workflow, you’ll often stack these calls. For instance, you can first use `list_products` to find all items in 'Apparel.' Then, if you pick one product ID, calling `get_product` gives you its description and all potential variants. If you then need to verify stock for a specific blue medium t-shirt from that list, you feed the Variant ID into `get_variant`. That single call confirms the current price and whether it's in stock. You never have to jump between pages or copy/paste SKUs manually.

The server makes working with complex product hierarchies simple. If your task is verifying SKU availability for a bulk order, you rely solely on `get_variant` using the unique Variant ID. It provides the single source of truth for size, color, and stock count. When you need to write marketing copy that needs technical specs—say, dimensions or material details—you use `get_product` first. This pulls all the general metadata needed for writing. If your client asks about sizing for a jacket found in the catalog, you immediately pivot to `get_product_sizes`, getting measurements both in inches and centimeters so you're ready for any customer asking.

This whole system lets your AI agent handle deep inventory checks without ever needing API keys or credentials beyond the initial token. You’ll use it to pull technical specifications, check price points across different variants of the same item, or simply verify that a product exists in a certain category ID. The ability to get precise color and size details using only the Variant ID means your agent can perform crucial pre-ordering checks automatically.

The tools work together like this: You list products by category with `list_products`. If you want general info, you use `get_product` on an ID. To check fit, you run `get_product_sizes` on that same product ID. Finally, if the job is to confirm a buyable item's status, you hit it with `get_variant` using the SKU. You'll find your agent handles all these steps—discovery, data extraction, and inventory confirmation—in one continuous flow.

## Tools

### get_product
Retrieves general metadata and descriptions for a specific Printful product ID.

### list_products
Lists Printful products, allowing you to narrow down the list by specifying a category ID filter.

### get_product_sizes
Gets accurate size guides, providing measurements in both inches and centimeters for a product.

### get_variant
Fetches precise details—including color, size, pricing, and stock status—using a unique Variant ID (SKU). Use this for ordering data.

## Prompt Examples

**Prompt:** 
```
List the first 10 products from the Printful catalog.
```

**Response:** 
```
I've retrieved the latest products. You have items like the 'Unisex Staple T-Shirt' (ID: 71) and the 'Enhanced Matte Paper Poster' (ID: 1). Would you like to see the variants for any of these?
```

**Prompt:** 
```
What are the available sizes and colors for product ID 71?
```

**Response:** 
```
For the Unisex Staple T-Shirt (ID: 71), there are multiple variants. Common colors include Black, White, and Navy, with sizes ranging from S to 3XL. I can fetch the specific Variant ID for a 'Black / L' if you need to check stock.
```

**Prompt:** 
```
Show me the size guide for product 71 in centimeters.
```

**Response:** 
```
The size guide for product 71 (Unisex Staple T-Shirt) in cm is: S (Width: 45.7, Length: 71.1), M (Width: 50.8, Length: 73.7), L (Width: 55.9, Length: 76.2). Would you like the measurements for larger sizes as well?
```

## Capabilities

### List Products by Category
Retrieves a list of products available in the Printful catalog, allowing filtering by category ID.

### Fetch Product Overview Data
Gets general product metadata for a given ID, including descriptions and all potential variants.

### Check Specific Variant Stock/Pricing
Retrieves the definitive color, size, price, and stock status using a unique Variant ID (SKU).

### Get Product Size Guides
Fetches accurate size matrices for any product in both inches and centimeters.

## Use Cases

### Validating a New Collection's Sizing
A merchandiser needs to launch three new items. Instead of opening the Printful dashboard and manually checking size charts, they prompt their agent: 'What is the size guide for Product ID 71 in centimeters?' The agent runs `get_product_sizes` and returns a precise table immediately, allowing them to finalize the collection specs without switching tabs.

### Checking Bulk Inventory Status
A store owner needs to check the stock of several items before an event. They first run `list_products(category=123)` to get a list, then loop through those IDs, calling `get_variant` for each one. The agent aggregates all results and gives them a single report of 'In Stock' or 'Out of Stock,' saving hours of manual checking.

### Scripting Product ID Lookups
A developer needs to write a script that pulls data for 20 specific products. They use `list_products` filtered by category, then iterate through the resulting IDs, calling `get_product` on each one to extract the necessary unique product identifiers needed for their database update.

### Determining Optimal Product Details
A designer needs general info and size guides for a prototype. They start by running `get_product(ID)` to get basic specs, then run `get_product_sizes(ID)` to ensure fit accuracy. The agent combines both data sources into one report, letting the designer move straight to mockups.

## Benefits

- Stop clicking through web dashboards. Use `list_products` to filter and browse every product in Printful by category ID, giving you immediate access to a structured list of options.
- Know the exact stock status for any item. Calling `get_variant` with a Variant ID instantly tells you if an SKU is available and what its price is—no guessing required.
- Avoid sizing errors completely. The `get_product_sizes` tool pulls accurate size guides (in both inches and centimeters) directly into your chat, perfect for product documentation.
- Get product overviews fast. Use `get_product` when you only need the general description or a list of all variants associated with an ID, without needing specific stock data.
- Accelerate development workflows. Developers can use these tools to pull technical IDs and structured variant data directly into their IDEs for automated syncing.

## How It Works

The bottom line is, you hand off the complex data querying to the server; your agent just asks for it using natural language prompts.

1. Subscribe to the Printful MCP Server on Vinkius.
2. Enter your valid Printful API Token into your AI client's configuration.
3. Prompt your agent (e.g., 'List all t-shirts in category 123') and invoke the appropriate tool.

## Frequently Asked Questions

**How do I find all products in the catalog using list_products?**
Use `list_products` and pass the desired category ID as a filter. This function is designed to browse, so you just need the category number (e.g., 'List products from category 45').

**Should I use get_product or get_variant for stock checks?**
Always use `get_variant`. While `get_product` gives general details, only `get_variant` provides the definitive, real-time color, size, and current stock status needed for orders.

**Does get_product_sizes work in centimeters?**
Yes, it retrieves accurate size guides in both inches and centimeters. You can specify your preferred unit in the prompt, ensuring you don't miss international sizing requirements.

**How do I find a product ID to start with get_product?**
You must first use `list_products` to generate a list of available items. The resulting output will include the necessary Product IDs you can then feed into `get_product`.

**When I call `list_products`, what credentials do I need to authenticate my AI client?**
You must provide a valid Printful API Token when setting up the server connection. The agent uses this token for every request, ensuring access rights and proper identification with the Printful backend.

**If I use `get_variant` but supply an invalid Variant ID, what kind of error will my AI client receive?**
The server returns a specific API status code and an error payload. The message confirms that the provided Variant ID does not map to an existing product or variant record in Printful's system.

**Can I use `get_product` to filter products by non-category metadata, like material type?**
Yes. In addition to category IDs, you can include parameters for filtering based on product attributes such as material (e.g., cotton or polyester) within the tool's input payload.

**Are there rate limits if I call `list_products` multiple times in a short period?**
The Printful API enforces usage limits to maintain stability. We recommend implementing exponential backoff logic in your agent code if you anticipate calling this tool frequently or in bulk.

**Can I filter products by a specific category like 'T-shirts'?**
Yes! Use the `list_products` tool and provide the `category_id`. The agent will return only the products belonging to that specific Printful category.

**How do I get the exact pricing and stock for a specific size and color?**
You should use the `get_variant` tool with the specific Variant ID. This provides the most granular data including price, stock availability, and specific attributes.

**Does this server provide measurements for the products?**
Yes, the `get_product_sizes` tool returns the complete size guide for a product ID, including measurements in both imperial (inches) and metric (cm) units.