Productify
채팅에서 Printify 제품을 생성, 작성 및 게시하며, 미리보기를 승인한 후 진행합니다.
호스팅형 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
- Endpoint: https://www.useproductify.com/api/mcp
- Transport: Streamable HTTP.
- Authentication: OAuth 2.1.
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.
- In ChatGPT Plugins, select the plus button, then Add custom MCP server.
- Name it Productify, enter https://www.useproductify.com/api/mcp and choose OAuth.
- Select I understand and want to continue, then Create as a plugin.
- Sign in to Productify. Select the optional manage permission to create, publish or edit before choosing Allow.
- 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
- Call
list_shops_and_templates, stage the designs and inspectget_review. If no saved template fits, set one up first:find_store_productsandsave_template_from_productfor a product the store already sells, orsearch_catalog,get_product_optionsandcreate_templatefor a new one. Tell the seller the provider, sizes and print position, and ask what to charge before saving. - If staging returns
needs_voice, ask how the seller wants listings to sound, then callset_shop_voiceandwrite_listings. If they decline, usewrite_listingswithskipVoice: true. Pollget_reviewuntil the products reportlistingWritten: truebefore creating them. - Call
preview_create,preview_publishorpreview_edit. Show the affected products, prices and warnings. - 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. - 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
| Tool | Scope | Purpose |
|---|---|---|
| list_shops_and_templates | productify | Lists 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_product | productify | Finds 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_template | productify | Sets 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_designs | productify | Adds 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_urls | productify | For 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_listings | productify | Starts Productify's writer on an unfinished upload: title, description and tags in the shop's voice, following Etsy's tag rules. |
| set_shop_voice | productify.manage | Saves how the shop's listings should sound, only when the shop has no voice yet. |
| get_review | productify | Shows the upload's products: title, file, variant count, price range, whether the listing is written, and print warnings. |
| find_products | productify | Finds products in the selected shop by words in the title, and by status. Returns the 20 most recently changed. |
| get_job_status | productify | Reports the progress of a create, publish or edit run. |
| preview_create, then create_products | productify.manage | Previews, then creates up to 20 products in Printify, unpublished, from one upload or several. |
| preview_publish, then publish_products | productify.manage | Previews, then publishes up to 20 products to the store connected to the Printify shop. |
| preview_edit, then edit_products | productify.manage | Previews, 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_designsorget_upload_urlscall. - 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_listingsagain. - 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.