Skip to main content
Glama
printful-mcp
by jwlpt45

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PRINTFUL_STORE_IDNoOptional Printful store ID. Required for account-level tokens on store-specific calls.
PRINTFUL_API_TOKENYesYour Printful private token. Required to authenticate with the Printful API.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_storesA

List Printful stores visible to the private token. Use a store id from this list as PRINTFUL_STORE_ID when the token is account-level.

search_catalogA

Search the Printful product catalog. The v1 catalog endpoint has no text query, so this loads the catalog (optionally by category_id) and filters title, brand, model, and type locally. Results are paged with offset and limit (default 20, max 100).

get_productB

Get one Printful catalog product, including its variants, by catalog product id.

get_variantsA

Get variants for a catalog product, or one variant by variant id. Pass product_id or variant_id, not both.

get_shipping_ratesB

Calculate Printful shipping options for catalog or warehouse items. country_code is required. state_code is required for US, CA, and AU. These rates can differ from estimate_order_costs when store shipping settings apply.

estimate_order_costsA

Estimate item, print, shipping, and tax costs without creating an order. Call this before create_order. Nothing is charged.

create_orderA

Create a Printful order as a DRAFT only. This tool always sends confirm=false, ignores any confirm flag, and never charges the store. Fulfillment happens only if you later call confirm_order with confirm set to true. Prefer a unique external_id so a retry cannot duplicate the draft.

confirm_orderA

Submit an existing DRAFT order for fulfillment. This charges the store payment method. confirm must be the boolean true. Do not call this unless a person explicitly asked to place and pay for the order.

cancel_orderA

Cancel a draft or pending Printful order. Charged amounts are returned by Printful when the order is eligible.

get_orderA

Get one Printful order by id, including status, costs, and shipments.

list_ordersA

List orders for the current store. Filter by status (for example draft, pending, fulfilled, canceled). limit max is 100.

list_sync_productsB

List sync products in the connected store. status can be all, synced, unsynced, ignored, imported, discontinued, or out_of_stock.

create_sync_productB

Create a sync product from one or more catalog variant ids, a print-file URL, and a placement (front, back, default, or another Printful file type). The same file URL is applied to every variant.

upload_fileA

Add a file to the Printful file library by URL. If the same URL already exists, Printful returns the existing file. Processing is asynchronous; status starts as waiting and later becomes ok or failed. Deprecated .ai, .psd, and .tiff sources are rejected by Printful.

create_mockup_taskA

Start an asynchronous Printful mockup task for a catalog product. This endpoint is tightly rate limited (about 2 to 10 calls per minute). Poll get_mockup_task with the returned task_key. On 429, wait the reported seconds before retrying.

get_mockup_taskA

Read a mockup generation task. When status is completed, result.mockups contains image URLs. If status is pending, wait and call again.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 16 tools

Disambiguation4/5

Most tools have clearly distinct resource+action targets, and descriptions explicitly warn about overlaps (confirm_order requires explicit human intent, get_shipping_rates vs estimate_order_costs are explained). Minor confusion remains between get_product and get_variants (the latter also fetches a single variant and get_product already returns variants), and between the two cost-estimation tools. Overall an agent can reliably pick the right tool.

Naming Consistency5/5

All 16 names are snake_case with a consistent verb_noun pattern (list_, get_, create_, confirm_, cancel_, estimate_, search_, upload_). The convention is uniform across every resource type, so the pattern is completely predictable.

Tool Count4/5

16 tools is on the heavier side but each maps to a genuine Printful domain operation (catalog, files, mockups, sync products, stores, shipping, order lifecycle). Nothing feels redundant, though a couple of read tools (get_product/get_variants) could be consolidated.

Completeness4/5

Order lifecycle is fully covered (create draft, confirm, cancel, get, list) and catalog/files/mockups/shipping are all present. The main gap is the sync product lifecycle: create and list exist but there is no get_single, update, or delete/ignore sync product tool, which will force awkward workarounds for managing existing products.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues