Smartpress
Configure, price, proof and add custom print products to a Smartpress cart. US printing, no login.
| Endpoint | https://mcp.smartpress.com/mcp (streamable-http) |
|---|---|
| Registry version | 0.1.0 |
| Now | 21 tools · grade F (40) · pin ts_f8a0f7ffd6d5207863667649e9d468ca · protocol 2025-06-18 |
| First / last listed | 2026-10-31 03:05 UTC / 2026-10-31 03:05 UTC |
| Grade over time | 2026-10-31: F (40), 21 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: get_product_config find_products get_product_templates create_config_session update_config_session get_session_latest create_file_session link_file_session clone_file_session list_session_files get_file_upload_url add_to_cart analyze_file get_file_analysis get_file_session_analysis recommend_products get_file_session_proofs create_proof create_file_check set_proof_approval send_feedback
get_product_config | Retrieve the default product configuration for a given product ID. Returns the full ProductConfiguration response including:
- **availableOptions**: All configurable options organized by category:
- **pressSheets**: Nested hierarchy of press sheet options (type -> weight -> color). Each press sheet defines the printable substrate.
- **operations**: A map keyed by camelCase operation name (e.g params: productId* |
find_products | Find Smartpress products matching a name or description. Returns matching products with their id, name, and description (plus group, link, image and a relevance score).
Only products that can be configured through this assistant are returned. If nothing fits, say so and point the customer to smartpress.com rather than suggesting a product from memory.
Use this to discover products by what the us params: query*, limit |
get_product_templates | Get the downloadable print templates and design guides for a Smartpress product. Returns:
- **summary**: a one-line description of what this product has — paraphrase this rather than counting the arrays yourself.
- **designGuides**: instructional PDFs about how to set artwork up (bleed, folding). Not tied to a size.
- **templateGroups**: the print templates, in the groups the layout team defined params: productId*, format, include |
create_config_session | Create a new product configuration session to begin iterative configuration. This starts a server-side session that tracks your selection changes with version history.
**Workflow:**
1. Call this tool with a productId (or productConfigId to clone an existing config) and optional initial selections
2. The response includes the full ProductConfiguration with a productConfigSessionId
3. Review the va params: productId, productConfigId, selections, fileSessionId |
update_config_session | Update a configuration session with new selections. Saves the updated selections and returns the full ProductConfiguration response.
**IMPORTANT — selections structure:** The selections object must use nested objects that mirror the structure of the selections field in the response. Flat keys are silently ignored (no error returned). Always verify the response's selections match what you requeste params: sessionId*, productId*, selections* |
get_session_latest | Retrieve the latest state of a configuration session. Returns the full ProductConfiguration response with current selections, validation messages, and available options. Use this to check session state without making changes. params: sessionId* |
create_file_session | Create a file session for uploading proof/artwork files. Returns a **fileSessionId**. Once it is joined to a configuration session, add_to_cart attaches its files without you passing the ID.
**Two workflows:**
- **File-first** (no product chosen yet): call with no arguments. A placeholder product is used. When the product is chosen, you MUST pass this fileSessionId to create_config_session (or ca params: productId, productConfigSessionId |
link_file_session | Durably join a file session to a configuration session (last-write-wins). Use this when files were uploaded in one context and the configuration was created in another, or to re-link a configuration to a different file session.
After linking, add_to_cart needs only the configuration sessionId — the backend resolves the file session automatically. The real productId is reconciled onto the file ses params: sessionId*, fileSessionId* |
clone_file_session | Copy a file session — files, approved proofs, and completed check results — into a NEW file session, leaving the original and its configuration join untouched. Optionally link the CLONE to a configuration session in the same call.
Use this instead of link_file_session whenever the source file session is one a page is currently displaying: linking would MOVE the single join pointer and strip the f params: fileSessionId*, productConfigSessionId |
list_session_files | List the files currently attached to a file session, including each file's name, size, type, and sessionFileId. Use this to confirm an upload landed or to show the user what is attached. params: fileSessionId* |
get_file_upload_url | Mint a short-lived presigned URL that a client (a browser, an app, or the user) can use to upload a file directly to storage, attached to a file session.
Use this when the bytes are NOT on the machine running this server — e.g. the remote/hosted server, or a file the user has in a browser. (If this server also offers a tool that uploads a file from the local machine, prefer it for local files: it params: fileSessionId*, fileName*, expiresIn |
add_to_cart | Add the current session configuration to the cart. Calls the add-to-cart endpoint which translates the session's selections into the format required by the external cart service.
On success, returns a **clientKey** (anonymous cart identifier) and a **cartLink** (shareable URL to view the cart). These are also persisted on the session and will appear in all subsequent session responses.
If neithe params: sessionId*, fileSessionId, clientKey, userId, jobName |
analyze_file | Analyze a file already uploaded to a file session and return its analysis: PDF metadata (page size/count), extracted text, image labels, color palette, quality scores, and an AI classification (productCategory, industry, designStyle, targetAudience, marketingIntent).
The file is analyzed in place from the file session's storage — no re-upload. Analysis typically takes 30–90 seconds; this tool wai params: fileSessionId*, fileName, waitSeconds |
get_file_analysis | Fetch the status/results of a file analysis started by analyze_file (use the uploadId it returned). Returns the full results object once status is "ready". params: uploadId*, fileSessionId, waitSeconds |
get_file_session_analysis | Read the persisted structured analysis summary for a file session. Returns { analysis } where analysis is the AnalysisSummary written by analyze_file (page count, trim size, classification, color palette, and recommended file-derived selections), or null when the file session carries no stored analysis.
Use this on a fresh product-page arrival to decide whether to open with a file summary and off params: fileSessionId* |
recommend_products | Map a file analysis (from analyze_file) to Smartpress product candidates: productId, productName, a rationale citing the analysis evidence, a 0-1 confidence, and machine-readable matchSignals. Candidates are ordered by confidence (max 5).
Pass the analysis object returned by analyze_file (or just the uploadId to have it fetched). Use get_product_config on a candidate's productId to see its option params: analysis, uploadId |
get_file_session_proofs | Read the proof AND file-check state for a file session. Returns a compact view:
- isProofable: whether the session's product/config supports proofing.
- isFileCheckAvailable: whether a file check can run. A file check is a preflight report only (no proof file) and is often available when proofing is not.
- files: [{ fileName, isProofable, isFileCheckAvailable }] per uploaded file.
- proofs: newest params: fileSessionId* |
create_proof | Generate (enqueue) a preflight proof for a file in a file session: the proof service checks the file against the product's print specs and produces a proof with any errors/warnings.
Returns { proofId, sessionId } once enqueued. Proof generation takes tens of seconds — after calling this, poll get_file_session_proofs until the proof whose `id` equals proofId reaches status COMPLETED, then report i params: fileSessionId*, fileName* |
create_file_check | Run (enqueue) a file check for a file in a file session: the proof service preflights the file against the product's print specs and produces a report of errors/warnings. Unlike create_proof it makes NO proof file — the report is the whole result, and there is nothing to approve.
Use it when the session is NOT proofable but isFileCheckAvailable is true (read get_file_session_proofs first). When t params: fileSessionId*, fileName* |
set_proof_approval | Record the customer's decision on a proof: APPROVED (they sign off on the proof as shown), FURTHER_REVIEW (a Smartpress expert checks the file before printing), or DECLINED. An approved proof is what prints: when the order is placed, the approved proof file goes to production and the order item is marked "User approved their instant proof through an AI assistant."
Before calling this, ALL of thes params: fileSessionId*, proofId*, approvalStatus*, approvalMessage |
send_feedback | Send the user's feedback to the Smartpress team: a problem they ran into, a suggestion, or praise.
Rules:
- Call this ONLY when the user asks to send feedback, report a problem, or pass on praise. Never call it on your own after an error; you may offer it.
- Before calling, show the user what you'll send (type, and the message) and get their yes.
- Put the user's own words in "message". Leave out params: type*, severity, message*, contactEmail, productId, productConfigSessionId, fileSessionId, proofId, relatedTool, errorMessage |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.