Skip to content

Setup & reference

Productify MCP

Connect your AI client to your Printify shop through Productify.

See what you can make from chat →

Server & prerequisites

A hosted MCP server using Streamable HTTP and OAuth. Add this URL to your client:

https://www.useproductify.com/api/mcp

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 your chat or client configuration.

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

Connect ChatGPT

Available on the web with a Plus, Pro, Business, Enterprise or Education plan and developer mode access.

  1. Open ChatGPT Settings, then Security and login. Turn on Developer mode.
  2. Open the Plugins page and select the plus button. Name the connection Productify.
  3. Use this server URL and choose OAuth:
    https://www.useproductify.com/api/mcp
  4. Sign in to Productify. To create, publish or edit products, select the optional manage permission before choosing Allow.
  5. In a new chat, choose Developer mode from the plus menu and select Productify. Ask it to show your saved templates.

Setup guidance: OpenAI's developer mode documentation.

Connect Codex

Add the remote server, then sign in:

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

Or 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, open the gear menu, choose MCP servers and add a Streamable HTTP server using the URL above. Save, restart the extension and select Authenticate.

Codex can upload local design files. Tell it which files to use and which saved Productify template to apply.

Configuration guidance: OpenAI's MCP documentation.

Authentication & 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.

productify
Always granted: read shops, templates and products; stage designs; write listings; read reviews and job progress. Staging also uploads artwork to the Printify media library.
productify.manage
Granted only when the seller selects it on Productify's consent screen: create, publish and edit products, and save the shop's first listing voice. Requesting the scope alone does not grant it.

Every tool uses the shop selected in Productify. Tool inputs do not accept an account or shop identifier. Work already running keeps its original shop.

Protected resource metadata:

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

To revoke access, open Shops → Connected apps in Productify and select Disconnect. To add manage permission later, disconnect, sign in again and select that permission.

Preview, approve, run

  1. Find a template with list_shops_and_templates. Stage the designs and use get_review to inspect the proposed products.
  2. If staging returns needs_voice, ask the seller how their listings should 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 seller the affected products, prices and warnings.
  4. After the seller approves that preview, call the matching action with the same values and its confirmToken. If the product changed, request a new preview and approval.
  5. Create, publish and remote price edits return a job. Follow it with get_job_status. Other edits finish before the tool returns.

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

Creation produces unpublished Printify products. Publishing requires its own preview and approval; republishing a live product can replace edits made in the store. Create, publish and edit actions send the seller an email with a disconnect link.

Tool reference

Read and preparation tools use productify. Remote product changes require productify.manage.

Productify MCP tools and their required scopes
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.
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.

Limits & boundaries

  • Up to 20 PNG or JPEG files per stage_designs or get_upload_urls call.
  • Up to 20 products per create or publish action, and 10 per edit.
  • One upload per template per call. A create action can include products from several uploads.
  • Chat needs a saved template. Use the new-product guide to choose a product and print provider first.
  • Edits apply to staged products or products created through Productify. Artwork, placement and variant changes stay in the web app.
  • Pricing can use a fixed retail price, profit over each variant's cost or percentage markup. Prices at or below a variant's Printify cost are refused.
  • Productify writes the listing copy unless the seller provides it. Deleting products is not exposed through MCP.

Troubleshooting

No templates found

Select the correct shop in Productify and save a template. Then ask the client to list templates again.

Permission denied on a create, publish or edit

Reconnect with the manage permission selected. In Codex, disconnect under Shops → Connected apps, then run codex mcp login productify again.

Listings are waiting on credits

If staging or listing generation returns waiting_on_credits, show the seller the returned pricing link. After they add enough credits to cover the upload, call write_listings again.

The preview is no longer valid

The products changed after the preview. Generate a fresh preview and ask for approval again.

A design has a print warning

Check its pixel dimensions against the template's print area. Use the original file or a higher-resolution export and review again.

Discovery: server card · Smithery listing