Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.sudomock/mcp

NPM · @SUDOMOCK/MCP · SCANNED AUG 4

Product mockup API. Render PSD and 2D mockups, generate videos, manage async jobs and webhooks.

Available components

+52 this week 78 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security83
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known medium-severity CVE affects @hono/node-server 1.19.17, reached via @modelcontextprotocol/sdk > @hono/node-server. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to sudomock/mcp-server). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 7 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability72
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3876 tokens (~149/item across 26 items; 26 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @sudomock/mcp

# add to Claude Code
claude mcp add sudomock-mcp -- npx -y @sudomock/mcp
# add to Codex CLI
codex mcp add sudomock-mcp -- npx -y @sudomock/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sudomock-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@sudomock/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add sudomock-mcp --command npx --arg -y --arg @sudomock/mcp
# ~/.hermes/config.yaml
mcp_servers:
  sudomock-mcp:
    command: "npx"
    args: ["-y", "@sudomock/mcp"]
// mcp.json
{
  "mcpServers": {
    "sudomock-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@sudomock/mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Aug 26 +4
    • CVE-2026-69207 affects this package: medium security
    • Stability: unverified → 0.27 functional
  • 2 Aug 26 +21
    • Known CVEs: unverified → fail security
    • Provenance: pass → unverified security
    • Install scripts: pass → unverified security
    • Malware scan: unverified → pass security
    • The attested source repository moved: sudomock/mcp-server security
    • License: pass → unverified functional
    • Maintenance: pass → unverified functional
    • Dependency health: unverified → partial functional
    • Licence: MIT functional
  • 1 Aug 26 −9
    • Known CVEs: fail → unverified security
    • Dependency health: partial → unverified functional
  • 31 Jul 26 +36
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 26

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Aug 2026 · Analysed npm/@sudomock/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
sudomock/mcp-server
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/sudomock/mcp-server/.github/workflows/publish.yml@refs/tags/v2.4.0
Rekor log index:
2256687564
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:35818c818aad84dc3c8ef12fbcdb30ecbdb820d9a21240b63201fed934f40efdb31c5548a45bf27d0cee13fff435cdccdb662c11d398460b3e64b439d
Discovery method:
attestation_endpoint
Vulnerabilities 2 findings
ID CVE Severity Vector Fix available
GHSA-frvp-7c67-39w9 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N yes
GHSA-8j4g-w8fx-2239 CVE-2026-69207 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
Dependencies 94 packages

94 packages in the resolved dependency tree · 94 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 26 exposed · ~3,876 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
create_2d_mockup ~197

Create a reusable 2D mockup from a public image URL. Returns the mockup ID and public render targets synchronously. Costs 25 credits. If the image is unsuitable, the 25 credits are refunded automatically. Set is_async=true to queue instead and receive a job_id to poll with get_job or wait_for_job. Use the dashboard for visual fine-tuning.

NameTypeReqDescription
idempotency_keystringOptional retry-stable key for this create request
is_asyncbooleanQueue creation instead of waiting. When true the API returns 202 with a job_id immediately -- poll with get_job, or call wait_for_job to block until it finishes and returns the mockup. Default false…
namestringOptional display name for the 2D mockup
source_urlstringyesPublic HTTPS URL of the product image

No output schema declared.

No examples provided.

create_webhook_endpoint ~166

Register a webhook endpoint that SudoMock calls when async jobs finish. The signing secret is returned IN FULL exactly once here -- store it to verify the HMAC carried in the X-SudoMock-Signature header (with X-SudoMock-Timestamp) on incoming deliveries. URL must be https and publicly routable.

NameTypeReqDescription
descriptionstringOptional human-readable label for this endpoint
event_typesarrayEvent types to subscribe to. Supports render, upload, video, 2D mockup, 2D render, and webhook.test events. Pass an empty array (the default) to subscribe to ALL events.
urlstringyeshttps endpoint URL to receive POST deliveries (publicly routable; private/loopback hosts are rejected)

No output schema declared.

No examples provided.

delete_2d_mockup ~70

Permanently delete a SudoAI 2D mockup template and all of its data. Cannot be undone. Costs 0 credits.

NameTypeReqDescription
mockup_idstringyesUUID of the 2D mockup to delete (mockup_id from list_2d_mockups)

No output schema declared.

No examples provided.

delete_mockup ~38

Permanently delete a mockup template. Cannot be undone.

NameTypeReqDescription
mockup_uuidstringyesThe UUID of the mockup to delete

No output schema declared.

No examples provided.

delete_webhook_endpoint ~52

Permanently delete a webhook endpoint. SudoMock stops delivering to it. Cannot be undone.

NameTypeReqDescription
endpoint_idstringyesThe id of the webhook endpoint to delete (from list_webhook_endpoints)

No output schema declared.

No examples provided.

get_2d_mockup ~99

Get one SudoAI 2D mockup's full details, including saved print_areas[] and full-coverage surfaces[]. Use a print_area_id as print_area_uuid, or a surfaces[].surface_uuid as surface_uuid, for render_2d_mockup. Costs 0 credits.

NameTypeReqDescription
mockup_idstringyesUUID of the 2D mockup (mockup_id from list_2d_mockups)

No output schema declared.

No examples provided.

get_account ~30

Get your account info: subscription plan, credit balance, usage stats, billing period, and API key details.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_job ~83

Get the current status of any async render, video, upload, or 2D job by its job_id. Returns status (queued|running|succeeded|failed), completed-result details and credits charged, or an error if failed. To block until done, use wait_for_job instead.

NameTypeReqDescription
job_idstringyesThe job_id returned by any async submission

No output schema declared.

No examples provided.

get_mockup_details ~54

Get full details of a mockup: smart object UUIDs, layer names, dimensions, positions, blend modes, and thumbnail URLs.

NameTypeReqDescription
mockup_uuidstringyesThe UUID of the mockup to inspect

No output schema declared.

No examples provided.

list_2d_mockups ~130

List your saved SudoAI 2D mockup templates (no PSD). Returns each mockup's mockup_id, name, status, thumbnail, dimensions, and print_areas. Use the mockup_id with get_2d_mockup (to read print_area UUIDs) or render_2d_mockup. Costs 0 credits.

NameTypeReqDescription
customizable_onlybooleanReturn only mockups ready for shopper customization
limitnumberResults per page (1-100, default 20)
offsetnumberPagination offset (default 0)

No output schema declared.

No examples provided.

list_jobs ~144

List your async jobs, including PSD renders, videos, uploads, and 2D creation/renders, newest first. Use this when you do not already hold a job_id. Pass the returned next_cursor to fetch the next page.

NameTypeReqDescription
cursorstringOpaque keyset cursor from a prior page's next_cursor
kindstringFilter by job kind. Omit for all kinds.
limitintegerMax jobs per page (1-50, default 20)
mockup_uuidstringFilter by source mockup UUID (e.g. one mockup's videos). Raw-image videos are never returned by this filter.

No output schema declared.

No examples provided.

list_mockups ~143

List your uploaded mockup templates with UUIDs, names, and thumbnails. Use returned UUIDs with render_mockup or get_mockup_details.

NameTypeReqDescription
created_afterstringOnly mockups created after this ISO 8601 timestamp
created_beforestringOnly mockups created before this ISO 8601 timestamp
limitnumberResults per page (1-100, default 20)
namestringFilter by name (case-insensitive substring match)
offsetnumberPagination offset (default 0)
sort_bystringSort field
sort_orderstringSort direction

No output schema declared.

No examples provided.

list_webhook_deliveries ~114

List delivery attempts for a webhook endpoint (status, event_type, response code, timestamps). Use this to debug failed deliveries before replaying them.

NameTypeReqDescription
endpoint_idstringyesThe id of the webhook endpoint (from list_webhook_endpoints)
event_typestringFilter by event type
limitintegerMax deliveries to return (1-200, default 50)
statusstringFilter by delivery status (e.g. 'failed', 'succeeded')

No output schema declared.

No examples provided.

list_webhook_endpoints ~40

List your registered webhook endpoints (id, url, subscribed event_types, enabled state). Secrets are NOT returned here -- only at creation and rotation.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

remove_background ~86

Remove the background from any image and return a transparent-PNG cutout with clean, production-ready edges. The returned URL is valid for 7 days and can be used as artwork_url during that window. Costs 25 credits per image; credits are refunded automatically if processing fails.

NameTypeReqDescription
image_urlstringyesPublic URL of the image (PNG/JPG/WebP) to process

No output schema declared.

No examples provided.

render_2d_mockup ~510

Render artwork onto a saved 2D mockup template. Returns print_files (each with an export_path) and a render_uuid. Costs 5 credits. Use get_2d_mockup, then pass exactly one print_area_uuid or surface_uuid. Use the dashboard for visual fine-tuning.

NameTypeReqDescription
artwork_urlstringyesPublic URL of the artwork image (PNG/JPG/WebP) to place on the mockup
brightnessnumberBrightness adjustment (-150 to 150)
contrastnumberContrast adjustment (-100 to 100)
coveragenumberPercentage of the print area to cover (10-100, default 70)
fitstringHow artwork fits the print area - 'contain' (fit inside, default), 'fill' (stretch), 'cover' (fill and crop)
image_formatstringOutput format - 'webp' (smaller, recommended), 'png' (lossless), 'jpg'
image_sizenumberOutput width in pixels (100-10000, default 2048)
is_asyncbooleanQueue the render instead of waiting. When true the API returns 202 with a job_id immediately -- poll with get_job, or call wait_for_job to block until it finishes and hands back result_url. Default f…
mockup_uuidstringyesUUID of the 2D mockup template (from list_2d_mockups, returned as mockup_id).
opacitynumberArtwork opacity percentage (0-100)
positionstringPlacement within the print area (default 'center')
print_area_uuidstringUUID of a saved print area from get_2d_mockup. Omit when surface_uuid is used.
qualitynumberCompression quality for webp/jpg (1-100, default 90)
remove_backgroundbooleanRemove the artwork's background before placing it. Adds 25 credits per artwork.
rotationnumberRotate artwork in degrees (-360 to 360)
saturationnumberSaturation adjustment (-100 to 100)
surface_uuidstringUUID of a full-coverage product surface from get_2d_mockup. Omit when print_area_uuid is used.

No output schema declared.

No examples provided.

render_mockup ~550

Render a PSD mockup with artwork, editable text, or both. Supports one or multiple smart objects and preserves the template's authored appearance. Returns the rendered image URL. Costs 1 credit. Use list_mockups and get_mockup_details to find target UUIDs.

NameTypeReqDescription
artwork_urlstringPublic artwork URL for smart_object_uuid. Provide both singular fields, or use smart_objects.
blurnumberGaussian blur strength (0 to 100)
brightnessnumberBrightness adjustment
color_blend_modestringBlend mode for color overlay (e.g. 'multiply', 'screen', 'overlay')
color_hexstringOptional color overlay hex code (e.g. '#FF5733')
contrastnumberContrast adjustment
dpiintegerPrint resolution metadata (72-2400). Does not change pixel size -- use image_size. jpg/png recommended for widest print-tool compatibility.
export_labelstringOptional label for file naming
fitstringHow singular artwork_url fills its smart object area
flip_horizontalbooleanMirror artwork left-right
flip_verticalbooleanMirror artwork top-bottom
image_formatstringOutput format
image_sizenumberOutput width in pixels (default 2048)
is_asyncbooleanQueue the render instead of waiting for it. When true the API returns 202 with a job_id immediately (no result_url yet) -- poll with get_job, or call wait_for_job to block until it finishes. Use for…
mockup_uuidstringyesUUID of the mockup template (from list_mockups)
opacitynumberLayer opacity percentage
qualitynumberCompression quality for webp/jpg (default 90)
remove_backgroundbooleanRemove the artwork's background before placing it. Adds 25 credits per artwork.
rotatenumberRotate artwork in degrees
saturationnumberSaturation adjustment
smart_object_uuidstringUUID of one smart object layer. Provide with artwork_url, or use smart_objects for one or more entries.
smart_objectsarrayOne or more smart object overrides, each with asset or color. Do not combine with smart_object_uuid/artwork_url.
text_layersarrayEditable text overrides from get_mockup_details. Each entry needs exactly one of text or segments. May be used alone or with smart objects.
vibrancenumberVibrance adjustment (-100 to 100)

No output schema declared.

No examples provided.

render_video ~576

Create a short AI video from either a mockup with artwork or a public image URL. Supply exactly one input mode. Always async: returns a job_id immediately for get_job or wait_for_job. Credit cost depends on clip length, audio, and the automatically selected quality. Unsupported durations are rejected.

NameTypeReqDescription
artwork_base64stringRENDER MODE: raw base64-encoded artwork bytes (no data: prefix). Provide this OR artwork_url.
artwork_content_typestringMIME type for artwork_base64 (defaults to image/png if omitted).
artwork_urlstringRENDER MODE: public URL of the artwork image (PNG/JPG/WebP) to place on the mockup before animating. Provide this OR artwork_base64. Omit in raw-image mode.
asset_heightintegerRENDER MODE: custom artwork height in pixels (overrides fit sizing).
asset_leftintegerRENDER MODE: artwork left offset in pixels within the smart object area.
asset_topintegerRENDER MODE: artwork top offset in pixels within the smart object area.
asset_widthintegerRENDER MODE: custom artwork width in pixels (overrides fit sizing).
audiobooleanGenerate audio. Default off; enabling it may cost more credits.
duration_secondsintegerClip length in seconds. Unsupported values are rejected. Longer clips cost more credits.
fitstringRENDER MODE: how artwork fills the smart object area in the still frame
image_formatstringOutput format of the still input frame
image_sizenumberWidth in pixels of the still input frame (default 2048)
image_urlstringRAW-IMAGE MODE: a public https png/jpg URL to animate without a mockup. Supply this OR (mockup_uuid + smart_object_uuid + artwork), never both.
mockup_uuidstringRENDER MODE: UUID of the mockup to animate (from list_mockups or upload_psd). Required in render mode. In raw-image mode it is an optional association (groups the clip under that mockup's 'Past clips…
motionstring'ambient' = subtle looping hero motion that keeps the print readable; 'showcase' = one deliberate camera/product move.
qualitynumberCompression quality for the still input frame (webp/jpg, default 90)
smart_object_uuidstringRENDER MODE: UUID of the smart object layer to place artwork on (from get_mockup_details). Required in render mode; omit in raw-image mode.
webhook_urlstringOptional completion webhook URL. Best-effort push; polling get_job remains the source of truth.

No output schema declared.

No examples provided.

replay_webhook_delivery ~84

Replay a single webhook delivery while preserving its event identity, e.g. after fixing your endpoint. Get delivery_id from list_webhook_deliveries.

NameTypeReqDescription
delivery_idstringyesThe id of the delivery to replay (from list_webhook_deliveries)
endpoint_idstringyesThe id of the webhook endpoint (from list_webhook_endpoints)

No output schema declared.

No examples provided.

rotate_webhook_secret ~65

Rotate the signing secret for a webhook endpoint. A new secret is returned IN FULL exactly once -- update your verifier with it. The old secret stops being valid.

NameTypeReqDescription
endpoint_idstringyesThe id of the webhook endpoint to rotate (from list_webhook_endpoints)

No output schema declared.

No examples provided.

test_webhook_endpoint ~65

Send a signed webhook.test event to verify endpoint reachability and signature handling. Returns a test job_id; check the result with list_webhook_deliveries.

NameTypeReqDescription
endpoint_idstringyesThe id of the webhook endpoint to test (from list_webhook_endpoints)

No output schema declared.

No examples provided.

update_2d_print_areas ~100

Replace a 2D mockup's print areas with up to 8 four-point quads and return the updated geometry. An empty list is accepted only for verified full product surfaces. Costs 0 credits.

NameTypeReqDescription
mockup_idstringyesUUID of the 2D mockup to update
print_areasarrayyesReplacement print areas (0-8 four-point quads, each with an optional name)

No output schema declared.

No examples provided.

update_mockup ~46

Rename a mockup template.

NameTypeReqDescription
mockup_uuidstringyesThe UUID of the mockup to rename
namestringyesNew display name for the mockup

No output schema declared.

No examples provided.

update_webhook_endpoint ~165

Update a webhook endpoint in place: change its url, description, subscribed event_types, or enable/disable it (enabled:false pauses deliveries without losing the signing secret). All fields optional -- only the ones you pass are changed. The secret is NOT rotated or returned here.

NameTypeReqDescription
descriptionstringNew human-readable label
enabledbooleanSet false to pause deliveries (secret preserved), true to resume
endpoint_idstringyesThe id of the webhook endpoint to update (from list_webhook_endpoints)
event_typesarrayReplacement list of subscribed event types. Pass an empty array to subscribe to ALL events.
urlstringNew https endpoint URL (publicly routable; private/loopback hosts are rejected)

No output schema declared.

No examples provided.

upload_psd ~156

Upload a Photoshop PSD/PSB file as a new mockup template. The PSD must have at least one Smart Object layer. Processing takes 5-30 seconds.

NameTypeReqDescription
is_asyncbooleanQueue the upload instead of blocking. When true the API returns 202 with a job_id immediately -- poll with get_job (or wait_for_job) to learn when processing finishes and get the new mockup_uuid. Alw…
psd_file_urlstringyesPublic URL to a .psd or .psb file (up to Adobe's official PSD file size limit)
psd_namestringDisplay name for the template (auto-generated from filename if omitted)

No output schema declared.

No examples provided.

wait_for_job ~113

Poll any async render, video, upload, or 2D job until it succeeds or fails, then return the final result and credits charged. Blocks while polling.

NameTypeReqDescription
job_idstringyesThe job_id to wait on (from an async submission or render_video)
poll_interval_secondsnumberSeconds between status checks (1-30, default 3)
timeout_secondsnumberGive up after this many seconds if the job has not finished (5-900, default 300)

No output schema declared.

No examples provided.