protogrid

Search / com.inkfe/print

InkFE Print

R0· no sign-in

Personalize business-card templates, review proofs, and prepare Shopify checkout.

v1.0.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality92strong
Trust83of 100
Uptime, 30 days100%
Latency p50231 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "print": {
      "type": "http",
      "url": "https://www.inkfe.com/api/mcp"
    }
  }
}
claude mcp add --transport http print https://www.inkfe.com/api/mcp
[mcp_servers.print]
url = "https://www.inkfe.com/api/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "print": {
      "type": "remote",
      "url": "https://www.inkfe.com/api/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "print": {
      "type": "http",
      "url": "https://www.inkfe.com/api/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=print&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd3d3Lmlua2ZlLmNvbS9hcGkvbWNwIn0%3D"
}
{
  "servers": {
    "print": {
      "type": "http",
      "url": "https://www.inkfe.com/api/mcp"
    }
  }
}
{
  "mcpServers": {
    "print": {
      "httpUrl": "https://www.inkfe.com/api/mcp"
    }
  }
}
extensions:
  "print":
    enabled: true
    name: "print"
    type: streamable_http
    uri: "https://www.inkfe.com/api/mcp"
    timeout: 300

Quality 92 / 100strong

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length3 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations11 of 11 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 5,424 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

11 tools, about 5,424 tokens to load them all · tool set c4ee892bf656 · checked 2026-10-19 10:52 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-26d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://www.inkfe.com/api/mcp streamable-httpnoneyes100%231 ms2026-07-282026-10-19

Tools (11)

approve_design_proofOnly 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_designApplies 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_template, missing_required_fields {attributes}, unknown_field {attribute}, value_too_long {attribute}, unsupported_characters {attribute}, logo_required, logo_fetch_failed, logo_unsupported, rate_limited {retryAfterSeconds} (too many designs from this API key in a short time), or connector_unavailable.
create_checkoutTurns 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.
get_productread-onlyDescribe 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_quoteread-onlyRead 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_templatesread-onlyStart 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_proofread-onlyRefresh 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_designCreate 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.
revoke_guest_sessiondestructiveRevokes 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.
search_productsread-onlySearch 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.
start_guest_sessionOnly 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.inkfe/print",
  "icons": [
    {
      "src": "https://www.inkfe.com/apple-icon.png",
      "sizes": [
        "180x180"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "InkFE Print",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://www.inkfe.com/api/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://www.inkfe.com/mcp/docs",
  "description": "Personalize business-card templates, review proofs, and prepare Shopify checkout."
}