InkFE Print
Personalize business-card templates, review proofs, and prepare Shopify checkout.
What it can do
What data it sees
Do you need an account
No: the server works without sign-in
Personalize business-card templates, review proofs, and prepare Shopify checkout.
How to connect
How to connect InkFE Print to Claude
The server address to paste into Claude settings:
https://www.inkfe.com/api/mcp
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect InkFE Print to ChatGPT
The server address to paste into ChatGPT settings:
https://www.inkfe.com/api/mcp
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect InkFE Print to Cursor
The server address to paste into Cursor settings:
https://www.inkfe.com/api/mcp
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (11)
Raw names from tools/list. Only developers need these.
| search_products | Search the public InkFE print catalog by free text. Use this when the buyer wants something other than a business card, or to confirm a product exists before calling get_product. Returns up to `limit` products with handle, title, productType, priceRange (min/max pack price and currency), the customer-facing options with their allowed values, and the product page URL. Pass the returned `handle` to get_product for variants and dimensions. Optional productType, templateCompatibleOnly and availableOnly filters narrow discovery. Each result distinguishes catalog visibility from template support; failed detail reads are explicitly unavailable. Prices are not quotes. Business cards designed from a template do not need this tool: list_business_card_templates already reports the productHandle to buy. |
| get_product | Describe one public InkFE product by handle. Returns handle, title, productType, hasBack (whether a back side is printed), dimensions in inches when known, the customer-facing options with a role (radio, size, quantity or frame) and their allowed values, every variant with its variantId, selectedOptions, packPrice, currency and availableForSale flag, and the product page URL. Use the variant's selectedOptions (option name plus value, exactly as listed) when the buyer chooses a pack size; a variant with availableForSale=false cannot be bought. Supply selectedOptions to resolve a complete configuration or get actionable missing/invalid/unavailable guidance. Read quantity for pack versus line-quantity rules, artwork for supported actions, source for freshness and policies for official policy links. A resolved variant is not artwork approval or a purchase quote. Fails with product_unavailable when the handle is unknown or the product is not sold publicly. |
| get_quote | Read an exact available variant price for the configured business-card pack. Returns printed quantity, decimal subtotal/currency, a 10-minute quoteToken and authored production business-day range when known. Shipping, tax, discounts, delivery availability and the final total remain unknown until Shopify checkout; this is not a price lock or a promised arrival date. Numeric quantities and other products are unsupported. Show the terms and obtain buyer confirmation before passing quoteToken to create_checkout. Never automatically accept a replacement quote. |
| list_business_card_templates | Start here to design a business card. Lists the InkFE Classic business card templates a buyer can personalise, with templateId, name, orientation (landscape or portrait), widthInches and heightInches, previewUrls for the front and back artwork, hasBack, the productHandle to purchase, and the `fields` the template needs. Each field has an `attribute` (the key to send when creating a design), a human label, the side it prints on (front, back or both), an inputType (text, multiline, url for a QR code destination, or imageUrl for a logo), whether it is required, and a sampleValue showing the placeholder text so you can judge length and tone. Show the buyer the preview images and field list, help them pick a template, then collect a value for every required field (a logo field needs a public https PNG or JPEG URL; a QR field needs the https URL the code should open). Check the productHandle with get_product and follow its artwork workflow. For a supported product, call create_business_card_design with the collected values and templateId. After preview approval and configuration selection, call get_quote, show the commercial terms and obtain confirmation. Pass designToken and quoteToken to create_checkout for a Shopify checkout URL. Takes no arguments. |
| refresh_design_proof | Refresh expired front/back proof links and return both saved images for the same immutable design. Requires the original guest/integration or verified owner. Never rerenders, extends design expiry, or grants approval. Missing or expired design state requires a new design and review. |
| revise_business_card_design | Create a new immutable design from an authorized prior design, using the same published template revision. Supply the complete field set and logo where needed, not a partial patch. Use a new requestId for an intentional edit and the same id for retries. Returns both previews and a new designToken. Prior approval never approves the new revision; review both sides again. If the template changed, select its current version and create a new design. |
| approve_design_proof | Only call after showing both front/back previews, warnings and exact print options and receiving explicit customer artwork approval in the AI conversation. Report frontReviewed, backReviewed and artworkApproved as true only when that happened. Records agent-reported approval for immutable artwork and configuration, not independent human-click evidence or payment consent. Returns approvalId, evidence and expiry. Repeated approval of identical terms is idempotent. Changed artwork or print options requires fresh review and approval. A new quote with unchanged print configuration can reuse the artwork approval; the buyer separately confirms commercial terms. |
| create_business_card_design | Applies the buyer's field values (and logo, if the template needs one) to a template, fits the text to its printable area, renders both sides as preview images, and returns a design token. Before creating a guest design, explain: unpaid, unsaved drafts expire 30 days after the design request starts. Verified saving keeps the draft; checkout and unresolved purchase artwork is protected. Seven-day token expiry is separate from deletion. Call list_business_card_templates first and collect a non-blank value for every field it lists, keyed by `attribute`; a blank or missing value fails with missing_required_fields. Pass a public https PNG or JPEG URL as `logoUrl` only when the template has an imageUrl field; omit it otherwise. Returns designToken, designId, templateId, revisionId, expiresAt (7 days out), previews (a 300-second signed URL plus width/height for each side; the pixels are also attached as image content blocks), and any text_shrunk warnings from fitting a value to its layer. Present both attached proof images directly, or provide labeled front/back links to the exact preview URLs if the host cannot display them. Do not require computer setup, downloads or re-uploading for proof review. Refresh expired links rather than creating another design. An accountOwned result identifies a verified customer, not an integration key. Results also include a private saveUrl for browser ownership verification; offer it only when the buyer wants to save. Saving requires sign-in; subsequent checkout of that design requires an AI connection authorized by the same InkFE account. If customer OAuth is unavailable, complete checkout before saving. Use a stable requestId; retry the same request after a timeout. Revise with revise_business_card_design and refresh expired links with refresh_design_proof. Show both previews and warnings, get exact print options and get_quote, then record explicit customer approval with approve_design_proof before create_checkout. Fails with unknown_tem |
| create_checkout | Turns a design token from create_business_card_design plus the buyer's chosen pack options and email into a Shopify checkout URL, with the print-ready artwork attached to the line item. Call this only after the buyer has approved both design previews and chosen a value for every customer-facing option get_product lists for the business card product (for example Corners and Quantity). selectedOptions must include every option get_product lists, keyed by option name with the buyer's chosen value exactly as listed there. Requires approvalId from approve_design_proof for the same artwork and configuration, plus a quoteToken from get_quote confirmed by the buyer. One approval creates one purchase attempt; retries must keep the same approval, buyer and purchase terms. Uncertain outcomes require recovery, never a replacement purchase. Expired, altered or changed quote terms stop checkout; request a fresh quote and renewed confirmation. For a changed price on an existing purchase, keep the same buyer/artwork/options and set confirmUpdatedQuote:true only after explicit customer confirmation of the fresh quote. This reuses the original purchase/cart; unknown cart outcomes stay on hold. Shopify verifies the resulting cart subtotal before any payment link is returned, then confirms final shipping, tax, discounts and payable total in checkout. Returns quoteId, quotedSubtotal, checkoutUrl, cartId, designAssetId, and lineItem { productTitle, variantTitle, packPrice, currency, selectedOptions }. Fails with quote_required, quote_invalid, quote_expired, quote_changed, quote_unavailable, access_denied, design_token_invalid, design_token_expired, design_not_found, unknown_template, product_unavailable, variant_unavailable {selectedOptions, availableOptions}, rate_limited {retryAfterSeconds}, storage_failed, cart_create_failed, or connector_unavailable. |
| start_guest_session | Only for anonymous callers when guest access is enabled. If this AI app is already connected through InkFE customer sign-in (OAuth) or a provisioned integration key, skip this tool and omit guestToken on design/checkout calls. Before guest designing, tell the customer: unpaid, unsaved guest drafts expire 30 days after the design request starts; save through verified sign-in to keep them. Checkout or unresolved purchase records are protected. Returns a private guestToken valid for seven days; token expiry is separate from draft retention. Pass it to create_business_card_design and create_checkout in this conversation. Claimed designs require an AI connection authorized by the same InkFE account. Starting a session does not place or pay for an order. |
| revoke_guest_session | Revokes the supplied guest session so it cannot create designs or checkout again. Existing orders are unaffected. This does not delete artwork and cannot revoke another session without its private token. |