Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Printful in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Let your AI work with Printful: browse the print-on-demand catalog, check production prices and shipping rates, estimate order costs, create draft orders and track them to delivery, and look up your store products, including Shopify, Etsy and WooCommerce stores. With a private Printful API token.
Try asking
Example prompts for Printful
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Printful, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Printful + Gemini
Let your AI work with Printful: browse the print-on-demand catalog, check production prices and shipping rates, estimate order costs, create draft orders and track them to delivery, and look up your store products, including Shopify, Etsy and WooCommerce stores. With a private Printful API token.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
PRINTFUL_API_TOKEN
Step 1 — Get credentials
- Sign in at developers.printful.com with your Printful login and open Your tokens (developers.printful.com/tokens).
- Create a private token and choose its access level. A Store token reaches one store, which you pick now, and the store tools need no
store_id. An Account token reaches every store of the account; the AI then passes astore_idfromprintful_list_storesto the store tools (it is sent as theX-PF-Store-Idheader). - Pick the scopes:
ordersto read and write orders (ororders/readfor a read-only setup) andsync_products/readfor store products.printful_list_storesalso needs the stores scope (stores_list) where the token form offers it. The catalog, prices and shipping rates need no scope. - Set an expiry date, create the token and copy it right away: Printful shows it only once. Paste it into
PRINTFUL_API_TOKENon its own, withoutBearerin front, then install the connector. - Start with
printful_get_token_scopesto see what the token may do, thenprintful_list_storesfor your stores and their ids.
Token expiry: a private token works until the expiry date you chose and cannot be refreshed. Create a new one before that date and paste it into PRINTFUL_API_TOKEN. There is no Authorize with Provider step.
A store is needed: shipping rates, cost estimates and orders always belong to a store. An account without a store answers This endpoint requires store_id, so create one first in the Printful dashboard (Stores → Add store → Manual order platform / API).
Drafts are free, confirming costs money: printful_create_draft_order creates a draft, which Printful does not send to production and does not charge. You can review and edit it in the dashboard under Orders. Before that, printful_calculate_shipping_rates lists the shipping options and printful_estimate_order_costs shows the full cost (items, prints, shipping, tax, VAT) without creating anything. An item is either a catalog variant with print file URLs Printful can download, or a variant of a product already set up in your store, which carries its own files. Give an order your own external_id and any order tool finds it as @ followed by that id, for example @SHOP-1001. Orders from a linked Shopify, Etsy or WooCommerce store reach Printful on their own, so the AI does not create them again.
Switched off at install: printful_confirm_order, which submits a draft for fulfillment. Printful then charges the store's billing method and starts production, and the order can only be cancelled while it is still pending. Turn it on only if the AI should send orders to production; otherwise confirm drafts yourself in the dashboard. With it on, the AI first shows the order, its items, the address and the total and waits for your yes.
Two kinds of store products: for Manual order / API stores the AI uses printful_list_store_products and printful_get_store_product; for stores linked to Shopify, WooCommerce, Etsy and other platforms it uses printful_list_sync_products and printful_get_sync_product, which show which platform variants are synced to a Printful product. The type returned by printful_list_stores tells which kind a store is.
Permissions and read-only setup: the token reaches only its scopes and, at store level, only its store. For a read-only setup, create the token with orders/read instead of orders, disable printful_create_draft_order on the connector page and leave printful_confirm_order switched off.
Rate limits: Printful allows 120 requests per minute per store. Over the limit it answers 429 with a Retry-After header and does not process the request: wait a minute and try again.
Common errors: 401 means the token is wrong, expired or deleted: create a new one under Your tokens. 403 means the token lacks the scope for the call, or an account-level token was used without store_id. 400 names the invalid field, for example a missing state_code (required for the US, Canada and Australia), an unknown variant or a file URL Printful cannot download. 404 means an unknown id: the list tools return the real ones.
The connector does not cancel, edit or delete orders, create or edit store products, upload files to the file library, or manage webhooks.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Gemini
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Gemini CLI reads MCP servers from ~/.gemini/settings.json (on Windows %USERPROFILE%\.gemini\settings.json). Add:
{
"mcpServers": {
"anythingmcp": {
"httpUrl": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Create an MCP API key in AnythingMCP under MCP Servers → your server → API keys, and paste it in place of
YOUR_MCP_API_KEY. - Save the file and restart
gemini. - Run
/mcpinside Gemini CLI (orgemini mcp listin your shell):anythingmcpshould show as connected. - Start prompting: Gemini CLI can now call the
Printfultools.
Available tools
| Tool | What it does |
|---|---|
printful_get_token_scopes | List the scopes of the configured private token (orders, sync_products, file_library, webhooks…), to check what the connector is allowed to… |
printful_list_stores | List the Printful stores the token can reach, with id, name and type (the platform the store is linked to) |
printful_list_categories | List the Printful catalog categories (men's clothing, wall art, mugs, hats…) with id, parent id, title and image |
printful_list_catalog_products | List the blank products in the Printful catalog (t-shirts, hoodies, posters, mugs…) with id, type, brand, model, title, image, variant… |
printful_get_catalog_product | Get one catalog product with its description, print file placements, techniques and options, and every variant (size, colour, price… |
printful_get_catalog_variant | Get one catalog variant (a size and colour of a product) with its price, stock status by region and its parent product |
printful_get_product_size_guide | Get the size guide of a catalog product: measurements per size for the product and how to measure, in inches or centimetres |
printful_get_product_prices | Get the production prices of a catalog product, including store discounts: price per placement and technique (front, back, sleeve… |
printful_calculate_shipping_rates | Get the shipping options for a set of catalog or store variants to an address, with rate id, name, price, currency and delivery-day range… |
printful_list_orders | List the orders of a store, optionally by status: draft, pending, inreview, failed, canceled, inprocess, onhold, partial, fulfilled or… |
printful_get_order | Get one order: status, shipping method, recipient, items with files, Printful costs (subtotal, shipping, tax, VAT, total), retail costs… |
printful_estimate_order_costs | Estimate what Printful would charge for an order without creating it: item and print costs (back prints, inside labels…), digitization… |
printful_create_draft_order | Create an order as a draft |
printful_confirm_order | Submit a draft order for fulfillment |
printful_list_store_products | List the products of a Manual order / API store (one created in the Printful dashboard rather than linked to a platform) with id, external… |
printful_get_store_product | Get one product of a Manual order / API store with its sync variants: catalog variant, retail price, currency, SKU, print files and options |
printful_list_sync_products | List the products of a store linked to an e-commerce platform (Shopify, WooCommerce, Etsy…), with their sync state toward Printful: how… |
printful_get_sync_product | Get one product of a platform-linked store with its sync variants: the platform variant, the Printful catalog variant it is synced to… |
Example prompts
- "How much does a black unisex t-shirt in size M with a front print cost to produce, and what are the shipping options to Munich, Germany?"
- "Which of my orders are on hold or failed, and what are the tracking links of the orders that have shipped?"
- "Create a draft order for Anna Schmidt, Hauptstraße 5, 10115 Berlin: 2 of our Logo Hoodie in size L with standard shipping, and show me the total cost before anything is confirmed."
- "Which products in my Shopify store are not synced to a Printful product yet?"
FAQ
Where does Gemini CLI look for MCP servers? In ~/.gemini/settings.json for your user, or in .gemini/settings.json inside a project. gemini mcp list shows each server and whether it connects.
Next steps
Was this guide helpful?