list_mockupsLABSCO SUMMARY
The trial is not a plan — it is an unfunded balance, and it watermarks everything.
Until a card is verified and the $5 minimum funded, every render carries a watermark and stops at 1,024 px, five templates are kept, and one that sits 13 days without a render is deleted. That is worth knowing because get_account reports the same tier either way: what changes is the balance, not the plan. On the rendering side, the distinction to get right early is surface against print area — a surface is a whole printable product detected in the photo, a print area is a zone somebody drew on one, they have separate tools, and a saved print area does not close off the surface underneath it. Sizing takes one answer per render, never both.
What it is
An MCP server for SudoMock's mockup rendering API. Upload a Photoshop template, place artwork onto its smart objects, edit the text layers it exposes, and take back a rendered image URL. A second track starts from a photograph: create a 2D mockup and it detects the printable surfaces itself, so artwork can go across a whole surface or into a print area someone drew on it.
What you get
- list_mockups and get_mockup_details return your templates and one template's smart object UUIDs, dimensions and blend modes; render_mockup does the render at 1 credit, and upload_psd takes a PSD or PSB in either sync or async form
- create_2d_mockup builds a mockup from a photograph and detects its printable surfaces; get_2d_mockup returns those surfaces with any saved print areas, and update_2d_print_areas replaces their geometry
- render_2d_surface prints across a whole surface using either a coverage percentage or an explicit width and height; render_2d_print_area targets a drawn zone such as a chest logo using either a fit or explicit dimensions. A product can carry both, and they stay separate targets
- Sizing takes one answer per render — the relative option or the exact box, never both, and width and height together — while position, offset_x, offset_y and rotation place the artwork on either kind of target
- remove_background returns a transparent-PNG cutout on a URL valid for 7 days that can be passed straight back as artwork_url, or remove_background: true cleans the artwork inline during a render. Either way it is 25 credits per artwork, refunded automatically if processing fails
- render_video is always asynchronous, and render_mockup, upload_psd, create_2d_mockup and both 2D renders accept is_async: true. Those return a job_id, with get_job, wait_for_job and list_jobs following it through to result_url, credits_charged and the pay-as-you-go breakdown
- Webhooks are covered properly: create, list, update, delete and test endpoints, rotate the signing secret, list deliveries and replay a failed one. Deliveries carry X-SudoMock-Signature — a hex HMAC-SHA256 over the timestamp and raw body — plus X-SudoMock-Timestamp, to be verified in constant time and rejected beyond 300s
- get_account reports plan, credits, prepaid balance and usage, while update_mockup renames a template and delete_mockup removes one
Requirements
A local stdio server: npx -y @sudomock/mcp with SUDOMOCK_API_KEY, an sm_ key from the SudoMock dashboard. A hosted HTTP or OAuth transport is not available yet. Pay as you go carries no subscription — one PSD render is $0.10 and the minimum first payment is $5 — while volume plans start at $25/month for 5,000 renders and the lowest self-serve rate is $2.42 per 1,000 renders on the annual Pro 50K plan. A new account starts with 500 credits granted once, spendable without a card. Until a card is verified and the $5 minimum funded, renders are watermarked and capped at 1,024 px, 5 PSD templates are kept, one render runs at a time, and a template goes 13 days without a render before it is removed. Funding lifts all of that at once: no watermark, no width cap, 150 stored templates, 25 concurrent renders and 10 concurrent uploads.
Setup effort
One command plus a key — npx -y @sudomock/mcp, then supply credentials
USE CASES
Putting a design on a product photo you already have
Create the 2D mockup from the photograph, read back the surfaces it detected, and print the artwork across the one you want at the coverage you choose.
Rendering into a template a designer prepared
Upload the PSD, read its smart object UUIDs and dimensions, then place artwork and edit the text layers it exposes.
Placing a logo in exactly one spot
Target the saved print area rather than the whole surface, with a fit or explicit dimensions plus position, offset and rotation.
Using artwork that came with a background
Cut it out once and reuse the transparent PNG for a week, or clean it inline during the render if it is only needed for this one.
Generating a batch without holding the connection open
Submit the renders asynchronously, take the job ids, and either poll or block until each reaches a terminal state with its result URL and credit cost.
Being told when a long job finishes
Register a signed webhook endpoint, test it, and replay any delivery that failed — with a signature over the timestamp and body to verify.
27 tools
Listed in project docs. Your client may show a different list.
get_mockup_detailsrender_mockupremove_backgroundcreate_2d_mockuprender_2d_surfacerender_2d_print_arearender_videoupload_psdlist_2d_mockupsget_2d_mockupupdate_2d_print_areasdelete_2d_mockupget_jobwait_for_joblist_jobsget_accountupdate_mockupdelete_mockupcreate_webhook_endpointlist_webhook_endpointsupdate_webhook_endpointdelete_webhook_endpointrotate_webhook_secrettest_webhook_endpointlist_webhook_deliveriesreplay_webhook_deliveryBEFORE YOU INSTALL
What to know first
Tools you get
27 tools named in the project's documentation.
Requires
- npx on PATH
- SUDOMOCK_API_KEY in your environment
Where it runs
All 4 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
npx -y @sudomock/mcpMCP Clients
Claude Code
claude mcp add sudomock -e SUDOMOCK_API_KEY=<YOUR_SUDOMOCK_API_KEY> -- npx -y @sudomock/mcpCursor, Windsurf
{
"mcpServers": {
"sudomock": {
"command": "npx",
"args": [
"-y",
"@sudomock/mcp"
],
"env": {
"SUDOMOCK_API_KEY": "<YOUR_SUDOMOCK_API_KEY>"
}
}
}
}VS Code
{
"servers": {
"sudomock": {
"command": "npx",
"args": [
"-y",
"@sudomock/mcp"
],
"env": {
"SUDOMOCK_API_KEY": "<YOUR_SUDOMOCK_API_KEY>"
}
}
}
}