Browse the Printful catalog, orders, shipping quotes and stats, and create draft orders and mockups. Hosted by usefulapi — connect from Claude, Cursor, or any MCP client.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"printful": {
"url": "https://printful.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
printful_list_stores | read | List stores List the stores this token can reach (id, name, platform type). A cheap way to confirm the token works, and where to find the store_id an ACCOUNT-level token needs. Printful: GET /stores. |
printful_list_catalog_categories | read | List catalog categories List Printful's catalog categories (T-shirts, Mugs, Posters…) with their ids and parent ids — the filter for printful_list_catalog_products. Printful: GET /categories. |
printful_list_catalog_products | read | List catalog products List the blank products Printful can print on (id, title, brand, model, variant count, print-file placements), optionally filtered by category. Printful: GET /products. |
printful_get_catalog_product | read | Get a catalog product Fetch one catalog product with ALL its variants (size, color, variant_id, price, stock). Use the variant_id values when quoting shipping or building an order. Printful: GET /products/{id}. |
printful_get_catalog_variant | read | Get a catalog variant Fetch one catalog variant and its parent product. Printful: GET /products/variant/{id}. |
printful_list_store_products | read | List store products (Manual/API store) List the Sync Products in a Manual-order / API store. For a Shopify, Etsy, WooCommerce or other integrated store use printful_list_sync_products instead. Printful: GET /store/products. |
printful_get_store_product | read | Get a store product Fetch one Sync Product with all its Sync Variants — catalog variant, print files, retail price. Works for any store type. Printful: GET /store/products/{id}. |
printful_list_sync_products | read | List synced products (integrated store) List the products Printful has imported from an integrated store (Shopify, Etsy, WooCommerce…), with how many variants are synced. Filter by status=unsynced to find products that still need a design or catalog variant. Printful: GET /sync/products. |
printful_list_orders | read | List orders List the store's orders, newest first, optionally by status (draft, pending, failed, canceled, inprocess, onhold, partial, fulfilled, archived). Printful: GET /orders. |
printful_get_order | read | Get an order Fetch one order: status, recipient, items, costs, and shipments with carrier and tracking links — the answer to 'where is my order?'. Printful: GET /orders/{id}. |
printful_calculate_shipping_rates | read | Calculate shipping rates Quote the shipping options (method id, name, rate, delivery-day estimate) for a set of items to an address. Only country_code is required (plus state_code for US/CA/AU). Changes nothing. Printful: POST /shipping/rates. |
printful_estimate_order_costs | read | Estimate order costs Price an order WITHOUT creating it: item, print, shipping and tax costs, plus retail totals. Same item shape as printful_create_draft_order. Changes nothing. Printful: POST /orders/estimate-costs. |
printful_get_file | read | Get a file Fetch one File Library entry — processing status (ok / waiting / failed), dimensions, DPI and preview URLs. Poll this after printful_add_file. Printful: GET /files/{id}. |
printful_get_printfiles | read | Get printfile specs for a product List the print areas (placements) and required print-file pixel sizes/DPI for each variant of a catalog product — what a design must match before mockups or orders. DTG is assumed unless technique is given. Printful: GET /mockup-generator/printfiles/{id}. |
printful_get_mockup_task | read | Get a mockup task result Check a mockup-generation task: status (pending / completed / failed) and, when done, the mockup image URLs per placement and variant. Printful: GET /mockup-generator/task. |
printful_get_statistics | read | Get store statistics Sales, costs, profit and order-count reports for a period of at most 6 months. Printful: GET /reports/statistics. |
printful_create_draft_order | write | Create a draft order Create an order as a DRAFT — nothing is charged or produced. It must be confirmed later in the Printful dashboard, where the charge is shown. Each item needs one of variant_id (+ files), sync_variant_id, external_variant_id, warehouse_product_variant_id or product_template_id (+ variant_id). Printful: POST /orders (never with confirm). |
printful_update_draft_order | write | Update a draft order Change a DRAFT order (unsubmitted orders only) — send only the fields to change. CAUTION: if you send `items`, it replaces the list: existing items not included (by id or external_id) are removed. The order stays a draft; nothing is charged. Printful: PUT /orders/{id} (never with confirm). |
printful_add_file | write | Add a file to the File Library Add a print file to the File Library from a public URL (PNG/JPG recommended). If a file with the same URL already exists it is returned instead. Processing is async — poll printful_get_file until status is ok. Printful: POST /files. |
printful_create_mockup_task | write | Create a mockup generation task Start generating product mockups for a design on a catalog product — returns a task_key; poll printful_get_mockup_task for the images. Heavily rate-limited (about 10/min for established stores, 2/min for new ones). Printful: POST /mockup-generator/create-task/{id}. |
printful_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
printful_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED Printful tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Read-only; does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Proper user | $9/mo · $90/yr | Unlimited |
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.