Productify

Create, write and publish Printify products from chat, after a preview you approve.

托管 MCP 服务器

npx add-mcp 'https://www.useproductify.com/api/mcp'

可安装到 Claude Code、Codex、Cursor 等客户端

文档

Productify MCP

Productify's hosted MCP server lets ChatGPT and Codex create Printify products from your saved templates, then publish or edit them, after you approve a preview. Add https://www.useproductify.com/api/mcp to your client and sign in with a Productify account that has a connected Printify shop. Your Printify token stays in Productify.

For seller use cases and videos, see Do it from chat.

Server and prerequisites

You need a Productify account, a connected Printify shop and a saved product template for creating products from designs. Your Printify token stays in Productify; do not paste it into a chat or client configuration.

These instructions cover ChatGPT and Codex. Production sign-in accepts approved OpenAI and Claude callback URLs and client metadata; HTTP and OAuth support alone does not make another client compatible.

Watch the 40-second walkthrough: how to create Printify products from ChatGPT or Codex.

Connect ChatGPT

Account and workspace policies decide whether you can add a custom MCP server.

  1. In ChatGPT Plugins, select the plus button, then Add custom MCP server.
  2. Name it Productify, enter https://www.useproductify.com/api/mcp and choose OAuth.
  3. Select I understand and want to continue, then Create as a plugin.
  4. Sign in to Productify. Select the optional manage permission to create, publish or edit before choosing Allow.
  5. In a new chat, type @ and select Productify. Ask it to show your saved templates.

Source: OpenAI's guide to connecting an MCP server in ChatGPT.

Connect Codex

codex mcp add productify --url https://www.useproductify.com/api/mcp
codex mcp login productify

Alternatively, add this to ~/.codex/config.toml, then run codex mcp login productify:

[mcp_servers.productify]
url = "https://www.useproductify.com/api/mcp"

In the IDE extension: gear menu → MCP servers → Add server → Streamable HTTP. Enter the endpoint, save, restart the extension and select Authenticate. Codex can upload local design files you identify and apply your saved template.

Source: OpenAI MCP documentation.

Authentication and permissions

OAuth 2.1 with PKCE (S256) for public clients. Dynamic client registration and trusted client ID metadata documents are supported. Production loopback callbacks require trusted client metadata; self-registered loopback clients are not accepted.

Protected resource metadata: https://www.useproductify.com/.well-known/oauth-protected-resource/api/mcp

  • productify, always granted: read shops, templates and products; stage designs; write listings; read reviews and job progress.
  • productify.manage, granted only when the seller selects it on the consent screen: create, publish, edit and save the shop's first listing voice. A client request alone does not grant this scope.

Tools use the shop selected in Productify, with no account or shop identifier in their inputs. Work already running keeps its original shop.

Revoke access in Shops → Connected apps → Disconnect. To add manage permission, reconnect and select it. For Codex, disconnect in Productify and run codex mcp login productify again.

Preview, approve, run

  1. Call list_shops_and_templates, stage the designs and inspect get_review. If no saved template fits, set one up first: find_store_products and save_template_from_product for a product the store already sells, or search_catalog, get_product_options and create_template for a new one. Tell the seller the provider, sizes and print position, and ask what to charge before saving.
  2. If staging returns needs_voice, ask how the seller wants listings to sound, then call set_shop_voice and write_listings. If they decline, use write_listings with skipVoice: true. Poll get_review until the products report listingWritten: true before creating them.
  3. Call preview_create, preview_publish or preview_edit. Show the affected products, prices and warnings.
  4. After the seller approves that preview, call the corresponding action with the same values and its confirmToken. If a product changed, get a new preview and approval.
  5. Create, publish and remote price edits return a job. Poll get_job_status; other edits finish before the tool returns.

Wait for listing generation to finish. If the seller explicitly wants current titles and descriptions without generated listings, pass withoutListings: true to both the creation preview and action.

Creation produces unpublished Printify products. Publishing is a separate preview and approval. Republishing sends only what changed in Productify since the last publish, which replaces those parts in the store. Create, publish and edit actions send the seller an email with a disconnect link.

Tool reference

ToolScopePurpose
list_shops_and_templatesproductifyLists the connected Printify shops, which one is selected, and that shop's saved templates. Call it first for a templateId.
find_store_products, then save_template_from_productproductifyFinds a product the store already sells, by title or product type, and saves it as a template: same product, provider, colors and sizes at their retail prices, and the main design's placement.
search_catalog, get_product_options, then create_templateproductifySets up a product the shop has no template for: finds it in Printify's catalog, lists its providers, then their sizes, colors, print positions and price per size, and saves the chosen setup with the price the seller confirms.
stage_designsproductifyAdds attached PNG or JPEG designs, up to 20 per call, to a new upload on a saved template: one product per design. Starts the listings.
get_upload_urlsproductifyFor files on the seller's computer: one-time upload URLs from each file's name, size, type and SHA-256. PUT the bytes, then pass the uploadIds to stage_designs.
write_listingsproductifyStarts Productify's writer on an unfinished upload: title, description and tags in the shop's voice, following Etsy's tag rules.
set_shop_voiceproductify.manageSaves how the shop's listings should sound, only when the shop has no voice yet.
get_reviewproductifyShows the upload's products: title, file, variant count, price range, whether the listing is written, and print warnings.
find_productsproductifyFinds products in the selected shop by words in the title, and by status. Returns the 20 most recently changed.
get_job_statusproductifyReports the progress of a create, publish or edit run.
preview_create, then create_productsproductify.managePreviews, then creates up to 20 products in Printify, unpublished, from one upload or several.
preview_publish, then publish_productsproductify.managePreviews, then publishes up to 20 products to the store connected to the Printify shop.
preview_edit, then edit_productsproductify.managePreviews, then changes the title, description, tags or price of up to 10 products made by Productify.

Limits and boundaries

  • 20 PNG or JPEG files per stage_designs or get_upload_urls call.
  • 20 products per create or publish; 10 per edit.
  • One upload per template per call. A create action may include products from several uploads.
  • Products are created from a saved template. When none fits, the client can save one from a product the shop already sells, or set one up from Printify's catalog.
  • Edits apply to staged products or products created through Productify. Artwork, placement and variant changes stay in the web app. To bulk edit products made in Printify or another tool, use the Printify bulk editor on the website; it is free.
  • Pricing supports fixed retail, profit over each variant's cost or percentage markup. Prices at or below a variant's cost are refused.
  • Productify writes listings unless the seller supplies them. Product deletion is not exposed through MCP.

Troubleshooting

  • No templates: select the correct shop, save a template and list templates again.
  • Permission denied for a change: reconnect with manage permission selected.
  • Codex can no longer reach Productify: close other Codex sessions, then run codex mcp login productify. In the IDE extension, select Authenticate.
  • Listings waiting on a purchase: show the returned pricing link. After the seller buys enough to cover the upload, call write_listings again.
  • Preview no longer valid: generate a fresh preview and get approval again.
  • Print warning: compare the file's pixel dimensions with the print area. Use an original file or higher-resolution export and review again.

Discovery: server card, Smithery, llms.txt.