printify-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., "@printify-mcp-server Show me my recent orders."
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.
printify-mcp-server
A Model Context Protocol server for the Printify API.
All 49 of Printify's published operations are reachable. Printify's API is entirely merchant-facing, so unlike most providers in this family there is nothing here an ordinary token cannot call — and the catalogue says so rather than quietly claiming a smaller surface.
MIT licensed.
Install
npm install -g @nasdigitaluk/printify-mcpGet a token from Printify → My Profile → Connections → Personal Access Tokens.
{
"mcpServers": {
"printify": {
"command": "printify-mcp",
"env": {
"PRINTIFY_API_KEY": "your-token",
"PRINTIFY_SHOP_ID": "12345678"
}
}
}
}Related MCP server: OpenPrints MCP
Configuration
Variable | |
| Required. |
| Optional but recommended. Nearly every route is scoped to a shop; set this and it is filled in whenever you leave it out. |
| Refuse anything that changes state. |
| Allow writes, refuse anything irreversible or chargeable. |
⚠️ Orders cost real money
This is the thing that makes Printify different from the other servers in this family, and it shapes how the tools are classified.
destructive here does not mean "deletes something". It means irreversible or chargeable:
Operation | Why |
| Places a real order. |
| Same, expedited. |
| Commits an existing order to print. |
| Opens a chargeable support case. |
| Same. |
every | The ordinary meaning. |
Classifying order placement as a plain write would have made MCP_NO_DESTRUCTIVE useless to exactly the person it exists to protect. 8 of the 49 operations are destructive by this definition, and there is a test asserting each one.
printify_get_shipping_cost is a POST that changes nothing, so it is classified read — it is the call that tells you what an order will cost before you commit to it, and a read-only server should still be able to make it.
Tools
Nine tools cover 49 operations. Every tool description is paid for in the model's context window on every turn, so the common path gets purpose-built tools and everything else goes through one dispatcher.
Tool | |
| Browse the catalogue. Start here. |
| Call any operation by id. |
| Your shops and their ids. |
| Products in a shop. |
| One product in full. |
| Artwork into the media library. |
| Orders in a shop. |
| Mark a product published to its channel. |
| What an order would cost, before placing it. |
printify_call is declared destructive because it can reach a destructive operation. A read-only server has to refuse it outright rather than inspect the id after the fact.
Artwork must be a publicly reachable URL. Printify fetches it server-side, so a local file path cannot work — and the schema refuses file://, javascript: and anything with embedded credentials rather than letting it fail confusingly at the provider.
Refreshing the catalogue
curl -o vendor/printify-openapi.json https://developers.printify.com/openapi.json
npm run generate
npm testThe coverage test compares the catalogue against the vendored spec, so an endpoint Printify adds fails the build rather than making this README untrue.
A note on Printify's spec
Printify declares every parameter by $ref into components.parameters. That broke the first version of the shared generator, which filtered on p.in === "path" — a $ref object has no in, so all of them were dropped and the catalogue claimed these operations took no path parameters at all.
It surfaced because the dispatcher refuses a path it cannot fully resolve and blames the catalogue rather than the caller. Without that guard, the first call would have gone out with a literal {shop_id} in the URL and come back as an opaque 404. The generator now resolves refs, and also takes path parameters from the route template as the authority, so an undeclared one cannot go missing.
Testing
npm test # 13 tests
PRINTIFY_API_KEY=x npm run smoke # real MCP over stdioBuilt on
@nasdigitaluk/mcp-server-core.
Licence
MIT.
Available Tools
9 toolsprintify_callC
Call any Printify operation by id. shop_id is filled in from PRINTIFY_SHOP_ID when you leave it out.
Inputs: operation_id (required), body, params.
printify_get_productA
One product in full, including variants, images and print areas.
Inputs: shop_id (required), product_id (required).
printify_get_shipping_costC
What an order would cost to ship, before placing it. Worth calling first — placing an order is chargeable and cannot be undone.
Inputs: shop_id (required), address_to (required), line_items (required).
printify_get_shopsB
The shops connected to this Printify account, with their ids.
Inputs: no named parameters.
printify_list_operationsA
Browse all 49 operations in the Printify API. Every one is reachable — Printify's API is entirely merchant-facing, so unlike most providers there is nothing here an ordinary token cannot call. Use this to find an operation id for printify_call.
Inputs: search.
printify_list_ordersC
Orders in a shop, most recent first.
Inputs: shop_id (required), page, limit, status.
printify_list_productsC
Products in a shop, paginated.
Inputs: shop_id (required), page, limit.
printify_publish_productA
Mark a product as published to its connected sales channel. Note this tells Printify the product is live; the storefront itself is updated by whatever integration owns that channel.
Inputs: shop_id (required), product_id (required).
printify_upload_imageA
Upload artwork to the Printify media library so it can be placed on a product. Takes a publicly reachable URL — Printify fetches it server-side, so a local file path will not work.
Inputs: url (required), file_name (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Most tools map cleanly to distinct actions such as shipping quotes, image upload, product retrieval, and order listing. printify_call and printify_list_operations form a clear discovery-plus-execution pair, but printify_call can technically overlap with every dedicated tool, creating mild ambiguity.
All tools consistently use a printify_ prefix with snake_case verb_noun names, such as list_products, get_product, upload_image, and publish_product. The sole outlier, printify_call, is still verb-first and fits the overall pattern well.
Nine tools is a well-scoped count for this server's purpose. It covers shops, products, orders, shipping, image upload, publishing, and includes a generic API call mechanism without feeling bloated.
Core read operations and several key actions are provided as first-class tools, while all 49 API operations are reachable through printify_list_operations and printify_call. The main gap is that a high-value action like creating an order lacks a dedicated wrapper, though it can be worked around through the generic call path.
Maintenance
Related MCP Connectors
Create, write and publish Printify products from chat, after a preview you approve.
Printify MCP server for ChatGPT, Claude and any AI agent: list products, create product, publish product, update variant prices, list orders and cancel order in your own Printify account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Printify yourself; Cotlet does not store your password and you need no Printify API key. About the official Printify API: Printify has a full public REST API, version 1, for shops, catalog, products, orders, uploads and webhooks, but no official MCP server (checked 17 Oct 2026). You authenticate with a personal access token or an approved OAuth app, and you build the agent tool layer yourself. Setup and FAQ: https://cotlet.dev/integrations/printify-api-mcp-server
Browse the Printful catalog, orders, shipping quotes and stats, and create draft orders and mockups.
Print-on-demand fulfillment: manage orders, catalog and account from AI clients. Writes ask first.
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- FlicenseAqualityDmaintenanceEnables to create print-on-demand products using the Printful API, allowing users to browse catalog, upload designs, create products, and generate mockups.23-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to create, update, and publish print-on-demand products on Printify directly from chat, including managing shops, products, and orders.-